Saltar al contenido principal

Entregas de Webhook

Cada notificación enviada a un endpoint se registra como una entrega, permitiendo monitoreo y reintento.

Estado de la Entrega

EstadoDescripción
pendingEsperando envío
deliveredEntregado con éxito (HTTP 2xx)
failedFallo en la entrega
retryingEsperando nuevo intento

Campos de la Entrega

CampoDescripción
EndpointWebhook de destino
EventoEvento que generó la entrega
Estado HTTPCódigo de respuesta del destino
Headers de la solicitudHeaders enviados
Body de la solicitudPayload enviado (JSON)
Headers de la respuestaHeaders recibidos
Body de la respuestaCuerpo de la respuesta (máx 2000 caracteres)
ErrorMensaje de error (si falló)
IntentosNúmero de intentos
Próximo reintentoFecha/hora del próximo intento
Entregado enTimestamp de éxito

Pipeline de Procesamiento

Etapa 1: Creación del Evento

Operación en el recurso (ej: pago creado)
→ Evento creado en la base de datos
→ Job encolado: EVENT_DISPATCH

Etapa 2: Despacho del Evento

Worker procesa EVENT_DISPATCH
→ Busca webhooks activos de la organización
→ Filtra por eventos suscritos
→ Para cada webhook correspondiente:
→ Crea registro de WebhookDelivery
→ Encola job: WEBHOOK_DELIVERY

Etapa 3: Entrega

Worker procesa WEBHOOK_DELIVERY
→ Genera payload + firma
→ POST a URL del webhook (timeout: 30s)
→ Éxito (2xx): marca como delivered, reinicia contador de fallos
→ Fallo: actualiza stats, programa reintento
→ Después de 10 fallos consecutivos: desactiva endpoint

Reintento Automático

  • Las entregas fallidas se reintentan automáticamente
  • Backoff exponencial (1s, 2s, 4s, 8s...)
  • Máximo de intentos configurable por job

Reintento Manual

Las entregas individuales pueden reintentarse manualmente desde el dashboard.

Monitoreo

Para cada organización:

  • Total de webhooks activos/inactivos
  • Total de entregas
  • Entregas con fallo
  • Contadores de fallos consecutivos