Use esta documentação para solicitar entregadores iFood para pedidos que já existem na plataforma com orderId. Este fluxo é ideal para usar logística iFood como backup ou para expandir sua capacidade de entrega.
Como funciona
O fluxo consiste em três etapas:
Verificar disponibilidade - Confirme que a entrega está disponível para o endereço
Solicitar entregador - Aloque um entregador iFood para o pedido
Cancelar (opcional) - Cancele a solicitação antes do aceite do entregador
1. Verificar disponibilidade
Antes de solicitar um entregador, verifique se a entrega está disponível para o pedido. Este endpoint retorna a cotação com preço e tempo estimado.
Endpoint
GET /shipping/v1.0/orders/{orderId}/deliveryAvailabilities
{"code": "DeliveryDistanceTooHigh","message": "Sob Demanda indisponível: o endereço da entrega está a mais de 10 km da sua loja.","details": ["Delivery distance too high"]}
Erro 500 Internal Server Error
Erro temporário no servidor. Implemente retry automático com backoff exponencial. Após 3-5 tentativas, registre em log e notifique o suporte.
{"code": "InternalServerError","message": "Ops. Houve uma falha. Tente novamente em alguns instantes.","details": ["Internal server error"]}
2. Solicitar entregador
Com a cotação obtida, solicite a alocação de um entregador iFood. Este é uma operação assíncrona que retorna 202 Accepted imediatamente e aloca o entregador em background.
Operação assíncrona: A resposta 202 Accepted indica apenas que a requisição foi recebida. Monitore os eventos para saber o resultado final (sucesso ou falha).
Endpoint
POST /shipping/v1.0/orders/{orderId}/requestDriver
Parâmetros
Parâmetro
Localização
Tipo
Obrigatório
Descrição
orderId
path
uuid
Sim
ID do pedido existente na plataforma
quoteId
body
uuid
Sim
ID da cotação obtida na etapa anterior (válida por ~24h)
Requisição inválida. Verifique se o orderId é um UUID válido.
{"code": "BadRequest","message": "Houve um problema ao solicitar o cancelamento. Verifique as informações enviadas.","details": ["Campo 'OrderID' deve estar no formato uuid."]}
Erro 500 Internal Server Error
Erro temporário no servidor. Implemente retry automático com backoff exponencial. Após 3-5 tentativas, registre em log e notifique o suporte.
{"code": "InternalServerError","message": "Ops. Houve uma falha. Tente novamente em alguns instantes.","details": ["Internal server error"]}