Qué son los Webhooks
Los webhooks permiten que NTX Pay envíe notificaciones HTTPS a tu servidor siempre que ocurre un evento relevante — confirmación de cash-in, falla de cash-out, etc. — sin que tengas que hacer polling enGET /api/transactions.
Eventos Disponibles
| Evento | Cuándo dispara |
|---|---|
cash_in | SPEI cash-in confirmado o OXXO cash-in pagado en caja |
cash_out | SPEI cash-out liquidado |
refund_in | Estorno recibido (una transacción cash-out tuya fue devuelta) |
refund_out | Estorno enviado (devolviste un cash-in) |
internal_transfer | Transferencia interna entre cuentas NTX Pay |
Configuración
Endpoint:POST /api/webhooks-config. Proporcionas:
url— endpoint HTTPS en tu servidorevents— array con 1 a 5 eventossecret— opcional. Si se omite, NTX Pay genera uno automáticamente y lo retorna en la respuesta.
Seguridad — Firma HMAC
Todo webhook se firma con HMAC-SHA256 usando elsecret. Headers enviados:
| Header | Contenido |
|---|---|
X-NTXPay-Signature | sha256=<hex-hmac> del cuerpo crudo |
X-NTXPay-Timestamp | timestamp Unix del envío |
X-NTXPay-Event | nombre del evento (cash_in, etc.) |
X-NTXPay-Delivery | UUID único del envío (úsalo para dedupe) |
Garantías de Entrega
- At-least-once: puedes recibir el mismo evento más de una vez. Usa
X-NTXPay-Deliverypara deduplicar. - Retries: hasta 5 intentos en backoff exponencial si respondes con status distinto de
2xx. - Timeout: 10 segundos. Responde rápido — procesa asíncronamente si es necesario.
- Order: los eventos llegan fuera de orden en condiciones de error. Confiere
createdAten el payload.
Prácticas Recomendadas
- Responde
200inmediatamente tras validar la firma y encolar el evento. - Deduplica por
X-NTXPay-Deliveryotransaction.id. - Idempotencia: procesa
cash_inconfirmado para el mismoexternalIduna sola vez. - Re-consulta
/api/transactionssi tienes duda sobre el estado — el webhook es una optimización, no la fuente de verdad. - HTTPS obligatorio — los webhooks solo se envían a URLs con protocolo HTTPS.
Próximos Pasos
Setup de Webhook
Configura el endpoint en tu cuenta
Implementación
Ejemplos en Node, Python y PHP de validación HMAC