Webhooks
Tipos de evento
O catálogo completo, agrupado por recurso. O nome segue sempre a convenção recurso.acao. Novos tipos podem ser adicionados a qualquer momento, então trate o que você conhece e ignore o resto.
Cobrança
Eventos das cobranças criadas em POST /v1/charges (PIX ou boleto).
charge.createdeventoopcionalCobrança criada. Traz o br_code e o txid do PIX, ou a linha digitável do boleto.
charge.paideventoopcionalPagamento confirmado. A cobrança passa a
paid e o end_to_end_id é preenchido. É o evento que libera o pedido.charge.expiredeventoopcionalA cobrança venceu sem ter sido paga.
charge.canceledeventoopcionalA cobrança foi cancelada antes do pagamento.
charge.disputedeventoopcionalUma cobrança já paga entrou em disputa (MED). O valor fica retido enquanto o caso é analisado.
charge.refundedeventoopcionalA cobrança foi estornada ao pagador, por devolução ou disputa confirmada.
PIX
Movimentos PIX na conta, incluindo os que não vêm de cobranças.
pix.in.completedeventoopcionalPIX recebido e creditado no saldo disponível.
pix.qrcode.paideventoopcionalUm QR Code seu foi pago.
pix.out.completedeventoopcionalPIX enviado e liquidado na rede. O
data é o mesmo recurso de GET /v1/payouts/:id, incluindo reference e recipient, então dá para conciliar sem uma consulta extra.pix.out.failedeventoopcionalPIX enviado falhou; o valor reservado volta ao saldo disponível. Mesmo formato do evento de sucesso, com o motivo em
failure_reason.pix.refundedeventoopcionalDevolução de um PIX recebido foi efetivada.
pix.reversal.ineventoopcionalDevolução recebida: um PIX que você enviou voltou para a sua conta.
pix.reversal.outeventoopcionalDevolução enviada: um PIX que você recebeu foi devolvido ao pagador.
Infração / MED
O MED (Mecanismo Especial de Devolução) é o processo do Banco Central para contestação de PIX suspeito de fraude. O ciclo tem três momentos: a infração é aberta, analisada e depois confirmada ou negada.
pix.infraction.openedeventoopcionalInfração aberta. Um PIX recebido foi contestado. O valor é retido do saldo disponível enquanto o caso é analisado, e a transação passa a
IN_DISPUTE.pix.infraction.confirmedeventoopcionalInfração confirmada. A contestação foi aceita: a fraude é dada como comprovada e o valor retido é estornado ao pagador.
decision é ACCEPT.pix.infraction.rejectedeventoopcionalInfração negada. A contestação foi recusada: a transação é considerada legítima e o valor retido volta ao seu saldo disponível.
decision é REJECT.pix.infraction.resolvedeventoopcionalEncerramento do caso, qualquer que seja o desfecho. É disparado junto com
pix.infraction.confirmed ou pix.infraction.rejected.Não assine os dois caminhos
Escolha entre o evento genérico e os específicos. Se você assinarpix.infraction.resolved e pix.infraction.confirmed, vai receber duas notificações para a mesma resolução.TED
ted.in.completedeventoopcionalTED recebida e creditada no saldo.
ted.out.completedeventoopcionalTED enviada e liquidada.
ted.out.failedeventoopcionalTED enviada falhou. O valor reservado volta ao saldo disponível.
Boleto
boleto.createdeventoopcionalBoleto emitido. Traz linha digitável, código de barras e vencimento.
boleto.paideventoopcionalBoleto liquidado e valor creditado no saldo.
boleto.expiredeventoopcionalBoleto venceu sem pagamento.
boleto.canceledeventoopcionalBoleto baixado antes do pagamento.
Pagamento de contas
bill_payment.completedeventoopcionalA conta foi paga com o seu saldo.
bill_payment.failedeventoopcionalO pagamento falhou. O valor reservado volta ao saldo disponível.
bill_payment.reversedeventoopcionalPagamento estornado pelo banco recebedor; o valor volta ao saldo.
Conta
transfer.internal.ineventoopcionalTransferência interna recebida (entre contas da plataforma).
transfer.internal.outeventoopcionalTransferência interna enviada.
balance.updatedeventoopcionalO saldo mudou. Use como gatilho para reconsultar GET /v1/balance.
account.status.changedeventoopcionalA conta mudou de situação (ativa, bloqueada, encerrada).
kyc.approvedeventoopcionalO cadastro foi aprovado e a conta pode transacionar.
kyc.rejectedeventoopcionalO cadastro foi reprovado.
Teste
webhook.pingeventoopcionalDisparado quando você testa o endpoint pelo dashboard. Serve para validar URL, assinatura e resposta 2xx sem mexer em dinheiro.
Campos comuns
referencestring | nullopcionalO seu identificador, ecoado exatamente como enviado na criação. Use-o para casar o evento com o pedido no seu sistema.
payerobjectopcionalPagador real: nome e documento que o banco identificou na liquidação. É o que aparece no extrato. Enquanto a cobrança não é paga, repete o pagador solicitado.
payer_requestobjectopcionalPagador solicitado: o que você (ou o checkout) enviou no payload da criação. Serve para conferir se quem pagou é quem deveria pagar.
amountinteger | stringopcionalValor sempre em centavos, nunca em ponto flutuante. Vem como inteiro nos eventos de cobrança e pagamento, e como string nos eventos de infração (evita perda de precisão). Converta antes de comparar.
Boas práticas de consumo
- Trate cada tipo pelo campo
typee ignore os desconhecidos. - Deduplique pelo
iddo evento, porque pode haver reentrega. - Não assuma ordem de chegada; confie no
statusdodata. - Nunca decida por dinheiro só pelo nome do evento: confirme o valor em
data.amount.
Payloads
{
"id": "019e8f03-2d48-7f9b-9d8e-eb22404754b2",
"type": "charge.created",
"created_at": "2026-06-03T19:46:33.6Z",
"data": {
"id": "019e8f03-2d48-7f9b-9d8e-eb22404754b2",
"object": "charge",
"amount": 2599,
"currency": "BRL",
"method": "pix",
"status": "pending",
"txid": "kk6g232xel65a0daee4dd13kk4000637343",
"br_code": "00020101...6304CACD",
"reference": "pedido-1042",
"payer": { "name": "Maria Souza", "document": "62363692322" },
"payer_request": { "name": "Maria Souza", "document": "62363692322" },
"expires_at": "2026-06-03T20:16:32.703Z",
"created_at": "2026-06-03T19:46:33.585Z"
}
}