| category | Descrição |
|---|---|
| FOOD | Pedidos de restaurantes realizados pelo aplicativo ou site do iFood. Esses pedidos são, na sua maioria, de DELIVERY, mas também incluem pedidos para retirada (TAKEOUT). |
| FOOD_SELF_SERVICE | Pedidos de restaurantes realizados através de totens de autoatendimento. Pode ser um Totem próprio do restaurante ou Totens multi-lojas em praças de alimentação. |
| GROCERY | Pedidos de supermercados, pet shops, farmácias e iFood Shop. Essa categoria abrange uma ampla gama de produtos, desde alimentos e bebidas até itens de cuidado pessoal e para pets. |
| ANOTAI | Pedidos originados do aplicativo Anota AI |
| orderType | Descrição |
|---|---|
| DELIVERY | Pedidos que devem ser entregues no endereço escolhido pelo cliente. |
| TAKEOUT | Pedidos que o próprio cliente faz a retirada no estabelecimento. Entenda todos os detalhes de um pedido Pra retirar. |
| DINE_IN | Pedidos que serão consumidos no próprio estabelecimento. O cliente faz o pedido e consome a refeição no local. |
| orderTiming | Descrição |
|---|---|
| IMMEDIATE | Pedidos que devem ser preparados imediatamente e enviados o mais breve possível. (as soon as possible) |
| SCHEDULED | Pedidos que não devem ser preparados imediatamente. Deve-se respeitar o horário agendado para a entrega. Entenda todos os detalhes de um pedido agendado nessa seção. |
RECOMENDED_START_PREPARATION para otimizar a sua operação e preparar o pedido no horário recomendado de acordo com a previsão de chegada do entregador.RECOMENDED_START_PREPARATION é gerado pelo iFood somente para pedidos com entrega feita pelos nossos entregadores parceiros e somente para as lojas que habilitaram o Preparo Inteligente. Em todos os outros cenários, deve-se observar o campo preparationStartDateTime que é disponibilizado nos detalhes do pedido. Para mais detalhes sobre o Preparo inteligente, acesse esse material.pickupCode disponível nos detalhes do pedido, seja impresso na nota ou disponível numa tela no sistema. Será possível também visualizar o código através do evento DELIVERY_PICKUP_CODE_REQUESTED que será gerado para o pedido. Isso evita a entrega de pedidos errados à pessoa entregadora e consequentemente ao cliente. O aplicativo poderá realizar a request /validatePickupCode para realizar a validação do código de coleta. A validação do código de coleta está habilitado para todos os pedidos de entrega Ifood ("deliveredBy"="IFOOD"), pedidos de entrega própria ("deliveredBy"="MERCHANT") não há validação de código de coleta."deliveredBy"="IFOOD") a pessoa entregadora faz a confirmação da entrega através de um aplicativo disponibilizado pelo iFood. Quando a entrega do pedido é feita pelo merchant ("deliveredBy"="MERCHANT") o merchant pode compartilhar com seus entregadores um site que permite que eles façam a confirmação da entrega. Para isso a pessoa entregadora deve acessar https://confirmacao-entrega-propria.ifood.com.br/ e informar o código localizador do pedido. O localizador pode ser encontrado no campo phone.localizer e deve ser impresso na comanda que acompanha o pedido para facilitar a digitação por parte do entregador. O aplicativo poderá também realizar a request /verifyDeliveryCode para realizar a validação do código de entrega. Nos casos de pedidos Para Retirada pelo cliente, também é possível utilizar o mesmo processo de validação de Confirmação de Entrega.| Campo | Descrição |
|---|---|
| latitude | Latitude do entregador no momento da consulta. Pode ser null quando ainda não recebemos a posição do entregador. |
| longitude | Longitude do entregador no momento da consulta. Pode ser null quando ainda não recebemos a posição do entregador. |
| expectedDelivery | Data/hora estimada para entrega do pedido. Pode ser null quando ainda não recebemos a posição do entregador. |
| pickupEtaStart | Tempo estimado em segundos até a origem (coleta do pedido). Pode ser 0 ou null quando o entregador chega ao local de coleta ou negativo quando a coleta está atrasada. |
| deliveryEtaEnd | Tempo estimado em segundos para entrega do pedido. Pode ser 0 ou null quando o entregador chega ao local de entrega. |
| trackDate | Data/hora da consulta. Pode ser null quando ainda não recebemos a posição do entregador. |
DELIVERY_GROUP_ASSIGNED.Eventualmente um entregador parceiro pode ter algum problema para realizar a entrega de pedidos agrupados. Quando isso acontecer a API disponibilizará um evento de DELIVERY_GROUP_DISMISSED.A partir do dia 12 de setembro de 2025, será realizada a migração dos eventos e passarão a seguir o novo comportamento descrito abaixo:Quando um pedido for associado um grupo de entrega, ou seja, a uma rota com múltiplos pedidos, será publicado o seguinte evento: DELIVERY_GROUP_ASSOCIATED. O metadata do evento traz a lista completa de orderIds agrupados. Quando um pedido for desassociado de um grupo de entrega, será publicado o seguinte evento: DELIVERY_GROUP_DISSOCIATED. Quando houver uma alteração no grupo de entrega (associando e desassociando um pedido ao grupo de entrega), será emitido o evento DELIVERY_GROUP_UPDATED apenas para os pedidos que já faziam parte do grupo e permanecem no grupo após a alteração. Os pedidos que estão sendo adicionados ao grupo receberão DELIVERY_GROUP_ASSOCIATED, e os pedidos que estão sendo removidos receberão DELIVERY_GROUP_DISSOCIATED.DELIVERY_GROUP_ASSOCIATED, DELIVERY_GROUP_DISSOCIATED e DELIVERY_GROUP_UPDATED serão publicados no dia 12 de setembro de 2025 e vão substituir os eventos anteriores.Os eventos DELIVERY_GROUP_ASSIGNED e DELIVERY_GROUP_DISMISSED serão descontinuados no dia 13 de outubro de 2025.| Código | Motivo |
|---|---|
| 501 | PROBLEMAS DE SISTEMA |
| 502 | PEDIDO EM DUPLICIDADE |
| 503 | ITEM INDISPONÍVEL |
| 504 | RESTAURANTE SEM MOTOBOY |
| 505 | CARDÁPIO DESATUALIZADO |
| 506 | PEDIDO FORA DA ÁREA DE ENTREGA |
| 507 | CLIENTE GOLPISTA / TROTE |
| 508 | FORA DO HORÁRIO DO DELIVERY |
| 509 | DIFICULDADES INTERNAS DO RESTAURANTE |
| 511 | ÁREA DE RISCO |
| 512 | RESTAURANTE ABRIRÁ MAIS TARDE |
| HTTP Status | Descrição |
|---|---|
| 400 Bad Request | Parâmetro inválido enviado na requisição. |
{
"code": "InvalidParameter",
"message": "A descrição detalhada do erro será exibida aqui."
}| HTTP Status | Descrição |
|---|---|
| 400 Bad Request | O prazo para cancelamento foi excedido. |
{
"code": "OrderExceededCancellationDeadline",
"message": "Order has exceeded the time to be cancelled."
}| HTTP Status | Descrição |
|---|---|
| 400 Bad Request | Já existe um cancelamento em andamento para o pedido. |
{
"code": "OrderHasACancellationInProgress",
"message": "Order {orderId} has a cancellation in progress. Please try again later."
}| HTTP Status | Descrição |
|---|---|
| 404 Not Found | O pedido solicitado não foi encontrado. |
{
"code": "OrderNotFound",
"message": "The requested order does not seem to exist."
}| HTTP Status | Descrição |
|---|---|
| 204 No Content | Nenhuma política foi encontrada. |
| HTTP Status | Descrição |
|---|---|
| 400 Bad Request | O pedido já foi cancelado antes. |
{
"code": "400 BAD_REQUEST",
"message": "Order {} is already cancelled."
}ORDER_PATCHED através do endpoint de polling, indicando que houve alguma alteração nesse pedido.Um pedido poderá ser cancelado parcialmente nos seguintes cenários:ORDER_PATCHED:"changeType": "ADD_ITEMS""changeType": "REPLACE_ITEMS"DELIVERY_RETURNING_TO_ORIGINDELIVERY_RETURN_CODE_REQUESTEDDELIVERY_RETURNED_TO_ORIGINDELIVERY_RETURN_CODE_REQUESTED for recebido. O entregador precisa deste código para completar a devolução.
Se a loja utiliza o App Separador (Picking iFood), o código de devolução aparecerá diretamente no appComo habilitar a Rota de devoluçãoA loja deverá entrar em contato com o suporte via Portal do Parceiro para obter mais detalhes de como habilitar esta funcionalidade.