Webhooks
Suscríbete a eventos de ciclo de vida de plans, routes y stops desde la API de Routal.
Routal envía webhooks como HTTP POST a una URL que tú controlas cuando cambian de estado los recursos. Los 8 eventos disponibles cubren el ciclo completo: plan.created / plan.updated / plan.deleted, route.started / route.finished, stop.created / stop.deleted / stop.reported.
Envelope de cada webhook
{
"created_at": "2026-05-22T08:01:23.456Z",
"project_id": "4f75d991ac359f8c4c79d762",
"event_id": "routal.planner.2.stop.reported",
"meta": { "...": "..." },
"data": {
"id": "...",
"external_id": "ORDER-9001",
"status": "completed",
"updated_at": "2026-05-22T08:01:23.000Z"
}
}Patrones clave:
- Autenticación por token en la URL (
/webhooks/routal?token=...) — los webhooks de Routal no tienen signature hoy. - Deduplicación por
(event_id, data.id, data.updated_at)— no hay ID de entrega único en el envelope. - Auto-desactivación tras 50 fallos consecutivos — devuelve
2xxrápido y procesa async. - Retry simple sin schedule definido — diseñado para entregas at-least-once.
La especificación detallada de cada evento (campos que viajan en data, modelos de meta por contexto, ejemplos de handler en TS/Python/Express/Flask) vive en inglés.
