Saltar al contenido
Falconextdev

Consumir eventos

Procesa y reacciona a los eventos del ciclo de vida de un pedido.

Una vez que recibes webhooks, el siguiente paso es reaccionar a cada evento. Aquí verás el patrón recomendado.

Enruta por tipo de evento

JavaScript
JavaScript
function handleEvent(event) {
  switch (event.event) {
    case "order.assigned":
      return notifyCustomer(event.data, "Tu pedido tiene repartidor");
    case "order.in_transit":
      return updateOrder(event.data, "en_camino");
    case "order.delivered":
      return markOrderDelivered(event.data);
    case "order.failed":
      return openIncident(event.data);
    default:
      return; // ignora eventos que aún no manejas
  }
}

Sé idempotente

Un mismo evento puede llegar más de una vez (por reintentos). Usa el id del pedido y el tipo de evento como llave para no procesar dos veces.

Guarda un registro de eventos procesados

Antes de actuar, verifica si ya viste ese (order_id, event). Si sí, responde 2xx sin hacer nada.

Ordena por el ciclo de vida

El orden natural es created → assigned → picked_up → in_transit → delivered. No asumas que los eventos llegan estrictamente en orden: apóyate en el campo status del payload como fuente de verdad.

Catálogo de eventos

Todos los eventos y sus payloads de ejemplo.