{
"id": "evt_01k1y6r7z2m4n6p8q0r2s4t6u8",
"type": "charge.paid",
"created_at": "2026-08-04T14:03:12+00:00",
"data": {
"charge": {
"object": "charge",
"id": "ch_01k1y6r6m6q2x0p3d9v4t7c8n2",
"status": "paid",
"payment_method": "pix",
"amount": 10000,
"currency": "BRL",
"platform_fee": 798,
"net_amount": 9103,
"refunded_amount": 0,
"description": "Curso de Vue 3",
"reference": "pedido-1042",
"metadata": {
"carrinho": "cart_88f21",
"campanha": "black-friday"
},
"customer": {
"name": "João Comprador",
"email": "joao@exemplo.com.br",
"document": "111.***.***-35"
},
"pix": {
"qr_code": "00020101021226840014br.gov.bcb.pix2562qrcodepix.example.com/v2/abcd1234",
"expires_at": "2026-08-05T14:00:00+00:00",
"end_to_end_id": "E12345678202608041200"
},
"created_at": "2026-08-04T14:00:00+00:00",
"paid_at": "2026-08-04T14:03:11+00:00",
"expired_at": null,
"refunded_at": null
}
}
}charge.paid
Enviado quando o PIX é confirmado. É o evento sobre o qual o seu sistema deve agir.
{
"id": "evt_01k1y6r7z2m4n6p8q0r2s4t6u8",
"type": "charge.paid",
"created_at": "2026-08-04T14:03:12+00:00",
"data": {
"charge": {
"object": "charge",
"id": "ch_01k1y6r6m6q2x0p3d9v4t7c8n2",
"status": "paid",
"payment_method": "pix",
"amount": 10000,
"currency": "BRL",
"platform_fee": 798,
"net_amount": 9103,
"refunded_amount": 0,
"description": "Curso de Vue 3",
"reference": "pedido-1042",
"metadata": {
"carrinho": "cart_88f21",
"campanha": "black-friday"
},
"customer": {
"name": "João Comprador",
"email": "joao@exemplo.com.br",
"document": "111.***.***-35"
},
"pix": {
"qr_code": "00020101021226840014br.gov.bcb.pix2562qrcodepix.example.com/v2/abcd1234",
"expires_at": "2026-08-05T14:00:00+00:00",
"end_to_end_id": "E12345678202608041200"
},
"created_at": "2026-08-04T14:00:00+00:00",
"paid_at": "2026-08-04T14:03:11+00:00",
"expired_at": null,
"refunded_at": null
}
}
}Headers
Assinatura da entrega, no formato t=<timestamp>,v1=<hmac>, onde
hmac é HMAC-SHA256("<timestamp>.<corpo bruto>", <segredo>).
Duas regras ao conferir:
- Calcule sobre o corpo bruto, antes de desserializar. Reserializar muda espaçamento e ordem, e o HMAC deixa de bater.
- Recuse timestamps com mais de 5 minutos. É isso que impede
alguém que interceptou uma entrega de
charge.paidde reenviá-la quantas vezes quiser, com assinatura perfeitamente válida.
^t=[0-9]+,v1=[0-9a-f]{64}$Tipo do evento, repetido fora do corpo. Redundante com o payload e útil mesmo assim: permite filtrar no seu log sem desserializar nada.
Identificador da entrega. Cite-o ao abrir um chamado - é por ele que localizamos a tentativa, a resposta do seu servidor e o horário.
Body
Identificador do evento. Estável entre as retentativas da mesma entrega - use-o para deduplicar do seu lado.
"evt_01k1y6r7z2m4n6p8q0r2s4t6u8"
charge.paid, charge.failed, charge.in_analysis, charge.refunded, charge.chargedback, withdrawal.paid, med.opened, med.approved, med.rejected Show child attributes
Show child attributes
Response
Recebido. Qualquer 2xx encerra a entrega. Responda rápido e processe depois: demorar vira retentativa, e retentativa em fluxo de dinheiro é como um pagamento acaba contabilizado duas vezes.