Entregas y reintentos
Log de entregas, politica de retry BullMQ y manejo idempotente.
Cada webhook saliente se persiste y entrega de forma asincrona via la cola BullMQ mc:webhook-delivery. Usa la API de entregas para depurar fallos y disenar receptores idempotentes.
Log de entregas
GET /webhooks/endpoints/:id/deliveries?limit=20
Authorization: Bearer mc_live_xxxx
X-Tenant-Id: clxxxxxxxx
Cada registro WebhookDelivery incluye:
| Campo | Significado |
|---|---|
id | ID de entrega (tambien en X-MailingCore-Delivery-Id) |
event | Tipo de evento (email.bounced, contact.unsubscribed, …) |
payload | Cuerpo JSON entregado a tu URL |
statusCode | HTTP status de tu servidor (si hubo respuesta) |
responseBody | Cuerpo de respuesta truncado para depuracion |
attempt | Numero de intento (1–5) |
deliveredAt | Timestamp del ultimo intento |
createdAt | Cuando se encolo la entrega |
El limit por defecto es 20 si se omite.
Politica de reintentos
| Ajuste | Valor |
|---|---|
| Cola | mc:webhook-delivery |
| Intentos max | 5 |
| Backoff | Exponencial, delay base 10 s |
| Timeout peticion | 10 s por llamada HTTP |
| Criterio exito | Respuesta HTTP 2xx |
Ante status no-2xx o error de red/timeout, BullMQ reencola el job con backoff exponencial hasta agotar intentos. Tras el quinto fallo, la entrega queda con el ultimo statusCode y no hay mas reintentos automaticos para ese job.
POST https://tu-app.com/webhooks/mailingcore
User-Agent: MailingCore-Webhook/1.0
Content-Type: application/json
X-MailingCore-Signature: t=1719763200,v1=...
X-MailingCore-Event: contact.unsubscribed
X-MailingCore-Delivery-Id: clxdelivery...
Checklist del receptor
Responder rapido
Devuelve 200 en pocos segundos. El trabajo pesado va en tu propia cola.
Verificar firma
Valida
X-MailingCore-Signaturesobre el raw body antes de parsear JSON — ver Verificar firma.Deduplicar
Usa
X-MailingCore-Delivery-Ido el campoiddel payload. Los reintentos pueden repetir el mismo evento logico.Monitorizar fallos
Consulta
GET /webhooks/endpoints/:id/deliverieso alerta antestatusCodeno-2xx repetidos.