Webhooks
Buenas prácticas y deduplicación
Cómo hacer tu endpoint idempotente, rápido y seguro antes de ponerlo en producción.
Estas son las prácticas esenciales de seguridad e implementación para construir integraciones de webhook seguras y fiables.
Seguridad
- Usa siempre una URL segura (HTTPS). Las conexiones HTTP no están cifradas y son vulnerables a ataques man-in-the-middle.
- Usa un método de autenticación (
BEARER,API_TOKENoBASIC_AUTH) al crear tu webhook, para evitar peticiones no autorizadas. - Valida la estructura y el contenido del evento antes de procesarlo: comprueba que los campos requeridos estén presentes y tengan el tipo esperado.
Implementación
- Confirma la recepción de inmediato con un
200 OK. Tonder tiene un timeout de 30 segundos; responde primero y procesa la lógica de negocio en segundo plano. - Usa
metadata.external_idpara deduplicar. Guarda los IDs procesados temporalmente (24-48 horas) y compáralos antes de procesar nuevos eventos —el mecanismo de reintento puede enviar el mismo evento varias veces. - Guarda registros detallados del payload completo, el estado de procesamiento y los errores, con timestamps e IDs de evento.
- Maneja los errores con elegancia. Envuelve el procesamiento en bloques try-catch para que un webhook fallido no tire toda tu aplicación.
Checklist de deduplicación
- Deduplica por
metadata.external_id(funciona en formatos Short + Long). - Mantén un índice
idempotency_keyen tu base de datos. - En modo Híbrido, trata el par Pending + Success como intencional.
- Verifica siempre el estado final con
GET /api/v1/transactions/{id}/. - Maneja
Declinedpara retiros como estado terminal.
Siguientes pasos
¿Te resultó útil esta página?
