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, devolução — sem você precisar fazer polling.Tipos de Webhook
Ao registrar um webhook viaPOST /api/webhooks-config, você escolhe qual tipo de evento aquela URL recebe:
Cada webhook assina exatamente um tipo. Para receber vários tipos em URLs separadas, crie um webhook por tipo — ou use
all para centralizar tudo em uma URL e rotear pelo campo event do payload.Payload
Todo webhook entrega o mesmo formato de payload:string
Tipo do evento:
transaction.cash_in.settled, transaction.cash_in.rejected, transaction.cash_in.returned, transaction.cash_out.settled, transaction.cash_out.rejected, transaction.cash_out.returned, ou as variantes .pending. Use este campo para rotear o processamento.string
Identificador da transação. Correlacione com o
id retornado na criação da cobrança/transferência.integer
Valor em centavos MXN.
string
LIQUIDATED (liquidado), REJECTED (rejeitado), RETURNED (devolvido), EXPIRED (expirado sem pagamento) ou PENDING (em processamento).string
CLABEs de destino e origem da transferência. Podem vir
null dependendo do fluxo.string
Nome de quem pagou (cash-in), quando informado pela rede. Pode vir
null.string
Referência numérica SPEI e comprovante, quando disponíveis.
string
Timestamp ISO 8601 do evento.
Headers
Sempre valide a assinatura antes de processar — sem isso, qualquer pessoa pode falsificar notificações. Veja Implementação.
Garantias de Entrega
- At-least-once: você pode receber o mesmo evento mais de uma vez. Deduplique por
x-event-id. - Retries: até 5 tentativas em backoff exponencial (a partir de ~5s) se você responder com status diferente de
2xx. - Timeout: 10 segundos. Responda rápido — processe assincronamente se necessário.
- Ordem: eventos podem chegar fora de ordem em condições de erro. Confira
occurredAtno payload.
Práticas Recomendadas
- Responda
200imediatamente após validar a assinatura e enfileirar o evento. - Deduplique por
x-event-id. - Roteie pelo campo
event— não presuma que uma URL recebe um único tipo (especialmente comall). - Trate
statusexplicitamente — implemente os quatro estados (LIQUIDATED,REJECTED,RETURNED,PENDING). - HTTPS obrigatório — webhooks só são enviados a URLs com protocolo HTTPS.
Próximos Passos
Configuração
Registre a URL na sua conta e dispare um webhook de teste
Implementação
Exemplos em Node.js, Python, Java e Go de validação HMAC