Webhook

Un POST de evento a un endpoint HTTPS: recibos de entrega, mensajes entrantes y cambios de estado que el receptor verifica, confirma rápido y encola.

Solo definiciones: un término explicado aquí no es un servicio que vendamos.

Un webhook es un callback HTTPS que envía un evento a una URL registrada por usted, como un recibo de entrega o un mensaje entrante. El receptor verifica la firma, confirma con 2xx y encola el trabajo.

El receptor gestiona duplicados y eventos desordenados; un webhook es entrega push.

Verificar, confirmar, encolar

El proveedor envía un POST cuando ocurre un evento, y su endpoint devuelve un 2xx para confirmarlo. La carga útil suele ser JSON con un tipo de evento y un identificador. El proveedor puede firmarla; compruebe la firma contra el cuerpo sin procesar con el secreto compartido y rechace solicitudes fuera de la ventana de repetición.

Verifique primero, guarde el evento sin procesar, devuelva 2xx y procese el trabajo de forma asíncrona. Los endpoints lentos provocan reintentos. La entrega suele ser al menos una vez y el orden no se conserva, así que deduplique por el ID de evento. Mantenga una cola de mensajes muertos para los eventos que no puedan procesarse. La explicación SMPP frente a HTTP compara los callbacks con la entrega basada en sesión.

Preguntas frecuentes

¿Cuál es la diferencia entre un webhook y una API?

Una API la consulta el cliente. Un webhook lo envía el proveedor cuando ocurre un evento, y la mayoría de las plataformas ofrece ambos.

¿Por qué llegan dos veces los eventos?

La entrega suele ser al menos una vez, así que un reintento puede duplicar un evento ya procesado. Deduplique por el ID de evento.

¿Qué estado debo devolver?

Un 2xx cuando el evento ya está persistido o encolado. Devolverlo antes arriesga perder el evento si falla el paso siguiente.

Más información

Fuentes

  1. IETF RFC 9110: HTTP Semantics