Los webhooks entregan notificaciones de pago en tiempo real directamente a tu servidor. Pero, si no se implementan con cuidado, pueden convertirse en una vulnerabilidad. Estas son cinco prácticas esenciales.
1. Verifica siempre la firma
Cada webhook de InzoPay incluye una cabecera InzoPay-Signature con una firma HMAC-SHA256. Verifícala siempre con el secreto de firma de tu endpoint antes de procesar el evento. Consulta nuestra guía de verificación de firmas.
2. Comprueba la marca de tiempo
Verifica que la marca de tiempo del webhook (t=) esté a menos de 5 minutos de la hora actual. Así evitas los ataques de repetición, en los que un atacante reenvía un webhook capturado.
3. Devuelve 200 rápidamente
Procesa los webhooks de forma asíncrona. Devuelve de inmediato una respuesta 200 y gestiona el evento en segundo plano. Si tu servidor tarda más de 10 segundos, InzoPay considerará fallida la entrega.
4. Gestiona los eventos duplicados
Por los reintentos, tu endpoint puede recibir el mismo evento más de una vez. Usa el ID del evento (event.id) para lograr idempotencia: no vuelvas a procesar un evento que ya gestionaste.
5. Usa solo HTTPS
InzoPay solo entrega webhooks a endpoints HTTPS. Nunca uses HTTP en los endpoints de webhook en producción.