Para retirar (Takeout) Permita retiro en mostrador, drive-thru o espacio especial en lugar de entrega para optimizar logística y mejorar experiencia del cliente.
Qué es takeout Takeout es cuando el cliente retira su pedido en su establecimiento en lugar de entrega. Funciona con: Mostrador: Cliente retira en mostrador (mode = "DEFAULT")Drive-thru: Cliente retira sin bajar del autoEspacio especial: Cliente estaciona en área designada (mode = "PICKUP_AREA")Diferencia crítica: No use /dispatch para takeout. Use /readyToPickup cuando esté listo.
Identificar takeout Verifique orderType en estructura del pedido:
{
"orderType" : "TAKEOUT" ,
"takeout" : {
"mode" : "DEFAULT" ,
"takeoutDateTime" : "2024-04-25T18:30:00Z"
}
} Campo Significado orderType = "TAKEOUT"Cliente retira (sin entrega) mode = "DEFAULT"Retiro en mostrador mode = "PICKUP_AREA"Espacio reservado o drive-thru takeoutDateTimeHorario estimado de retiro
Flujo completo 1. Recibir y confirmar Confirme en 8 minutos. Vea plazo de confirmación .
curl -X POST "https://merchant-api.ifood.com.br/order/v1.0/orders/{id}/confirm" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" Respuesta: 202 Accepted
2. Preparar por timing Verifique orderTiming para saber cuándo preparar:
{
"orderTiming" : "IMMEDIATE" // o "SCHEDULED"
} IMMEDIATE: Prepare inmediatamente después de confirmar (para retiro pronto)SCHEDULED: Respete takeoutDateTime — no comience antes. Aprenda más sobre pedidos programados
3. Notificar listo Cuando termine la preparación:
curl -X POST "https://merchant-api.ifood.com.br/order/v1.0/orders/{id}/readyToPickup" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" Respuesta: 202 AcceptedSistema notifica al cliente que pedido está listo vía push/SMS.
4. Gestionar espacios (PICKUP_AREA solo) Si mode = "PICKUP_AREA", recibirá evento:
{
"code" : "PICKUP_AREA_ASSIGNED" ,
"metadata" : {
"pickupAreaCode" : "A5" ,
"pickupAreaDescription" : "Espacio reservado cerca entrada"
}
} Acciones: Imprima/muestre número de espacio en comprobante Comunique al cliente cuál espacio usar Coloque señalización clara en espacio
Timing y plazos Acción Plazo Recibe CONFIRMED Inmediatamente Confirmar 8 minutos máximo Preparar Después de confirmar Notificar listo Cuando termine Cliente retira Sin límite (después notificado)
Si no confirma en 8 minutos, iFood cancela automáticamente incluso para takeout.
Para SCHEDULED Para pedidos programados, respete hora del cliente:
{
"orderTiming" : "SCHEDULED" ,
"takeout" : {
"takeoutDateTime" : "2024-04-25T19:30:00Z"
},
"scheduled" : {
"preparationStartDateTime" : "2024-04-25T19:15:00Z"
}
} Regla: Llame /readyToPickup cerca de takeoutDateTime, no antes.
Integración con POS/Sistema Imprimir comprobante Incluya en comprobante:
═════════════════════════
PEDIDO PARA RETIRAR
═════════════════════════
ID: #12345
Cliente: Juan Silva
[ARTÍCULOS]
- Hamburguesa x1
- Bebida x1
- Papas x1
Retiro: 18:30
Espacio: A5 (si aplica)
═════════════════════════
Impreso en: HH:MM
Listo en: HH:MM
═════════════════════════ Mapear estados a su POS Estado iFood Su POS Acción PLACED Esperando confirmación Mostrar en pantalla CONFIRMED Preparando Enviar a cocina READY_TO_PICKUP Listo Avisar mostrador DISPATCHED Retirado Marcar hecho CONCLUDED Finalizado Archivar
Self-service (Totem/Quiosco) Para category = "FOOD_SELF_SERVICE" (quioscos, totems): TAKEOUT: Cliente lleva pedido
{
"category" : "FOOD_SELF_SERVICE" ,
"orderType" : "TAKEOUT"
} → Empacar para llevar DINE_IN: Cliente consume en sitio
{
"category" : "FOOD_SELF_SERVICE" ,
"orderType" : "DINE_IN"
} → Preparar para consumo en sitio Ambos siguen mismo flujo de confirmación y readyToPickup.
Cancelamiento Cliente quiere cancelar retiro?
curl -X POST "https://merchant-api.ifood.com.br/order/v1.0/orders/{id}/requestCancellation" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"reason": "504"
}' Recibirá evento CANCELLED confirmando:
{
"code" : "CANCELLED" ,
"metadata" : {
"reason" : "504" ,
"cancelReason" : "Cancelado por cliente"
}
}
Escenarios comunes
18:00 → Cliente pide en app
18:01 → Usted recibe CONFIRMED
18:02 → Confirma pedido
18:03 → Comprobante imprime en cocina
18:10 → Preparación lista
18:11 → Notifica /readyToPickup
18:12 → Cliente recibe push "su pedido está listo"
18:15 → Cliente llega al mostrador y retira Escenario 2: Takeout SCHEDULED en drive-thru
16:00 → Cliente programa para 19:00
16:01 → Usted recibe CONFIRMED + PICKUP_AREA_ASSIGNED (espacio D2)
16:02 → Confirma pedido
18:55 → Sistema alerta: comenzar prep para 19:00
18:55 → Comprobante imprime
19:10 → Preparación lista
19:15 → Notifica /readyToPickup (15 min antes para estar listo)
19:00 → Cliente llega espacio D2 y retira Escenario 3: Totem self-service
17:30 → Cliente compra en totem para retirar
17:31 → CONFIRMED llega automáticamente
17:32 → Confirma
17:33 → Sistema envía a área de montaje
17:40 → Cliente retira directo de bandeja en totem
Validación y pruebas Antes de ir en vivo Habilitar en producción Acceda panel de tienda y habilite "Para Retirar"
Anterior Eventos de pedido
Siguiente Pedidos programados
¿Esta página fue útil? Sí No
Evalúa tu experiencia en el nuevo portal de desarrolladores: Evaluar ahora