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