Estado del pedido — Eventos principales Estos eventos marcan transiciones de estado en el pedido: CONFIRMED Código: ORDER_CONFIRMEDNuevo pedido llegó en su cola.
{
"id" : "evt_123" ,
"code" : "CONFIRMED" ,
"fullCode" : "ORDER_CONFIRMED" ,
"orderId" : "ord_456" ,
"createdAt" : "2024-04-25T18:00:00Z" ,
"metadata" : {
"id" : "ord_456" ,
"status" : "CONFIRMED" ,
"category" : "FOOD" ,
"orderType" : "DELIVERY" ,
"items" : [
{
"id" : "item_789" ,
"name" : "Hamburguesa" ,
"quantity" : 1 ,
"price" : 25.50
}
],
"customer" : {
"id" : "cust_123" ,
"name" : "Juan Silva" ,
"phone" : "+55 11 99999-8888"
},
"deliveryAddress" : {
"address" : "Calle Flores 123" ,
"city" : "São Paulo" ,
"zipcode" : "01234-567"
},
"createdAt" : "2024-04-25T18:00:00Z"
}
} Próximas acciones: Procesar pedido en su POS/sistema Imprimir comprobante para cocina Llamar /confirm dentro de 8 minutos Ver cómo Plazo crítico: 8 minutos para llamar /confirm, o pedido se cancela automáticamente.
SEPARATION_STARTED Código: PREPARATION_STARTEDIniciaste la preparación (llamaste /startPreparation).
{
"id" : "evt_124" ,
"code" : "SEPARATION_STARTED" ,
"fullCode" : "PREPARATION_STARTED" ,
"orderId" : "ord_456" ,
"createdAt" : "2024-04-25T18:05:00Z" ,
"metadata" : {
"id" : "ord_456" ,
"status" : "PREPARING" ,
"startedAt" : "2024-04-25T18:05:00Z"
}
} Próximas acciones: Ninguna (informativo) Continúa con preparación
SEPARATION_ENDED Código: PREPARATION_ENDEDMarcaste como listo (llamaste /readyToPickup).
{
"id" : "evt_125" ,
"code" : "SEPARATION_ENDED" ,
"fullCode" : "PREPARATION_ENDED" ,
"orderId" : "ord_456" ,
"createdAt" : "2024-04-25T18:15:00Z" ,
"metadata" : {
"id" : "ord_456" ,
"status" : "READY_TO_PICKUP" ,
"readyAt" : "2024-04-25T18:15:00Z"
}
} Próximas acciones: Notificar cliente que pedido está listo Esperar recogida (TAKEOUT) o conductor (DELIVERY)
DISPATCHED Código: DISPATCHEDPedido fue despachado (conductor salió con pedido o cliente retiró).
{
"id" : "evt_126" ,
"code" : "DISPATCHED" ,
"fullCode" : "DISPATCHED" ,
"orderId" : "ord_456" ,
"createdAt" : "2024-04-25T18:20:00Z" ,
"metadata" : {
"id" : "ord_456" ,
"status" : "DISPATCHED" ,
"dispatchedAt" : "2024-04-25T18:20:00Z" ,
"deliveredBy" : "MERCHANT" // o "IFOOD"
}
} Próximas acciones: Si entrega propia: rastrear conductor a destino Si iFood: esperar evento de confirmación entrega
CONCLUDED Código: CONCLUDEDPedido fue finalizado (entregado o recogido exitosamente).
{
"id" : "evt_127" ,
"code" : "CONCLUDED" ,
"fullCode" : "CONCLUDED" ,
"orderId" : "ord_456" ,
"createdAt" : "2024-04-25T18:45:00Z" ,
"metadata" : {
"id" : "ord_456" ,
"status" : "CONCLUDED" ,
"concludedAt" : "2024-04-25T18:45:00Z" ,
"totalPrice" : 25.50 ,
"totalValue" : 25.50
}
} Próximas acciones: Archivar pedido Sin acciones adicionales
CANCELLED Código: ORDER_CANCELLEDPedido fue cancelado.
{
"id" : "evt_128" ,
"code" : "CANCELLED" ,
"fullCode" : "ORDER_CANCELLED" ,
"orderId" : "ord_456" ,
"createdAt" : "2024-04-25T18:50:00Z" ,
"metadata" : {
"id" : "ord_456" ,
"status" : "CANCELLED" ,
"cancelledAt" : "2024-04-25T18:50:00Z" ,
"cancelReason" : "503" ,
"cancelReasonDescription" : "Artículo no disponible"
}
} Próximas acciones: Remover pedido de cola Liberar recursos (artículos reservados, etc.) Reembolsar cliente
Cancelamiento — Eventos de control CANCELLATION_REQUESTED Código: CANCELLATION_REQUESTEDUsted o cliente solicitó cancelamiento.
{
"id" : "evt_129" ,
"code" : "CANCELLATION_REQUESTED" ,
"fullCode" : "CANCELLATION_REQUESTED" ,
"orderId" : "ord_456" ,
"createdAt" : "2024-04-25T18:05:00Z" ,
"metadata" : {
"id" : "ord_456" ,
"reason" : "503" ,
"reasonDescription" : "Artículo no disponible"
}
} Próximas acciones: Esperar confirmación (CANCELLED) o rechazo (CANCELLATION_REQUEST_FAILED)
CANCELLATION_REQUEST_FAILED Código: CANCELLATION_REQUEST_FAILEDSistema rechazó su intento de cancelamiento.
{
"id" : "evt_130" ,
"code" : "CANCELLATION_REQUEST_FAILED" ,
"fullCode" : "CANCELLATION_REQUEST_FAILED" ,
"orderId" : "ord_456" ,
"createdAt" : "2024-04-25T18:05:30Z" ,
"metadata" : {
"id" : "ord_456" ,
"reason" : "Pedido ya estaba en preparación" ,
"attemptedReason" : "503"
}
} Próximas acciones: Investigar por qué cancelamiento fue rechazado Reintentar si es motivo transitorio Contactar soporte si es bloqueo permanente
Entrega — Eventos de rastreo (iFood) Estos eventos ocurren cuando iFood está entregando el pedido: ASSIGN_DRIVER Código: ASSIGN_DRIVERiFood asignó un conductor al pedido.
{
"id" : "evt_131" ,
"code" : "ASSIGN_DRIVER" ,
"fullCode" : "ASSIGN_DRIVER" ,
"orderId" : "ord_456" ,
"createdAt" : "2024-04-25T18:20:00Z" ,
"metadata" : {
"id" : "ord_456" ,
"driver" : {
"id" : "drv_123" ,
"name" : "Carlos Conductor" ,
"phone" : "+55 11 91111-2222" ,
"vehicle" : "Motocicleta"
},
"deliveryDistance" : 2.5 ,
"estimatedDeliveryTime" : 900
}
} Próximas acciones: Compartir datos de rastreo con cliente Comenzar a llamar /tracking cada 30 segundos si es necesario Ver cómo rastrear
GOING_TO_ORIGIN Código: GOING_TO_ORIGINConductor va a su tienda (recogida).
{
"id" : "evt_132" ,
"code" : "GOING_TO_ORIGIN" ,
"fullCode" : "GOING_TO_ORIGIN" ,
"orderId" : "ord_456" ,
"createdAt" : "2024-04-25T18:20:30Z" ,
"metadata" : {
"id" : "ord_456" ,
"driver" : {
"id" : "drv_123"
},
"estimatedArrivalTime" : 300
}
} Próximas acciones: Preparar pedido para conductor Tener comprobante impreso Validar identificación del conductor
ARRIVED_AT_ORIGIN Código: ARRIVED_AT_ORIGINConductor llegó a su tienda.
{
"id" : "evt_133" ,
"code" : "ARRIVED_AT_ORIGIN" ,
"fullCode" : "ARRIVED_AT_ORIGIN" ,
"orderId" : "ord_456" ,
"createdAt" : "2024-04-25T18:25:00Z" ,
"metadata" : {
"id" : "ord_456" ,
"driver" : {
"id" : "drv_123"
},
"arrivedAt" : "2024-04-25T18:25:00Z"
}
} Próximas acciones: Entregar pedido al conductor Pedir que valide código de recogida (si está habilitado) Ver validación de recogida
COLLECTED Código: COLLECTEDConductor recogió el pedido en su tienda.
{
"id" : "evt_134" ,
"code" : "COLLECTED" ,
"fullCode" : "COLLECTED" ,
"orderId" : "ord_456" ,
"createdAt" : "2024-04-25T18:25:30Z" ,
"metadata" : {
"id" : "ord_456" ,
"driver" : {
"id" : "drv_123"
},
"collectedAt" : "2024-04-25T18:25:30Z"
}
} Próximas acciones:
ARRIVED_AT_DESTINATION Código: ARRIVED_AT_DESTINATIONConductor llegó a la dirección del cliente.
{
"id" : "evt_135" ,
"code" : "ARRIVED_AT_DESTINATION" ,
"fullCode" : "ARRIVED_AT_DESTINATION" ,
"orderId" : "ord_456" ,
"createdAt" : "2024-04-25T18:40:00Z" ,
"metadata" : {
"id" : "ord_456" ,
"driver" : {
"id" : "drv_123"
},
"arrivedAt" : "2024-04-25T18:40:00Z"
}
} Próximas acciones: Ninguna (cliente recibirá del conductor)
DELIVERY_RETURNING_TO_ORIGIN Código: DELIVERY_RETURNING_TO_ORIGINConductor está retornando a tienda (devolución en progreso).
{
"id" : "evt_136" ,
"code" : "DELIVERY_RETURNING_TO_ORIGIN" ,
"fullCode" : "DELIVERY_RETURNING_TO_ORIGIN" ,
"orderId" : "ord_456" ,
"createdAt" : "2024-04-25T18:45:00Z" ,
"metadata" : {
"id" : "ord_456" ,
"driver" : {
"id" : "drv_123"
},
"returningReason" : "Cliente no disponible"
}
} Próximas acciones: Preparar para recibir pedido devuelto Investigar motivo de devolución
DELIVERY_RETURNED_TO_ORIGIN Código: DELIVERY_RETURNED_TO_ORIGINPedido fue devuelto a su tienda.
{
"id" : "evt_137" ,
"code" : "DELIVERY_RETURNED_TO_ORIGIN" ,
"fullCode" : "DELIVERY_RETURNED_TO_ORIGIN" ,
"orderId" : "ord_456" ,
"createdAt" : "2024-04-25T18:50:00Z" ,
"metadata" : {
"id" : "ord_456" ,
"driver" : {
"id" : "drv_123"
},
"returnedAt" : "2024-04-25T18:50:00Z" ,
"reason" : "Cliente no encontrado"
}
} Próximas acciones: Recibir e inspeccionar pedido Contactar cliente para segundo intento entrega Posible disputa de cancelamiento
Modificaciones — Cambios en pedido ORDER_PATCHED Código: ORDER_PATCHEDCliente agregó, removió o modificó artículos después de confirmación. Ejemplo 1: Artículo removido
{
"id" : "evt_142" ,
"code" : "ORDER_PATCHED" ,
"fullCode" : "ORDER_PATCHED" ,
"orderId" : "ord_456" ,
"createdAt" : "2024-04-25T18:08:00Z" ,
"metadata" : {
"id" : "ord_456" ,
"changeType" : "DELETE_ITEMS" ,
"items" : [
{
"id" : "item_789" ,
"name" : "Bebida" ,
"quantity" : 1 ,
"price" : 5.00
}
],
"newTotal" : 20.50 ,
"oldTotal" : 25.50
}
} Ejemplo 2: Artículo agregado
{
"id" : "evt_143" ,
"code" : "ORDER_PATCHED" ,
"fullCode" : "ORDER_PATCHED" ,
"orderId" : "ord_456" ,
"createdAt" : "2024-04-25T18:08:30Z" ,
"metadata" : {
"id" : "ord_456" ,
"changeType" : "ADD_ITEMS" ,
"items" : [
{
"id" : "item_999" ,
"name" : "Postre" ,
"quantity" : 1 ,
"price" : 8.00
}
],
"newTotal" : 28.50 ,
"oldTotal" : 20.50
}
} Ejemplo 3: Cantidad modificada
{
"id" : "evt_144" ,
"code" : "ORDER_PATCHED" ,
"fullCode" : "ORDER_PATCHED" ,
"orderId" : "ord_456" ,
"createdAt" : "2024-04-25T18:09:00Z" ,
"metadata" : {
"id" : "ord_456" ,
"changeType" : "UPDATE_ITEMS" ,
"items" : [
{
"id" : "item_789" ,
"name" : "Hamburguesa" ,
"oldQuantity" : 1 ,
"newQuantity" : 2 ,
"price" : 25.50
}
],
"newTotal" : 51.00 ,
"oldTotal" : 25.50
}
} Próximas acciones: Actualizar comprobante en cocina Actualizar sistema facturación Confirmar lectura vía /acknowledgment Si en preparación: ajustar tiempo estimado
Grupos de entrega — Eventos consolidación DELIVERY_GROUP_ASSIGNED Código: DELIVERY_GROUP_ASSIGNEDSu pedido fue agrupado con otro pedido para entrega conjunta (misma ruta).
{
"id" : "evt_147" ,
"code" : "DELIVERY_GROUP_ASSIGNED" ,
"fullCode" : "DELIVERY_GROUP_ASSIGNED" ,
"orderId" : "ord_456" ,
"createdAt" : "2024-04-25T18:20:00Z" ,
"metadata" : {
"id" : "ord_456" ,
"deliveryGroupId" : "group_789" ,
"groupedOrders" : [ "ord_456" , "ord_457" , "ord_458" ],
"estimatedDeliveryTime" : 1200
}
} Próximas acciones: Actualizar estimativa entrega del cliente Preparar para entrega conjunta