A integração de pedidos é um dos fluxos mais sensíveis da jornada de um usuário dentro da plataforma iFood. Se a loja não for capaz de receber e confirmar os pedidos, os pedidos são cancelados e isso gera uma experiência ruim para os usuários da plataforma.
Por esse motivo é importante que todos os aplicativos que utilizam o módulo de pedidos da API atendam requisitos mínimos para garantirmos uma boa experiência para os nossos clientes e parceiros.
Critérios para Homologação
O aplicativo deve ser capaz de:
- Receber eventos de pedidos via polling ou via webhook.
- No caso do polling:
- Fazer requests no endpoint de /polling regularmente a cada 30 segundos para não perder nenhum pedido. Isso garante que o merchant fique aberto na plataforma; Utilize o header
x-polling-merchants
sempre que precisar filtrar eventos de um ou mais merchants. Também é possível filtrar os eventos que deseja receber por tipo e por grupo; - Enviar /acknowledgment para todos os eventos recebidos (com status code 200) imediatamente após a request de polling;
- No caso do webhook: responder com sucesso às requests do webhook, verificado por nossa auditoria interna;
- Receber, confirmar e despachar um pedido delivery para agora (orderType = DELIVERY / orderTiming = IMMEDIATE);
- Receber, confirmar e despachar um pedido delivery agendado (orderType = DELIVERY / orderTiming = SCHEDULED). É necessário exibir a data e hora do agendamento;
- Receber e cancelar um pedido delivery para agora (orderType = DELIVERY / orderTiming = IMMEDIATE). Antes de solicitar um cancelamento é obrigatório a consulta dos códigos/motivos disponíveis para o momento do pedido através do endpoint /cancellationReasons, esta lista de códigos/motivos deverá ser disponibilizada no sistema de PDV, para o usuário do PDV escolher qual motivo usar;
- Receber, confirmar e avisar que está pronto um pedido Pra Retirar (orderType = TAKEOUT);
- Receber pedidos com pagamento em cartão e exibir detalhes do tipo de pagamento, como bandeira;
- Receber pedidos com pagamento em dinheiro e exibir o valor do troco na tela e/ou comanda impressa;
- Receber pedidos com todos os cupons de desconto e exibir o valor e o responsável pelo subsídio (iFood / Loja);
- Exibir observações dos itens na tela e/ou comanda impressa (Ex: Retirar cebola);
- Atualizar o status de um pedido cancelado pelo cliente ou pelo iFood;
- Atualizar o status de um pedido que pode ter sido confirmado/cancelado por outro aplicativo como por exemplo o Gestor de Pedidos;
- Receber um mesmo evento mais de uma vez no polling e descartá-lo caso esse evento tenha sido entregue mais de uma vez;
- Informar o CPF/CNPJ na tela caso seja obrigatório pela loja ou já preencher no documento fiscal automaticamente;
- Receber eventos da Plataforma de Negociação de Pedidos e ser capaz de processá-los através dos endpoints disponíveis;
- Exibir na tela e/ou impresso na comanda o código de coleta do pedido;
Requisitos não funcionais:
- Renovar o token somente quando estiver prestes a expirar ou imediatamente após a expiração.
- O aplicativo deve respeitar as políticas de rate limit de cada endpoint.
Desejável:
- A comanda impressa seguir o modelo sugerido na documentação é um requisito desejável.
- Informar na tela e/ou comanda impressa a informação de indicar qualquer observação sobre a entrega do pedido (que vem no campo delivery.observations)
Dica
Para validar se seu aplicativo é capaz de atualizar o status de pedidos com as alterações feitas por outro aplicativo, você pode confirmar e cancelar pedidos de teste usando o Gestor de Pedidos Web e acompanhar o status desses pedidos no seu aplicativo.
Como Agendar
Para agendar a homologação do seu aplicativo acesse a área de chamados e abra uma requisição para homologação do seu aplicativo. Nossa equipe entrará em contato com você para agendar o processo.
Nova Tentativa
Antes de agendar a homologação do seu aplicativo certifique-se de que ele atende todos os requisitos listados acima. É preciso aguardar 15 dias para uma nova tentativa.
Preparação
Antes de iniciar, tenha em mãos os dados da sua loja de teste, como id e nome da loja.
Certifique-se de ter acesso a um serviço de internet estável
Duração
No horário agendado, um analista do nosso time fará o acesso remoto para acompanhar cada etapa dos testes. O processo dura em média 45 minutos.
Reagendamento
Caso seu aplicativo não seja homologado, nosso time registrará no ticket os requisitos que não foram atendidos e você deverá ajustar seu software. Você poderá agendar uma nova homologação 15 dias depois da tentativa anterior.