O que são Webhooks
Webhooks permitem que o NTX Pay envie notificações HTTPS para o seu servidor sempre que um evento relevante ocorre — confirmação de cash-in, falha de cash-out, etc. — sem você precisar fazer polling emGET /api/spei/transaction/{externalId}.
Eventos Disponíveis (verificar se tem mais eventos a serem adicionados)
| Evento | Quando dispara |
|---|---|
cash_in | SPEI cash-in confirmado ou OXXO cash-in pago no caixa |
cash_out | SPEI cash-out liquidado |
refund_in | Estorno recebido (uma transação cash-out sua foi devolvida) |
refund_out | Estorno enviado (você devolveu um cash-in) |
internal_transfer | Transferência interna entre contas NTX Pay |
Configuração
Endpoint:POST /api/webhooks-config. Você fornece:
url— endpoint HTTPS no seu servidorevents— array com 1 a 5 eventossecret— opcional. Se omitido, o NTX Pay gera um automaticamente e retorna na resposta.
Segurança — Assinatura HMAC
Todo webhook é assinado com HMAC-SHA256 usando osecret. Headers enviados:
| Header | Conteúdo |
|---|---|
X-NTXPay-Signature | sha256=<hex-hmac> do corpo bruto |
X-NTXPay-Timestamp | timestamp Unix do envio |
X-NTXPay-Event | nome do evento (cash_in, etc.) |
X-NTXPay-Delivery | UUID único do envio (use para dedupe) |
Garantias de Entrega
- At-least-once: você pode receber o mesmo evento mais de uma vez. Use
X-NTXPay-Deliverypara deduplicar. - Retries: até 5 tentativas em backoff exponencial se você responder com status diferente de
2xx. - Timeout: 10 segundos. Responda rápido — processe assincronamente se necessário.
- Order: os eventos chegam fora de ordem em condições de erro. Confira
createdAtno payload.
Práticas Recomendadas
- Responda
200imediatamente após validar a assinatura e enfileirar o evento. - Deduplique por
X-NTXPay-Deliveryoutransaction.id. - Idempotência: processe
cash_inconfirmado para o mesmoexternalIduma única vez. - Re-consulte
GET /api/spei/transaction/{externalId}se tiver dúvida sobre estado — webhook é uma otimização, não a fonte da verdade. - HTTPS obrigatório — webhooks só são enviados a URLs com protocolo HTTPS.
Próximos Passos
Setup de Webhook
Configure o endpoint na sua conta
Implementação
Exemplos em Node.js, Python, Java e Go de validação HMAC