Webhooks — Visão Geral
Webhooks permitem que o Hubpay notifique sua aplicação em tempo real quando algo acontece — por exemplo, quando um Pix é pago.
Como funciona
- O PSP (Asaas, Mercado Pago) notifica o Hubpay sobre o evento.
- O Hubpay normaliza o evento para o formato unificado.
- O Hubpay chama o(s) endpoint(s) que você cadastrou.
Você sempre recebe o mesmo formato, independente do PSP.
Cadastrando um endpoint
Acesse Dashboard → Webhooks e clique em Novo Endpoint. Informe a URL da sua aplicação e selecione os eventos que quer receber.
Formato do payload
json
{
"id": "evt_a1b2c3d4",
"type": "charge.paid",
"created_at": "2026-04-15T15:30:00.000Z",
"data": {
"id": "chg_xyz789",
"object": "charge",
"status": "paid",
"amount": 5000,
"currency": "BRL",
"description": "Pedido #1234",
"provider": "asaas",
"pix": {
"copy_paste": "00020126...",
"qr_code_base64": null
},
"paid_at": "2026-04-15T15:30:00.000Z",
"created_at": "2026-04-15T14:00:00.000Z"
}
}Headers enviados
| Header | Descrição |
|---|---|
X-Hubpay-Signature | HMAC-SHA256 do body (v1=hex...). Use para validar autenticidade. |
X-Hubpay-Event-Type | Tipo do evento, ex: charge.paid |
X-Hubpay-Event-Id | ID único do evento (idempotência) |
X-Hubpay-Delivery-Attempt | Número da tentativa atual (começa em 1) |
Retry policy
Se seu endpoint não responder com 2xx (ou demorar mais de 10 segundos), o Hubpay retenta automaticamente:
| Tentativa | Delay após falha |
|---|---|
| 1ª | imediato |
| 2ª | 1 minuto |
| 3ª | 5 minutos |
| 4ª | 15 minutos |
| 5ª | 1 hora |
| 6ª | 6 horas |
| 7ª | 24 horas |
Retorne 200 OK o mais rápido possível. Processe o evento de forma assíncrona se necessário.