Brasil Cash

Introdução

Bem-vindo à API Brasil Cash. Com ela você gera cobranças Pix (cash-in), envia Pix (cash-out), consulta saldo e extrato da conta e recebe notificações em tempo real por webhooks.

Todas as rotas usam JSON (UTF-8) e valores em reais com duas casas decimais (ex.: 100.50). Datas e horários são retornados em ISO 8601 (UTC).

URL base

text
1https://api.brasilcash.app.br/api/v1

Fluxo básico

1. Gere o Client ID e o Client Secret no painel, em Configurações › Chaves de API.

2. Troque as credenciais por um token em POST /pix/auth/token.

3. Envie o token no header Authorization: Bearer {token} em todas as outras rotas.

4. Cadastre um webhook para receber os eventos de pagamento e saque.

Ambientes

AmbienteURL baseObservação
Produçãohttps://api.brasilcash.app.br/api/v1Movimenta dinheiro real.
Sandboxhttps://sandbox-api.brasilcash.app.br/api/v1Credenciais de sandbox são emitidas pelo suporte.

Códigos de status

CódigoSignificado
200Sucesso
201Recurso criado
400Dados inválidos ou faltando
401Token inválido ou expirado
403Sem permissão / IP não autorizado
404Recurso não encontrado
409Conflito (recurso já existe)
429Limite de requisições excedido
503Instituição liquidante indisponível, tente novamente (Retry-After)
Esta seção foi útil?

Autenticação

Toda chamada é autenticada com um Bearer token obtido a partir do par client_id / client_secret da sua chave de API (Painel › Configurações › Integrações). O token vale por 1 hora; gere outro antes de expirar.

As chaves de API passam pela lista de IPs autorizados da conta: chamadas de IPs fora da lista recebem 403.

Base URL

Produção:

https://api.brasilcash.app.br/api/v1

Retrieve access token

Troca o Client ID e o Client Secret por um token de acesso (JWT) válido por 30 minutos.

Use o token no header Authorization: Bearer {token}. Reaproveite o mesmo token até expirar: gerar um token por requisição é desnecessário e está sujeito a limite de taxa.

As credenciais são criadas no painel em Configurações › Chaves de API. Se a chave tiver IPs autorizados, somente requisições desses IPs são aceitas.

Expiração

expires_in é informado em segundos (1800 = 30 minutos). Gere um novo token apenas quando o anterior expirar.

Header Parameters

Content-TypestringREQUIRED

application/json

Body Parameters

clientIdstringREQUIRED

Client ID da chave de API. · Ex.: client_abc123def456

clientSecretstringREQUIRED

Client Secret da chave de API (mostrado uma única vez na criação). · Ex.: secret_xyz789abc456

Response

200Object

Response Attributes

tokenstring
token_typestring
expires_ininteger
merchant_idstring
merchant_namestring
environmentstring
  • 400 Bad Request
  • 401 Unauthorized
  • 429 Too Many Requests
Esta seção foi útil?

Conta

Saldo disponível e bloqueado, extrato de transações (entradas, saídas, taxas e devoluções) e comprovante em PDF de cada Pix enviado.

Current balance

Retorna o saldo disponível, pendente e total da conta.

Campos

available: pode ser sacado agora · pending: aguardando liquidação · total: soma dos dois.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Response

200Object

Response Attributes

availablenumber
pendinginteger
totalnumber
currencystring
  • 401 Unauthorized
Esta seção foi útil?

Listing transactions

Lista as transações da conta (entradas e saídas Pix) com paginação e filtros.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Query Parameters

statusstring

pending, processing, completed, failed, cancelled, refunded

typestring

pix_in (recebimentos) ou pix_out (envios)

start_datestring

Data inicial (ISO 8601)

end_datestring

Data final (ISO 8601)

searchstring

Busca por external_id, txid ou end_to_end_id

pagenumber

Página (padrão 1)

limitnumber

Itens por página (padrão 50, máximo 100)

Response

200Array

Response Attributes

idstring
merchant_idstring
amountinteger
fee_amountnumber
net_amountnumber
payment_methodstring
statusstring
external_idstring
descriptionstring
debtorAccountobject
creditorAccountobject
metadataobject
created_atstring
updated_atstring
Esta seção foi útil?

Retrieving transaction

Detalhes completos de uma transação, com pagador, recebedor, MEDs e reembolsos relacionados.

O identificador aceita o ID interno (UUID), o external_id informado na criação, o txid da cobrança ou o End-to-End ID (E2E) do Pix.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Path Parameters

identifierstringREQUIRED

UUID, external_id, txid ou End-to-End ID · Ex.: E3038525920250120103000abc123

Response

200Object

Response Attributes

idstring
merchant_idstring
amountinteger
fee_amountnumber
net_amountnumber
payment_methodstring
statusstring
external_idstring
descriptionstring
debtorAccountobject
creditorAccountobject
metadataobject
created_atstring
updated_atstring
medsarray
refundsarray
  • 404 Not Found
Esta seção foi útil?

Generating receipt PDF

Comprovante de um Pix enviado (dados do pagamento para emissão do recibo).

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Path Parameters

transactionIdstringREQUIRED

ID (UUID) da transação de saída

Response

200Object

Response Attributes

idstring
end_to_end_idstring
amountinteger
fee_amountinteger
statusstring
receiverobject
payerobject
completed_atstring
Esta seção foi útil?

Pix · Cash-in

Receba por Pix gerando QR Codes dinâmicos (com valor e validade) ou estáticos. A confirmação do pagamento chega pelo webhook transaction.completed; o valor líquido (descontada a taxa) entra no saldo disponível. Devoluções totais ou parciais saem pelo refund.

Creating QR code

Cria uma cobrança Pix dinâmica e devolve o QR Code (imagem) e o código copia e cola.

A cobrança expira em expiresIn segundos (padrão 3600). Ao ser paga, a transação muda para completed e o evento transaction.completed é enviado aos webhooks cadastrados (e à webhook_url desta cobrança, se informada).

Renderizar o QR

qr_code já vem como imagem PNG em base64; qr_code_text é o payload EMV para o botão "copia e cola".

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Body Parameters

amountnumberREQUIRED

Valor em reais (ex.: 100.50) · Ex.: 100.50

externalIdstring

Seu identificador (pedido, fatura). Único por conta. · Ex.: pedido_12345

descriptionstring

Descrição exibida ao pagador

expiresInnumber

Validade em segundos (padrão 3600)

customerobject

Pagador: name (obrigatório), document (CPF/CNPJ), email, phone. Quando informado, só esse documento consegue pagar.

itemsarray

Itens do pedido: name, quantity, unit_price, total

metadataobject

Dados livres devolvidos nos webhooks

webhook_urlstring

URL extra para notificar apenas esta cobrança (sem assinatura HMAC)

Response

201Object

Response Attributes

transaction_idstring
external_idstring
amountnumber
qr_codestring
qr_code_textstring
expires_atstring
  • 400 Bad Request
  • 503 Service Unavailable
Esta seção foi útil?

Creating static QR code

Cria um QR Code estático reutilizável (valor fixo ou livre) para ponto de venda.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Body Parameters

descriptionstringREQUIRED

Identificação do QR (ex.: Balcão 1)

amountnumber

Valor fixo. Omita para o pagador digitar o valor.

Response

201Object

Response Attributes

idstring
descriptionstring
amountinteger
pix_copy_pastestring
statusstring
created_atstring
Esta seção foi útil?

Refunding pix

Devolve, total ou parcialmente, um Pix recebido.

Acompanhe

O status final chega pelos eventos refund.completed / refund.failed ou em GET /pix/refunds/{refundId}/status.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Body Parameters

transactionIdstringREQUIRED

ID da transação recebida

amountnumber

Valor a devolver. Omita para devolução total.

reasonstring

Motivo da devolução

Response

201Object

Response Attributes

idstring
statusstring
amountstring
original_transaction_idstring
endToEndIdstring
reasonstring
created_atstring
  • 400 Bad Request
Esta seção foi útil?

Refund status

Status de uma devolução.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Path Parameters

refundIdstringREQUIRED

ID da devolução

Response

200Object

Response Attributes

idstring
statusstring
amountinteger
original_transaction_idstring
endToEndIdstring
completed_atstring
Esta seção foi útil?

Pix · Cash-out

Envie Pix para uma chave ou pague um QR Code (copia e cola) debitando o saldo disponível. Há dois jeitos de enviar:

• Uma etapa — Sending pix by key / by QR code: uma chamada cria e envia o Pix.

• Duas etapas (contas habilitadas) — Initiating pix consulta o recebedor (chave no DICT ou QR Code na instituição liquidante) e devolve nome, documento mascarado e banco; Confirming initiated pix envia. Nada é debitado até a confirmação e a intenção vale por 10 minutos.

O resultado final de qualquer envio chega em withdrawal.completed ou withdrawal.failed.

Preview receiver (DICT)

Consulta a chave Pix no DICT e devolve nome, documento mascarado e banco do recebedor, sem movimentar dinheiro.

Disponível quando a adquirente de saque da conta consulta chaves sem iniciar pagamento. Quando não há consulta (enabled = false), use o fluxo em duas etapas (Initiating pix), que resolve o recebedor na própria iniciação.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Body Parameters

pix_keystringREQUIRED

Chave Pix do recebedor

pix_key_typestring

cpf, cnpj, email, phone ou random (detectado se omitido)

Response

200Object

Response Attributes

enabledboolean
receiverobject
  • 422 Unprocessable
  • 429 Too Many Requests
Esta seção foi útil?

Sending pix by key

Envia um Pix para uma chave, debitando o saldo disponível.

O valor é validado contra o limite diário da conta e o saldo disponível. Com token de chave de API o 2FA não é exigido (a chave já passa pela lista de IPs autorizados).

A resposta vem com status processing; o resultado final chega em withdrawal.completed ou withdrawal.failed (ou consulte o status).

Idempotência

Envie sempre um externalId único por saque e reaproveite-o ao repetir a chamada após timeout: um saque com o mesmo externalId não é criado duas vezes.

Prefere conferir o recebedor antes?

Contas com o saque em duas etapas habilitado usam Initiating pix (consulta e devolve nome/banco) e Confirming initiated pix.

Pix copia e cola

Para pagar um QR Code envie o código EMV completo em pixKey (veja Sending pix by QR code).

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Body Parameters

amountnumberREQUIRED

Valor em reais

pixKeystringREQUIRED

Chave Pix do recebedor (CPF/CNPJ só dígitos, telefone +55DDDNÚMERO, e-mail ou chave aleatória)

pix_key_typestring

cpf, cnpj, email, phone ou random

externalIdstring

Seu identificador único do saque (idempotência)

descriptionstring

Descrição que acompanha o Pix

Response

201Object

Response Attributes

idstring
typestring
statusstring
amountinteger
fee_amountinteger
net_amountinteger
pix_keystring
pix_key_typestring
external_idstring
descriptionstring
end_to_end_idnull
created_atstring
updated_atstring
  • 400 Bad Request
  • 400 Insufficient balance
  • 403 Forbidden
Esta seção foi útil?

Initiating pix (two steps)

Passo 1 do envio em duas etapas: consulta o recebedor (chave Pix ou QR Code) e devolve uma intenção para conferência, sem enviar dinheiro.

Recurso habilitado por conta (fale com o suporte). A consulta é feita no DICT ou iniciando o Pix na instituição liquidante: o recebedor volta com nome, documento mascarado e banco, e nada é debitado até a confirmação. Contas sem o recurso recebem 403 com code TWO_STEP_DISABLED e usam Sending pix by key em uma etapa.

pixKey aceita uma chave Pix ou um Pix copia e cola (código EMV). Com QR Code, amount é opcional: QR com valor fixo devolve o valor na intenção; QR sem valor devolve amount 0 e o valor é informado na confirmação.

A intenção vale por 10 minutos. Confirme com PUT /pix/withdrawals/intents/{intentId}/confirm ou cancele com DELETE /pix/withdrawals/intents/{intentId}. Cada iniciação consome cota de consulta no Banco Central (liberada na confirmação): inicie só quando houver intenção de pagar.

Quando usar

Iniciar + confirmar: conferir o recebedor (nome, documento, banco) antes de enviar — por chave ou QR Code. Sending pix by key / by QR code: envio direto em uma chamada, para todas as contas.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Body Parameters

amountnumberREQUIRED

Valor em reais. Opcional apenas quando pixKey é um QR Code (copia e cola).

pixKeystringREQUIRED

Chave Pix do recebedor ou código Pix copia e cola (EMV, começa com 000201)

pix_key_typestring

cpf, cnpj, email, phone ou random (detectado se omitido; ignorado para QR Code)

externalIdstring

Seu identificador único (reaproveitado na transação ao confirmar)

descriptionstring

Descrição que acompanha o Pix

Response

201Object

Response Attributes

idstring
statusstring
amountinteger
pix_keystring
pix_key_typestring
descriptionstring
external_idstring
receiverobject
acquirerstring
expires_atstring
transaction_idnull
created_atstring
  • 201 Created (QR Code)
  • 403 Two-step disabled
  • 400 Preview unavailable
  • 400 QR Code fixed amount
  • 422 Key not found
  • 409 Conflict
  • 429 Too Many Requests
Esta seção foi útil?

Confirming initiated pix

Passo 2: confirma a intenção e envia o Pix. Debita o saldo e aplica as mesmas regras do envio em uma etapa.

Com token de chave de API o 2FA não é exigido. O resultado final chega em withdrawal.completed / withdrawal.failed (ou consulte o status pelo transaction_id devolvido). Uma intenção confirmada não pode ser confirmada de novo (409); expirada responde 410.

amount só é aceito quando a intenção veio de um QR Code sem valor (amount 0 na intenção) — e aí é obrigatório. Para intenções com valor definido, um amount diferente responde 400 AMOUNT_MISMATCH: inicie um novo saque.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Path Parameters

intentIdstringREQUIRED

id devolvido em Initiating pix

Body Parameters

amountnumber

Valor em reais — apenas para QR Code sem valor definido (intenção com amount 0)

Response

201Object

Response Attributes

idstring
typestring
statusstring
amountinteger
fee_amountinteger
net_amountinteger
pix_keystring
pix_key_typestring
external_idstring
descriptionstring
end_to_end_idnull
created_atstring
updated_atstring
  • 400 Amount required
  • 400 Amount mismatch
  • 409 Already confirmed
  • 410 Expired
  • 400 Insufficient balance
Esta seção foi útil?

Cancelling initiated pix

Cancela uma intenção ainda não confirmada. Nada foi debitado.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Path Parameters

intentIdstringREQUIRED

id devolvido em Initiating pix

Response

200Object

Response Attributes

idstring
statusstring
Esta seção foi útil?

Retrieving initiated pix

Situação de uma intenção (initiated, confirmed, cancelled ou expired) e, se confirmada, o transaction_id.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Path Parameters

intentIdstringREQUIRED

id devolvido em Initiating pix

Response

200Object

Response Attributes

idstring
statusstring
amountinteger
pix_keystring
receiverobject
transaction_idstring
expires_atstring
Esta seção foi útil?

Decoding QR code

Lê um Pix copia e cola (EMV) e devolve tipo, valor, chave e recebedor, para exibir antes de pagar. Não movimenta dinheiro.

amount vem null quando o QR Code não tem valor definido (o pagador informa). type é STATIC ou DYNAMIC.

A leitura usa a instituição liquidante da conta e consome cota de consulta: para o fluxo completo prefira Initiating pix com o código EMV, que já devolve o recebedor e segura o pagamento para confirmação.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Body Parameters

emvstringREQUIRED

Código Pix copia e cola (começa com 000201). Aliases: pix_copy_and_paste, pixCopyPaste.

Response

200Object

Response Attributes

typestring
amountinteger
keystring
key_typestring
receiver_namestring
receiver_documentstring
receiver_document_typestring
ispbstring
txidstring
descriptionstring
  • 200 OK (sem valor)
  • 400 Bad Request
  • 422 Unprocessable
Esta seção foi útil?

Sending pix by QR code

Paga um Pix copia e cola em uma chamada: o código EMV vai no campo pixKey.

Mesma rota e regras de Sending pix by key (limite diário, saldo, 2FA para usuários do painel). Envie o código EMV completo em pixKey com pix_key_type = random e amount igual ao valor do QR Code (ou o valor desejado quando o QR não tem valor; um valor diferente do fixo é recusado).

Para conferir o recebedor antes de pagar use Decoding QR code ou, nas contas com saque em duas etapas, Initiating pix com o código EMV e Confirming initiated pix.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Body Parameters

amountnumberREQUIRED

Valor em reais (igual ao do QR Code quando ele tem valor fixo)

pixKeystringREQUIRED

Código Pix copia e cola completo (EMV, começa com 000201)

pix_key_typestringREQUIRED

random

externalIdstring

Seu identificador único do pagamento (idempotência)

descriptionstring

Descrição interna

Response

201Object

Response Attributes

idstring
typestring
statusstring
amountinteger
fee_amountinteger
net_amountinteger
pix_keystring
pix_key_typestring
external_idstring
descriptionnull
end_to_end_idnull
created_atstring
updated_atstring
  • 400 Fixed amount
  • 400 Insufficient balance
Esta seção foi útil?

Listing withdrawals

Lista os Pix enviados pela conta.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Query Parameters

statusstring

pending, processing, completed, failed

pagenumber

Página (padrão 1)

limitnumber

Itens por página (padrão 50)

Response

200Array

Response Attributes

idstring
typestring
statusstring
amountinteger
fee_amountinteger
net_amountinteger
pix_keystring
pix_key_typestring
external_idstring
descriptionstring
end_to_end_idstring
created_atstring
updated_atstring
Esta seção foi útil?

Retrieving withdrawal status

Status atual de um Pix enviado.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Path Parameters

withdrawalIdstringREQUIRED

ID (UUID) do saque

Response

200Object

Response Attributes

idstring
typestring
statusstring
amountinteger
fee_amountinteger
net_amountinteger
pix_keystring
pix_key_typestring
external_idstring
descriptionstring
end_to_end_idstring
created_atstring
updated_atstring
completed_atstring
  • 200 Failed
Esta seção foi útil?

Pix Keys

Chaves Pix (DICT) da conta na instituição liquidante. Recurso liberado por conta (fale com o suporte): contas sem ele recebem enabled = false na listagem e 403 ao cadastrar. Cada conta pode ter até 5 chaves; a exclusão é imediata no DICT.

Retrieving pix keys

Lista as chaves Pix da conta na instituição liquidante.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Response

200Object

Response Attributes

enabledboolean
supportedboolean
acquirerstring
maxinteger
keysarray
  • 200 Not enabled
Esta seção foi útil?

Creating pix key

Cadastra uma chave Pix no DICT pela instituição liquidante. Para random a chave é gerada pelo Banco Central.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Body Parameters

typestringREQUIRED

cpf, cnpj, email, phone ou random

keystring

Valor da chave (obrigatório exceto para random). CPF/CNPJ só dígitos, telefone +55DDDNÚMERO.

Response

201Object

Response Attributes

keystring
typestring
statusstring
created_atstring
  • 400 Limit reached
  • 403 Not enabled
  • 409 Conflict
Esta seção foi útil?

Delete pix key

Exclui uma chave Pix do DICT. QR Codes estáticos emitidos com ela deixam de receber.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Path Parameters

keystringREQUIRED

A chave (URL-encoded; e-mail e telefone com + codificados)

Response

200Object

Response Attributes

successboolean
  • 404 Not found
Esta seção foi útil?

Webhooks

Cadastre uma URL HTTPS para receber os eventos da conta (recebimentos, envios, devoluções). Cada entrega é assinada com HMAC-SHA256 no header X-Webhook-Signature; responda 2xx em até 10 segundos — entregas sem 2xx são reenviadas com intervalo crescente.

Eventos e assinatura

Webhooks são requisições POST em JSON enviadas à URL cadastrada sempre que um evento acontece. Responda 2xx em até 10 segundos; sem resposta, reenviamos com intervalo crescente (até 5 tentativas).

Formato do payload

json
{
  "event": "transaction.completed",
  "timestamp": "2026-01-10T10:00:00Z",
  "data": {
    "id": "uuid",
    "txid": "uuid",
    "endToEndId": "E3038525920250120103000abc123",
    "merchant_id": "uuid",
    "amount": 100,
    "fee_amount": 1.5,
    "net_amount": 98.5,
    "payment_method": "pix",
    "status": "completed",
    "external_id": "pedido_123",
    "description": "Pagamento do pedido 123",
    "debtorAccount": {
      "document": "12345678901",
      "name": "João Silva",
      "ispb": "11275560",
      "bankName": "RECARGAPAY IP LTDA."
    },
    "creditorAccount": {
      "document": "12345678000190",
      "name": "Minha Empresa LTDA",
      "pixKey": "d8e8d3bd-9476-4088-81b8-6188a0565f23",
      "pixKeyType": "RANDOM"
    },
    "created_at": "2026-01-10T09:50:00Z",
    "completed_at": "2026-01-10T10:00:00Z"
  }
}

Assinatura

Cada entrega traz o header X-Webhook-Signature: HMAC-SHA256 do corpo (JSON exatamente como recebido) usando o secret devolvido na criação do webhook, em hexadecimal. Compare com tempo constante.

javascript
1const crypto = require('crypto');23function isValid(rawBody, signature, secret) {4  const expected = crypto.createHmac('sha256', secret).update(rawBody).digest('hex');5  return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signature || ''));6}

Eventos disponíveis

EventoQuando
transaction.createdCobrança Pix criada (QR Code gerado)
transaction.completedPix recebido e creditado no saldo
transaction.failedCobrança expirou ou falhou
withdrawal.createdPix de saída criado
withdrawal.awaiting_approvalSaque aguardando aprovação manual
withdrawal.processingSaque enviado à instituição liquidante
withdrawal.completedPix enviado com sucesso (traz endToEndId)
withdrawal.failedPix de saída falhou; o valor volta ao saldo (failure_reason)
refund.createdDevolução solicitada
refund.completedDevolução concluída
refund.failedDevolução falhou
med.createdMED aberto contra uma transação recebida; saldo bloqueado cautelarmente
med.acceptedMED aceito: valor debitado para devolução ao pagador
med.rejectedMED rejeitado (defesa aceita): saldo liberado

Exemplo: withdrawal.completed

json
{
  "event": "withdrawal.completed",
  "timestamp": "2026-01-10T14:00:12Z",
  "data": {
    "id": "uuid",
    "txid": "uuid",
    "endToEndId": "E3038525920250120140500def456",
    "merchant_id": "uuid",
    "amount": 500,
    "fee_amount": 2,
    "total_amount": 502,
    "payment_method": "pix",
    "status": "completed",
    "external_id": "saque_001",
    "description": "Saque mensal",
    "pix_key": "13870676647",
    "pix_key_type": "CPF",
    "creditorAccount": {
      "document": "13870676647",
      "name": "João Silva",
      "bankName": "NU PAGAMENTOS S.A."
    },
    "completed_at": "2026-01-10T14:00:12Z"
  }
}
Esta seção foi útil?

Create webhook

Cadastra uma URL para receber eventos. O secret de assinatura é devolvido apenas nesta resposta.

Guarde o secret

Ele não é mostrado de novo. Para trocar, apague o webhook e cadastre outro.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Body Parameters

urlstringREQUIRED

URL HTTPS pública que receberá os POSTs

eventsarrayREQUIRED

Lista de eventos (ver Eventos e assinatura)

is_activeboolean

Padrão true

retry_attemptsnumber

Tentativas de reenvio (padrão 5)

timeout_secondsnumber

Timeout por entrega (padrão 10)

Response

201Object

Response Attributes

idstring
urlstring
eventsarray
secretstring
is_activeboolean
created_atstring
  • 400 Bad Request
Esta seção foi útil?

List webhooks

Lista os webhooks da conta com contadores de entrega.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Response

200Array

Response Attributes

idstring
urlstring
eventsarray
is_activeboolean
created_atstring
last_triggered_atstring
success_countinteger
failure_countinteger
Esta seção foi útil?

Update webhook

Altera URL, eventos ou ativa/desativa um webhook.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Path Parameters

idstringREQUIRED

ID do webhook

Body Parameters

urlstring

Nova URL

eventsarray

Nova lista de eventos

is_activeboolean

Ativa ou pausa as entregas

Response

200Object

Response Attributes

idstring
urlstring
eventsarray
is_activeboolean
Esta seção foi útil?

Delete webhook

Remove um webhook.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Path Parameters

idstringREQUIRED

ID do webhook

Response

200Object

Response Attributes

successboolean
messagestring
Esta seção foi útil?

Delivery logs

Histórico de entregas, com status HTTP e tentativas.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Query Parameters

statusstring

success, failed, pending

eventstring

Filtra por evento

pagenumber

Página

limitnumber

Itens por página (padrão 50)

Response

200Array

Response Attributes

idstring
webhook_idstring
eventstring
statusstring
http_statusinteger
attemptsinteger
responsestring
created_atstring
delivered_atstring
Esta seção foi útil?

Retry delivery

Reenvia uma entrega que falhou.

Header Parameters

AuthorizationstringREQUIRED

Bearer {token} obtido em Retrieve access token. · Ex.: Bearer eyJhbGciOi...

Content-TypestringREQUIRED

application/json · Ex.: application/json

Path Parameters

log_idstringREQUIRED

ID do log de entrega

Response

200Object

Response Attributes

successboolean
messagestring
Esta seção foi útil?