Skip to main content
A API pública utiliza autenticação via dois headers obrigatórios em toda requisição. A criação de subconta exige ainda um header de idempotência.

Headers obrigatórios

Exemplo

Idempotência

Subcontas (POST /v1/submerchants e onboarding v2)

Os endpoints POST /v1/submerchants, POST /v2/submerchants/onboarding/pf e POST /v2/submerchants/onboarding/pj exigem o header x-idempotency-key. Envie um UUID gerado pelo seu sistema; se a requisição for repetida com a mesma chave e mesmo payload, você receberá a mesma resposta da primeira execução, sem duplicidade. Se a chave for reutilizada com payload diferente, a API responde HTTP 409 Conflict.

Pagamentos (POST /v1/payments)

O header x-idempotency-key é opcional (até 255 caracteres; recomendamos um UUID v4 por operação de pagamento). Ele existe para evitar cobrança duplicada quando sua requisição sofre timeout e você precisa reenviar:
  1. Envie o pagamento com uma chave nova.
  2. Se receber timeout ou erro de rede, reenvie a mesma requisição com a mesma chave e o mesmo payload.
  3. Se o pagamento original foi criado, a API devolve a transação existente com o estado atual, sem cobrar novamente. Caso contrário, o pagamento é processado normalmente.
Comportamentos de erro: Quando a primeira tentativa termina em estado desconhecido (ex.: erro técnico na comunicação com a adquirente), a chave permanece protegida e novas tentativas recebem HTTP 409 até a operação ser vinculada a uma transação local (reconciliação) ou resolvida operacionalmente. Não há reprocessamento automático da cobrança após timeout ou 5xx. Sem o header, o comportamento do endpoint permanece o de sempre: cada requisição cria uma nova cobrança. No fluxo de upsell, o replay da origem retorna o mesmo upsell.token enquanto o token estiver válido. O replay da cobrança de upsell retorna a mesma transação de upsell, mesmo com o token já consumido.

Bearer token (OAuth2)

A API também emite bearer tokens pelo fluxo OAuth2 client_credentials, em POST /oauth/token. O token expira em 3600 segundos.
  1. Crie o client_id e o client_secret no painel, em Configurações → API Clients. O client_secret aparece uma única vez.
  2. Emita o token com as credenciais no body ou no header Authorization: Basic.
  3. Envie o token no header Authorization: Bearer <access_token>.
NOTA: os endpoints v1 continuam com autenticação por headers client-id e client-secret. A documentação de cada endpoint indicará quando ele aceitar o bearer token.

Rate limit

Os endpoints de subcontas (/v1/submerchants para criação, atualização cadastral, atualização de taxas e atualização de conta bancária; POST /v2/submerchants/onboarding/pf e POST /v2/submerchants/onboarding/pj) têm limite de 10 requisições por minuto por credencial. Se exceder, você recebe HTTP 429 Too Many Requests. O endpoint do Cofre (POST /v1/vault/tokenize) tem limite de 30 requisições por minuto por IP.
Nunca exponha client-secret no front-end ou em repositórios públicos. Faça a chamada sempre a partir do seu backend.