Buscar en la documentación
ctrl+4K
Módulos
Authentication
Merchant
Catalog
Order
Events
Logistics
Shipping
Review
Financial
Soluciones

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.
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 auto
  • Espacio especial: Cliente estaciona en área designada (mode = "PICKUP_AREA")
Diferencia crítica: No use /dispatch para takeout. Use /readyToPickup cuando esté listo.
Verifique orderType en estructura del pedido:
{
  "orderType": "TAKEOUT",
  "takeout": {
    "mode": "DEFAULT",
    "takeoutDateTime": "2024-04-25T18:30:00Z"
  }
}
CampoSignificado
orderType = "TAKEOUT"Cliente retira (sin entrega)
mode = "DEFAULT"Retiro en mostrador
mode = "PICKUP_AREA"Espacio reservado o drive-thru
takeoutDateTimeHorario estimado de retiro
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
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
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.
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
AcciónPlazo
Recibe CONFIRMEDInmediatamente
Confirmar8 minutos máximo
PrepararDespués de confirmar
Notificar listoCuando termine
Cliente retiraSin límite (después notificado)
Si no confirma en 8 minutos, iFood cancela automáticamente incluso para takeout.
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.
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
═════════════════════════
Estado iFoodSu POSAcción
PLACEDEsperando confirmaciónMostrar en pantalla
CONFIRMEDPreparandoEnviar a cocina
READY_TO_PICKUPListoAvisar mostrador
DISPATCHEDRetiradoMarcar hecho
CONCLUDEDFinalizadoArchivar
Para category = "FOOD_SELF_SERVICE" (quioscos, totems):TAKEOUT: Cliente lleva pedido
{
  "category": "FOOD_SELF_SERVICE",
  "orderType": "TAKEOUT"
}
→ Empacar para llevarDINE_IN: Cliente consume en sitio
{
  "category": "FOOD_SELF_SERVICE",
  "orderType": "DINE_IN"
}
→ Preparar para consumo en sitioAmbos siguen mismo flujo de confirmación y readyToPickup.
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"
  }
}
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
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
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
  • Pruebe orderType = "TAKEOUT" vs "DELIVERY"
  • Verifique llamada a /readyToPickup no /dispatch
  • Pruebe espacios (PICKUP_AREA_ASSIGNED)
  • Pruebe IMMEDIATE vs SCHEDULED
  • Verifique flujo cancelamiento
  • Pruebe con FOOD_SELF_SERVICE si aplica
  • Verifique cliente recibe notificaciones push
Acceda panel de tienda y habilite "Para Retirar"
  1. Pedidos programadosDetalles de timing
  2. Otros modosEntrega | Consumo en sitio
  3. Referencia APIEndpoints disponibles
  4. Estructura completaCampos del pedido
¿Esta página fue útil?
Evalúa tu experiencia en el nuevo portal de desarrolladores: