Como funciona
O sandbox usa o mesmo motor de outbox que produção. Isso significa:- Mesma estrutura de payload
- Mesmos headers (
X-NTXPay-Delivery,X-NTXPay-Signature, etc.) - Mesma política de retry exponencial
- Mesmo formato de assinatura HMAC
delayed:.
Registrar URL
Response (201)
secret retornado — ele é usado para verificar a assinatura HMAC. Ele só é exibido uma vez.
Eventos disponíveis
| Evento | Disparado quando |
|---|---|
cash_in | CLABE descartável recebe uma transferência (simulada) |
cash_out | Envio SPEI é resolvido (confirmado ou falhado) |
refund_in | Refund de cash-in é processado |
refund_out | Refund de cash-out é processado |
Verificar assinatura
Cada webhook chega com o headerX-NTXPay-Signature no formato sha256=<hex>:
Testar dedupe
Cada entrega tem umdeliveryId único no header X-NTXPay-Delivery e dentro do payload. Para testar seu dedupe:
- Configure seu handler para retornar
500na primeira tentativa. - O NTX Pay vai entregar a mesma mensagem novamente (com o mesmo
deliveryId). - Confirme que seu sistema ignora a duplicata e responde
200na segunda tentativa.
Política de retry
| Tentativa | Atraso após anterior |
|---|---|
| 1 | imediato |
| 2 | 30s |
| 3 | 2min |
| 4 | 10min |
| 5 | 1h |
| 6 | 6h |
| 7+ | desistido |
2xx em até 5 segundos — qualquer 5xx, timeout ou erro de conexão dispara retry.
Cenários de teste
Force o webhook sair comoFAILED ou com delay:
Boas práticas
- Responda 200 antes de processar — enfileire o evento em background; cinco segundos é o teto.
- Use
deliveryIdpara dedupe — não confie emtransaction.id(retries chegam com o mesmotransaction.idmasdeliveryIdnovo no caso de redrive manual). - Não dependa da ordem — webhooks podem chegar fora de ordem após retries.
- Valide a assinatura — sempre, mesmo em sandbox.