Skip to main content

Descripción general

Los webhooks notifican a tu servidor cuando ocurren eventos de pago. Configura el webhookUrl al crear un pago, y Ebioro enviará un POST a esa URL cada vez que el estado del pago cambie.

Payload del webhook

Tipos de eventos

Un pago puede emitir varios eventos transaction_updated a medida que avanza (por ejemplo underpaid y luego paid), y la cantidad puede variar según el tipo de liquidación. No asumas un número fijo — basa tu lógica en el último status y settlement_status de cada evento, y trata settlement_status: "paid" como la señal de que los fondos se han liquidado en tu cuenta. Deduplica por el id del pago.

Verificación de webhooks

Cada webhook incluye un header X-WEBHOOK-AUTH con una firma HMAC-SHA256. Siempre verifica esta firma antes de procesar el webhook. La firma se calcula sobre el cuerpo de la solicitud sin procesar (raw) tal como se envió. Verifica contra esos bytes sin procesar — no analices el JSON para volver a serializarlo, porque un objeto re-serializado puede diferir en el orden de las claves o en los espacios y la firma dejará de coincidir.

Requisitos

  • La URL del webhook debe usar HTTPS en producción
  • Tu endpoint debe responder con código de estado 200
  • Responde dentro de 10 segundos o la solicitud expirará

Política de reintentos

Si tu endpoint devuelve un código de estado diferente a 200 o expira, el webhook no se reintenta automáticamente. Usa el registro de entregas para encontrar entregas fallidas y reenviarlas.

Registro de entregas y reenvío

Cada entrega de webhook queda registrada — exitosa o no. Usa la API de registros de webhooks para auditar y recuperar:
Cada entrada del registro guarda el tipo de evento, la URL de destino, el estado de la entrega (success | failed | skipped), el código HTTP, el tiempo de respuesta y el número de intentos. Un reenvío reproduce el payload almacenado originalmente, firmado de nuevo con tu clave secreta actual:
  • El payload es idéntico byte a byte al de la entrega original — tu endpoint recibe el mismo evento otra vez. Deduplica por el contenido del evento (id del pago + estado), no por la firma.
  • Los reenvíos están limitados a 10 por minuto.
Siempre verifica la firma X-WEBHOOK-AUTH. Sin verificación, un atacante podría enviar eventos de webhook falsos a tu endpoint.