Eventos e formato
Todos os pagamentos, em qualquer moeda, chegam no mesmo webhook de Recebimento, no mesmo formato.
| Evento | Quando | Tipo de webhook |
|---|---|---|
transaction.approved | Pagamento aprovado | Recebimento |
transaction.pending | Cobrança criada, aguardando pagamento | Recebimento |
transaction.failed | Pagamento com falha | Recebimento |
transaction.rejected | Pagamento recusado | Recebimento |
transaction.cancelled | Cobrança cancelada | Recebimento |
transaction.expired | Cobrança vencida | Recebimento |
payment.refunded | Estorno concluído | Reembolso |
withdrawal.completed | Saque concluído | Saques |
withdrawal.failed | Saque não concluído | Saques |
Cabeçalhos
X-Webhook-Event: o evento.X-Webhook-Id: o mesmo id em todas as tentativas e reenvios; use para não processar duas vezes.X-Webhook-Signature:sha256=+ HMAC-SHA256 do corpo (verificar).X-Webhook-Timestamp: horário do envio.
Corpo
transaction.payment_method traz o método (pix, credit_card, boleto, spei, oxxo…) e transaction.currency a moeda.
transaction.approved
{
"event_type": "transaction.approved",
"transaction": {
"id": "zw_1760000000000_ab12cd34",
"external_id": "pedido-0001",
"status": "paid",
"payment_method": "pix",
"currency": "BRL",
"amount": "99.90",
"amount_cents": 9990,
"net_amount": "97.90",
"net_amount_cents": 9790,
"fee": {
"total_amount": "2.00",
"total_amount_cents": 200,
"percentage": 2
},
"paid_at": "2026-10-12T15:02:10.000Z"
},
"customer": {
"name": "Maria Souza",
"email": "[email protected]"
},
"items": [
{
"title": "Plano Pro",
"unit_price": "99.90",
"unit_price_cents": 9990,
"quantity": 1,
"total_amount_cents": 9990
}
],
"webhook": {
"event": "transaction.approved",
"timestamp": "2026-10-12T15:02:11.000Z",
"version": "2.0"
}
}