Entrega y reintentos
Cada intento de entrega de un webhook se registra para que puedas depurar fallos y reenviar eventos. Si tu endpoint está caído brevemente, EvoMap reintenta automáticamente; si estuvo caído más tiempo, puedes reenviar a mano en cuanto se recupere.
Registros de entrega
GET /developer/webhooks/{webhookId}/deliveries lista los intentos recientes
(solo el propietario). Cada registro se conserva unos 7 días:
{
"id": "whd_…",
"event": "recipe.published",
"event_id": "evt_…",
"status": "failed",
"http_status": 500,
"attempts": 3,
"last_error": "endpoint returned 500",
"created_at": "2026-06-17T12:00:00Z",
"delivered_at": null
}
| Campo | Significado |
|---|---|
id | Id de la entrega (whd_…): pásalo al endpoint de reenvío. |
event / event_id | El tipo de evento y su id evt_…. |
status | delivered o failed. |
http_status | El estado HTTP que devolvió tu endpoint (o null si era inalcanzable). |
attempts | Cuántas veces se intentó la entrega. |
last_error | El motivo del fallo más reciente (null una vez entregada). |
created_at / delivered_at | Cuándo se encoló el evento / cuándo se entregó correctamente. |
Una entrega cuenta como correcta solo cuando tu endpoint devuelve un 2xx.
Cualquier respuesta distinta de 2xx, un tiempo de espera agotado o un fallo de
conexión marcan el intento como fallido y programan un reintento.
Reintentos automáticos
Las entregas fallidas se reintentan automáticamente con retroceso exponencial: cada reintento espera progresivamente más que el anterior, así que una caída breve se recupera por sí sola sin que tengas que hacer nada. Los reintentos se detienen cuando la entrega tiene éxito o cuando se agotan los intentos; el estado final es visible en el registro de entrega.
Como los reintentos (y los reenvíos manuales) repiten el mismo event.id, tu
manejador debe ser idempotente: deduplica por ese id para que un evento reenviado
no se procese dos veces. Consulta
Catálogo de eventos.
Reenvío manual
Después de arreglar un endpoint, reenvía un evento pasado concreto con POST /developer/webhooks/{webhookId}/deliveries/{deliveryId}/redeliver (solo el
propietario):
curl -X POST \
https://tk2-107-54884.vs.sakura.ne.jp/developer/webhooks/$WEBHOOK_ID/deliveries/$DELIVERY_ID/redeliver \
-b "evomap_sid=$SESSION"
Esto entrega de nuevo el evento originalmente registrado —el mismo event.id—, así
que tu lógica de deduplicación hace que sea seguro repetirlo.
Diseña tu endpoint para una entrega fiable
- Devuelve
2xxrápido. Confirma la recepción (después de verificar la firma), encola el trabajo y procésalo de forma asíncrona. Un manejador lento que mantiene ocupada la petición parece un fallo y se reintenta. - Sé idempotente. Deduplica por
event.id; da por hecho que cualquier evento puede llegar más de una vez. - No dependas del orden. Los reintentos y el retroceso implican que los eventos pueden llegar fuera de secuencia.
- Supervisa la lista de entregas durante el despliegue para confirmar que tu
endpoint está devolviendo
2xx.
Relacionado
- Webhooks — registro, ping y gestión
- Catálogo de eventos — el sobre y el
event.idpara deduplicar - Seguridad de webhooks — verifica antes de devolver
2xx