IOSOR Guías

Firma del webhook y ventana de reintento: idempotencia para que las 02:00 sean aburridas

Verifiquen firmas, acoten la ventana de reintento y hagan idempotentes los webhooks de entrada — nunca acepten callbacks sin firma, nunca doblen el débito prepaid en un reintento.

Un callback sin firma no es un evento. Es HTTP no autenticado que casualmente parece su payload. Los equipos que «aceptan primero, verifican después» pagan a las 02:00: un DLR rejugado, un STOP duplicado o un segundo débito de cartera que finanzas no puede deshacer. El prepaid hace el fallo visible en dinero. Los hábitos aburridos son verificar la firma en cada petición, una ventana de reintento acotada y claves de idempotencia que finanzas lee junto a la línea del ledger.

IOSOR espera integraciones B2B auditables: webhooks firmados, secretos rotables, errores client-safe que no vierten marcas ajenas. Cerca de USD 1,000+ de uso mensual, los ID de correlación y la evidencia de reintento pasan a revisión comercial — no solo higiene de ingeniería.

Los callbacks sin firma no son eventos

Verifiquen la firma antes de parsear campos de negocio. Rechacen firmas faltantes, caducadas o desalineadas con un error client-safe — no procesen «igual para el piloto». Un consumidor de staging que salta la verificación entrena a producción a saltarla. Catálogo live de mensajería no significa que su URL de webhook sea un vertedero público.

Ventanas de reintento y por qué ocurren las 02:00

La entrega al-menos-una-vez reintenta en timeout, 5xx y pérdida de red ambigua. Un reintento tardío a las 02:00 es normal. La ventana acota cuánto tiempo un payload firmado sigue siendo aceptable: demasiado ancha y un atacante rejuega un STOP viejo; demasiado estrecha y un reintento legítimo parece falsificación. Registren rechazos de ventana aparte de fallos de firma.

Idempotencia que finanzas puede leer

El mismo ID de evento debe producir el mismo estado final. Extraigan el ID de evento/mensaje de la plataforma — no inventen una clave con marca de tiempo más cuerpo. Devuelvan éxito en un ID conocido sin volver a debitar. Los envíos de salida necesitan la misma disciplina — idempotencia, reintentos y dinero.

Rotación de firma sin caos de doble aceptación

Roten secretos sin una ventana donde firmas viejas y nuevas se acepten para siempre. Planifiquen solape, luego corten. Nunca peguen un secreto de producción en un ticket. Separad consumidores de sandbox y producción. Dead-letter con herramientas de replay para que ops pueda reconducir un consumidor fallido sin inventar un segundo débito.

Señales de alarma

  • El handler acepta cuerpos sin firma «por ahora»
  • Sin ventana de reintento, o una medida en semanas
  • Sobrescritura de estado sin comparar marcas de tiempo
  • Efectos CRM/correo antes del ACK
  • Secreto de producción en el chat
  • ID de evento duplicados el mes pasado sin nadie mirando
  • Errores al cliente que vierten códigos crudos de upstream

Comience con IOSOR

Abra su consola de IOSOR y revise la configuración de sus puntos de enlace de webhooks activos para recibos de entrega entrantes y devoluciones de llamadas de eventos. Configure una ventana de reproducción estricta de verificación de firmas de cinco minutos y vincule su gestor estrictamente al identificador de eventos de la plataforma.

Conclusión IOSOR

Los gestores de webhooks sin verificar y la falta de ventanas de reproducción convierten los reintentos rutinarios de red en vulnerabilidades de seguridad y cambios de estado duplicados. Limitar la validez de la firma por marca de tiempo y aplicar una estricta idempotencia garantiza que los intentos de entrega automatizados a las 02:00 sigan siendo completamente predecibles.

¿Fue útil esta guía?

Guías relacionadas