Buscar na documentação
ctrl+4K
Módulos
Authentication
Merchant
Catalog
Order
Events
Logistics
Shipping
Review
Financial
Soluções

Pedidos para retirar (Takeout)

Permita retirada em balcão, drive-thru ou vaga especial ao invés de delivery para otimizar logística e melhorar experiência do cliente.
Takeout é quando o cliente retira o pedido no seu estabelecimento ao invés de delivery. Funciona com:
  • Balcão: Cliente vem buscar no mostrador (mode = "DEFAULT")
  • Drive-thru: Cliente retira sem sair do carro
  • Vaga especial: Cliente estaciona em local específico (mode = "PICKUP_AREA")
Não use /dispatch para takeout. Use /readyToPickup quando o pedido estiver pronto.
Verifique orderType na estrutura do pedido:
{
  "orderType": "TAKEOUT",
  "takeout": {
    "mode": "DEFAULT",
    "takeoutDateTime": "2024-04-25T18:30:00Z"
  }
}
CampoSignificado
orderType = "TAKEOUT"Cliente retira (não entrega)
mode = "DEFAULT"Retirada no balcão
mode = "PICKUP_AREA"Vaga reservada ou drive-thru
takeoutDateTimeHorário estimado de retirada
Confirme em 8 minutos. Veja prazo de confirmação.
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"
Resposta: 202 Accepted
Verifique orderTiming para saber quando preparar:
{
  "orderTiming": "IMMEDIATE"  // ou "SCHEDULED"
}
IMMEDIATE: Prepare assim que confirmar (para retirada próxima)SCHEDULED: Respeite takeoutDateTime — não comece antes. Saiba mais sobre pedidos agendados
Quando terminar a preparação:
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"
Resposta: 202 AcceptedSistema notifica cliente que pedido está pronto via push/SMS.
Se mode = "PICKUP_AREA", você receberá evento:
{
  "code": "PICKUP_AREA_ASSIGNED",
  "metadata": {
    "pickupAreaCode": "A5",
    "pickupAreaDescription": "Vaga reservada próxima à entrada"
  }
}
Ações:
  • Imprima/exiba a vaga no recibo
  • Comunique ao cliente qual vaga retirar
  • Coloque sinalização clara na vaga
AçãoPrazo
Recebe CONFIRMEDImediatamente
Confirmar8 minutos máximo
PrepararAssim que confirmar
Notificar prontoQuando terminar preparo
Cliente retiraSem limite (após notificado)
Se não confirmar em 8 minutos, iFood cancela automaticamente mesmo que seja takeout.
Para pedidos agendados, respeite o horário do cliente:
{
  "orderTiming": "SCHEDULED",
  "takeout": {
    "takeoutDateTime": "2024-04-25T19:30:00Z"
  },
  "scheduled": {
    "preparationStartDateTime": "2024-04-25T19:15:00Z"
  }
}
Regra: Notifique /readyToPickup próximo ao takeoutDateTime, não antes.
Inclua na comanda:
═════════════════════════
    PEDIDO PARA RETIRAR
═════════════════════════

ID: #12345
Cliente: João Silva

[ITENS]
- Hamburguesa x1
- Refrigerante x1
- Batata Frita x1

Retirada: 18:30
Vaga: A5 (se aplicável)

═════════════════════════
Imprimir em: HH:MM
Pronto em: HH:MM
═════════════════════════
Mapeie para seu POS:
Estado iFoodSeu POSAção
PLACEDAguardando confirmaçãoMostrar na tela
CONFIRMEDEm preparaçãoEnviar para cozinha
READY_TO_PICKUPProntoAvisar balcão
DISPATCHEDRetiradoMarcar como concluído
CONCLUDEDFinalizadoArquivar
Para category = "FOOD_SELF_SERVICE" (quiosques, totens):TAKEOUT: Cliente leva o pedido
{
  "category": "FOOD_SELF_SERVICE",
  "orderType": "TAKEOUT"
}
→ Embale para levarDINE_IN: Cliente consome no local
{
  "category": "FOOD_SELF_SERVICE",
  "orderType": "DINE_IN"
}
→ Prepare no local de consumoAmbos seguem o mesmo fluxo de confirmação e readyToPickup.
Cliente quer cancelar retirada?
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"
  }'
Você receberá evento CANCELLED confirmando:
{
  "code": "CANCELLED",
  "metadata": {
    "reason": "504",
    "cancelReason": "Cancelled by customer"
  }
}
18:00 → Cliente pede no app
18:01 → Você recebe CONFIRMED
18:02 → Confirma pedido
18:03 → Comanda imprime na cozinha
18:10 → Preparo termina
18:11 → Notifica /readyToPickup
18:12 → Cliente recebe push "seu pedido está pronto"
18:15 → Cliente vem ao balcão retirar
16:00 → Cliente agenda para 19:00
16:01 → Você recebe CONFIRMED + PICKUP_AREA_ASSIGNED (vaga D2)
16:02 → Confirma pedido
18:55 → Sistema avisa: começar preparo para 19:00
18:55 → Comanda imprime
19:10 → Preparo termina
19:15 → Notifica /readyToPickup (15 min antes para estar pronto)
19:00 → Cliente chega na vaga D2 e retira
17:30 → Cliente compra no totem para retirar
17:31 → CONFIRMED chega automaticamente
17:32 → Confirma
17:33 → Sistema manda para área de montagem
17:40 → Cliente retira direto da bandeja no totem
  • Testar com orderType = "TAKEOUT" vs "DELIVERY"
  • Validar que não chama /dispatch (usar /readyToPickup)
  • Testar vagas (PICKUP_AREA_ASSIGNED)
  • Testar IMMEDIATE vs SCHEDULED
  • Validar fluxo de cancelamento
  • Testar com FOOD_SELF_SERVICE se aplicável
  • Verificar notificações push chegam no cliente
Acesse o painel da loja e habilite "Para Retirar"
Esta página foi útil?
Avalie sua experiência no novo Developer portal: