Antes de falar um pouco mais sobre o ciclo de vida de um pedido na plataforma, é importante esclarecer alguns conceitos importantes como o tipo e um momento do pedido, pois o fluxo de recepção e entrega do pedido deve variar de acordo com o tipo e o momento.
Definições
Categorias de pedidos
A API de Order do Ifood suporta diferentes categorias de pedidos, cada uma com características e ciclos de vida específicos. Abaixo, você encontrará uma descrição das categorias disponíveis:
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.
Existem diferentes tipos de pedidos e cada um deles exige um comportamento diferente. Isso requer tratamentos específicos no aplicativo e na operação do negócio.
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.
Momento do pedido
Nem todos os pedidos devem ser preparados e enviados imediatamente. Em alguns casos o cliente pode agendar uma data ou horário de entrega.
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.
Ciclo de vida do pedido
A API é orientada a eventos, sendo assim, um pedido pode ter vários eventos vinculados a ele. Segue um diagrama com os possíveis status de um pedido.
Category: FOOD
Category: FOOD_SELF_SERVICE
Category: ANOTAI
Category: GROCERY
Além desses status, existem vários outros eventos vinculados a um pedido que não afetam o status dele. Nessa seção você tem mais detalhes de todos esses eventos possíveis.
Antes de confirmar ou cancelar um pedido, é necessário obter os detalhes do mesmo para que o usuário do seu aplicativo possa verificar se conseguirá preparar e entregar esse pedido, como por exemplo verificar se tem todos os itens necessários e se tem disponibilidade para efetuar a entrega no endereço informado.Através do endpoint GET /orders/{id} você pode obter todos os detalhes de um pedido.Esse endpoint retorna o código 200 e o conteúdo do pedido. Caso seja informado um id inválido na request, pedido ainda não está disponível ou o id de um pedido antigo o endpoint retorna 404.
Pedido ainda não disponível
Em alguns casos pode acontecer do detalhe do pedido ainda não estar disponível quando o evento PLACED é recebido. Isso acontece porque o sistema de eventos e o sistema de detalhe de pedido funcionam em paralelo, sendo possível que o evento de PLACED seja entregue antes do detalhe de pedido estar disponível. Para mitigar esse problema, recomendamos a implementação de um mecanismo de retry para obter os detalhes do pedido. Se um retorno 404 for recebido, o sistema deve tentar novamente após um intervalo, utilizando uma estratégia de retry como exponential backoff, por até 10 minutos. Não faça retentativas infinitas, para evitar que seu aplicativo seja bloqueado.
Pedidos antigos
A API mantém os detalhes dos pedidos por apenas 7 dias a partir da data do pedido. Caso seja consultado um pedido com mais de 7 dias ele não será encontrado. Cuidado para não consultar repetidamente pedidos antigos para evitar ser bloqueado temporariamente devido ao rate limit.
Nessa seção você encontrará todos os detalhes do payload de um pedido:
É obrigatório consultar detalhes do pedido
Não é permitido confirmar um pedido sem antes consultar os detalhes do mesmo. Se o aplicativo tentar confirmar um pedido sem ter obtido os detalhes, a requisição de confirmação pode retornar 202 mas depois será descartada internamente.
Obter detalhes do pedido Groceries
Através do endpoint GET /orders/{id}/virtual-bag você pode obter todos os detalhes de um pedido Groceries.Esse endpoint retorna o código 200 e o conteúdo do pedido. Caso seja informado um id inválido na request o endpoint retorna 404.
Pedidos antigos
A API mantém os detalhes de pedidos por apenas 14 dias a partir da data do pedido. Caso seja consultado um pedido com mais de 14 dias ele não será encontrado. Cuidado para não consultar repetidamente pedidos antigos para evitar ser bloqueado temporariamente devido ao rate limit.
Nessa seção você encontrará todos os detalhes do payload de um pedido:
Após obter os detalhes do pedido, o usuário do aplicativo deve tomar uma decisão: confirmar ou cancelar esse pedido. Para confirmar um pedido você deve utilizar o endpoint: POST /confirmEm caso de sucesso na solicitação, você receberá o código de resposta 202 (accepted). O processamento dessa requisição é assíncrono e o resultado será retornado no próximo polling. É possível que uma request de confirmação seja descartada por alguns motivos, dentre eles, por exemplo, se o pedido já havia sido cancelado anteriormente.
Prazo para confirmação
Existe um tempo máximo para confirmação dos pedidos. Caso ultrapasse esse período, o pedido é cancelado automaticamente.Limites
Pedidos IMMEDIATE: até 8 minutos após a data do pedido (createdAt)
Pedidos SCHEDULED: até 8 minutos após o horário de início do preparo (preparationStartDateTime)
Penalidades
A loja pode ser fechada temporariamente se não confirmar pedidos dentro do prazo.
Imprimir pedido
Veja o template de comanda para imprimir o pedido nessa seção.
Início de preparo
Para informar o início de preparo do pedido, você deve utilizar a requisição /startPreparation.Esse evento deve ser gerado somente depois da confirmação e antes de despachar o pedido. Caso a requisição seja feita antes ou depois, ela será ignorada.Essa requisição é opcional mas o seu uso é recomendado para oferecer uma melhor experiência para o usuário, principalmente nos casos de pedidos agendados e quando você utiliza o evento 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.
Preparo inteligente
O evento 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.
Pedido pronto
Pedidos que não são entregues no endereço do cliente, como "Pra Retirar" não devem ser despachados. Nesse caso, o aplicativo deve enviar a request /readyToPickup para notificar o cliente que o pedido está pronto e pode ser retirado.Para pedidos "delivery", é possível enviar o /readyToPickup mas o cliente não recebe nenhuma notificação no aplicativo. Para esses casos, quando a entrega é feita por entregadores parceiros iFood, o entregador pode receber a notificação de que o pedido está pronto para ser retirado. Ainda assim, quando o pedido sair para a entrega, é preciso enviar a request /dispatch que gera uma notificação para o usuário informando que o pedido dele saiu para entrega. Quando a entrega é feita pelos entregadores parceiros do iFood não é preciso enviar essa request, pois ela é gerada automaticamente quando o pedido é coletado pelo entregador parceiro.
Confirmação de coleta
Quando habilitada a validação do código de coleta, a pessoa entregadora precisará informar ao merchant um código de verificação. O operador do merchant deve então comparar o código informado com o código que ele tem acesso via o atributo 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.
Confirmação de entrega
Quando a entrega do pedido é feita por uma pessoa entregadora parceira do iFood ("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.
Concluir pedido
Não é possível concluir um pedido através da API. O evento de CONCLUDED é gerado somente pelo próprio iFood.
Quando o iFood conclui o pedido?RESTAURANT, PHARMACY, PET
Pedidos Imediatos:
Entrega iFood (Fullservice): No momento da entrega do pedido ou 6 hrs + deliveryTimeInSeconds após o CONFIRMED
Entrega Merchant (Marketplace): 4 hrs + deliveryTimeInSeconds após o CONFIRMED
Pedidos Agendados:
Entrega iFood (Fullservice): No momento da entrega do pedido ou IDP: 6 hrs + deliveryTimeInSeconds após o scheduling.to
Entrega Merchant (Marketplace): 4 hrs + deliveryTimeInSeconds após o scheduling.to
MARKET, HIPERMARKET
Pedidos Imediatos:
13 hrs + deliveryTimeInSeconds após o CONFIRMED
Pedidos Agendados:
13 hrs + deliveryTimeInSeconds após o scheduling.to
*deliveryTimeInSeconds é uma configuração do merchant
Cancelamento de pedido
Um pedido pode ser cancelado por vários motivos e a iniciativa de cancelar um pedido pode partir da loja, do cliente ou do iFood. Pode acontecer também do Entregador solicitar o cancelamento em alguns cenários, como por exemplo quando não encontra o cliente no endereço de entrega.
As regras de cancelamento podem variar de acordo com o momento do pedido (antes ou depois da confirmação). Neste sentido, para executar a solicitação de cancelamento através do endpoint /requestCancellation é necessário informar um código de cancelamento válido. A lista de códigos de cancelamento válidos para um pedido pode ser obtida através do endpoint /cancellationReasons.Seguem alguns exemplos de código de cancelamento e seus motivos na tabela abaixo:
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
Outros códigos
Existem outros códigos de cancelamento de uso exclusivo do iFood. Por isso é importante que você trate o campo motivo como string no seu aplicativo.
Penalidades
Evite cancelar pedidos! O excesso de cancelamentos pode resultar em algumas penalidades como por exemplo ter a loja fechada temporariamente na plataforma.
Validação do cancelamento
A solicitação de cancelamento não garante que o pedido está cancelado. Ao enviar uma request /requestCancelation , você receberá como resposta o código 202 (accepted). Isso não significa ainda que o pedido foi cancelado. Significa que a requisição foi aceita e será processada pelo serviço de cancelamento. Como resultado dessa solicitação, você poderá receber no próximo polling um dos seguintes eventos:
CANCELLATION_REQUEST_FAILED
CANCELLED
O pedido só é cancelado quando é gerado o evento de CANCELLED..
Respostas
Erro
1 - Pedido inválido
HTTP Status
Descrição
400 Bad Request
Parâmetro inválido enviado na requisição.
Body
{"code": "InvalidParameter","message": "A descrição detalhada do erro será exibida aqui."}
2 - Prazo de cancelamento excedido
HTTP Status
Descrição
400 Bad Request
O prazo para cancelamento foi excedido.
Body
{"code": "OrderExceededCancellationDeadline","message": "Order has exceeded the time to be cancelled."}
3 - Cancelamento em andamento
HTTP Status
Descrição
400 Bad Request
Já existe um cancelamento em andamento para o pedido.
Body
{"code": "OrderHasACancellationInProgress","message": "Order {orderId} has a cancellation in progress. Please try again later."}
4 - Pedido não encontrado
HTTP Status
Descrição
404 Not Found
O pedido solicitado não foi encontrado.
Body
{"code": "OrderNotFound","message": "The requested order does not seem to exist."}
5 - Nenhuma política encontrada
HTTP Status
Descrição
204 No Content
Nenhuma política foi encontrada.
Body(Sem corpo de resposta)6 - Pedido já cancelado
HTTP Status
Descrição
400 Bad Request
O pedido já foi cancelado antes.
Body
{"code": "400 BAD_REQUEST","message": "Order {} is already cancelled."}
Cancelado pelo Cliente
O cliente também pode solicitar o cancelamento de um pedido. Isso só é permitido em alguns momentos como antes da confirmação, durante o preparo e após conclusão.Para certos cenários de solicitação de cancelamento, pode ser oferecida a oportunidade para o parceiro negociar o cancelamento com o cliente. Essa negociação é conduzida por meio da Plataforma de Negociação para Pedidos.
A Plataforma de Negociação para Pedidos é uma ferramenta destinada a facilitar, gerenciar e agilizar negociações entre duas partes, com o propósito de resolver questões relacionadas a PEDIDOS. Ela atua como intermediária e possibilita uma comunicação eficaz entre as partes envolvidas, permitindo a troca de propostas e facilitando a busca por acordos de forma eficaz.Para maiores detalhes:
Existe um terceiro cenário em que a iniciativa do cancelamento pode partir do iFood. Isso pode acontecer de maneira automática (pedidos não confirmados dentro do prazo) ou de maneira manual através do nosso time de atendimento. Nesses casos o evento de cancelamento (CAN) será disponibilizado através do endpoint events:polling. No conteúdo do evento tem as informações do motivo do cancelamento.
Cancelamento parcial de pedido
Caso o cliente tenha algum problema com o seu pedido, como a falta de um item, é possível que ocorra um cancelamento parcial desses itens que não foram entregues. Quando isso acontecer será disponibilizado um evento de 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:
Se o pedido foi entregue incompleto
Se o item estava inapropriado para consumo
Se o item estava errado
Se o item estava revirado
Nesses cenários, podemos ter 2 tipos de ORDER_PATCHED:
Alteração de item (CHANGE_ITEMS)
Quando há alguma alteração na quantidade ou unidade de medida (g, kg, ml, L) de algum item do pedido.
Exclusão de item (DELETE_ITEMS)
Quando um item é removido do pedido. Isso pode acontecer quando o pedido é entregue faltando algum item.
Exemplo: quando a loja esquece de enviar o refrigerante. Nesse cenário, o cliente pode entrar em contato com o time de atendimento do iFood que pode então registrar a exclusão do item.
Tratamento do evento de ORDER_PATCHEDAs alterações podem gerar impactos no faturamento (valores a receber do iFood) e também nos relatórios de vendas/conciliação.O tratamento desse novo evento vai garantir que não haverá divergências tanto na conciliação como nos valores dos repasses a serem recebidos do iFood.
Outros tipos de ORDER_PATCHED
Existem outros tipos de eventos de ORDER_PATCHED que podem ser gerados em outros cenários de ruptura e atualmente só estão disponíveis para mercados:
"changeType": "ADD_ITEMS"
"changeType": "REPLACE_ITEMS"
Plataforma de Negociação
A Plataforma de Negociação para Pedidos é uma ferramenta destinada a facilitar, gerenciar e agilizar negociações entre duas partes, com o propósito de resolver questões relacionadas a PEDIDOS. Ela atua como intermediária e possibilita uma comunicação eficaz entre as partes envolvidas,permitindo a troca de propostas e facilitando a busca por acordos de forma eficaz.
Os detalhes do entregador são entregues através do evento ASSIGN_DRIVER.
Rastreio do pedido
É possível rastrear a entrega do pedido através do endpoint /tracking. Além da posição, retorna também o pickupEtaStart e deliveryEtaEnd. Com essas informações o usuário do seu aplicativo, além de ter mais transparência conseguirá, por exemplo, automatizar o início do preparo do pedido e otimizar sua operação.
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.
O rastreamento só está disponível para pedidos entregues pela logística iFood.
Disponibilidade dos dados e intervalo de consulta
Deve ser utilizado somente depois que o evento ASSIGN_DRIVER é gerado e pode ser consultado de 30 em 30 segundos. O endpoint poderá retornar 404 até que todas as informações sobre a entrega estejam disponíveis. Nesse caso você deve fazer uma nova consulta depois de 30 segundos.Rate Limit
Em caso de mau uso, o aplicativo poderá ser bloqueado pelas políticas de rate limit e throttling.
Solicitar Entregador
Atenção
O serviço de solicitação de entrega deste módulo será descontinuado e está atualmente em processo de migração para o módulo de Shipping. Esta medida tem como objetivo aprimorar e unificar a experiência de integração. mais detalhes na seção
Mesmo que a loja possua entregadores próprios é possível contratar o serviço de entrega de entregadores parceiros do iFood para um pedido específico o que pode ser útil em situações em que ocorra uma sobrecarga ou falta de entregadores próprios.
ElegibilidadeEsse serviço não está disponível para qualquer pedido. O pedido só será elegível quando passar por alguns critérios como:- O merchant está em um modelo de negócio que possibilite essa solicitação (caso o merchant seja fullservice, o pedido já é ~~entregue pela nossa logística e não é possível solicitar um entregador parceiro)~~
- o pedido é delivery (não é possível solicitar nos pedidos Pra Retirar)- a área da entrega é coberta pelos entregadores parceirosQuando o pedido é elegível, a loja receberá após a confirmação do pedido o evento REQUEST_DRIVER_AVAILABILITY com o campo available:true e no campo quote você terá a cotação do valor que será cobrado por esse serviço.
Mais detalhes sobre o quote:
Campo
Descrição
original
valor base do serviço
discount
valor do desconto caso tenha alguma promoção aplicada nesse pedido
final
valor final cobrado pelo serviço (original - discount)
Para solicitar o entregador concordando com a cotação retornada, utilize o seguinte endpoint: /requestDriver
CuidadoEssa ação é irreversível. Depois de solicitar um entregador, não será possível cancelar esse serviço. O custo pelo serviço será cobrado do parceiro nos próximos repasses.
Esse endpoint é assíncrono. Quando sua requisição for processada você receberá um evento REQUEST_DRIVER confirmando que a requisição foi feita e em seguida o resultado da solicitação, que pode ser: REQUEST_DRIVER_SUCCESS ou REQUEST_DRIVER_FAILED.Veja todos os detalhes desses eventos nessa seção.
Cancelamento de Entrega Sob Demanda
Para lojas parceiras que possuem entrega própria e que eventualmente contratam o serviço de Entrega Sob Demanda do iFood, em alguns casos pode ser necessário o cancelamento da solicitação de um entregador iFood. Neste caso, a loja pode cancelar somente a entrega sob demanda sem a necessidade de cancelar o pedido. O cancelamento da entrega sob demanda deve ser realizado através do endpoint POST /orders/{id}/cancelRequestDriver.O cancelamento só será efetuado se ele for solicitado antes do aceite do entregador, neste caso nenhuma taxa será cobrada da loja. Caso seja necessário realizar o cancelamento após do aceite do entregador, deve seguir as regras estabelecidas em Cancelamento de pedido.
O endpoint é assíncrono. Quando sua requisição for processada a loja receberá um evento DELIVERY_CANCELLATION_REQUEST_ACCEPTED, em caso de sucesso, ou DELIVERY_CANCELLATION_REQUEST_REJECTED, em caso de falha. Veja todos os detalhes desses eventos nessa seção.
ImportanteA ação é irreversível. Após cancelar a solicitação de um entregador, não será possível reverter esse serviço.Para que um novo entregador seja solicitado, uma nova solicitação de entregador deve ser realizada.
Agrupamento de entrega
É possível que algumas entregas realizadas por parceiros iFood sejam agrupadas. Isso acontece quando os nossos algoritmos de otimização identificam 2 pedidos com rotas de entrega parecidas ou complementares. Quando isso acontecer a API disponibilizará um evento de 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_CANCELLED.
Testes
Gerar pedidos de teste
Existem duas formas de se gerar pedidos de teste:
Geração automática de pedidos
Simulando uma compra normal pelo aplicativo ou site do iFood
Veja a seguir as principais diferenças entre elas:
Geração Automática
Nesta modalidade, é possível gerar um pedido de teste ao clique de um botão. Este pedido será gerado com informações pré-estabelecidas, tais como: endereço de entrega, itens de catálogo e forma/meio de pagamento padrão.Para geração automática de um pedido de teste , basta seguir o passo a passo informado abaixo:1- Fazer login no Portal do DesenvolvedorFaça login com seu email no Portal do Desenvolvedor.2- Acessar o menu Testes da sua contaLocalize a opção "Testes" clicando sobre seu nome de usuário na parte superior direita ou no menu lateral da esquerda.3- Pressionar o botão "Gerar pedido de teste"Localize o botão "Gerar pedido de teste" no canto superior direito. Ao pressioná-lo, um modal de seleção de loja deverá se abrir.4- Selecionar uma loja de testeSelecione a loja onde deseja gerar o pedido na lista de lojas disponíveis.5- Confirme a geração do pedidoPronto! Seu pedido foi criado com sucesso e agora você poderá consultá-lo pela merchant-api e pelo site/aplicativo do iFood.
Pedido geradoApós a geração do pedido, um modal de sucesso se abrirá contendo nome da loja, ID do pedido e email do usuário de teste utilizado.
Com esses dados, você pode acompanhar e manipular o pedido utilizando os módulos da merchant-api.
Usuário de testeO usuário é o "cliente/consumidor" com o qual vai ser feito o pedido. Com ele você poderá acessar o aplicativo/site do iFood, em modo de teste, para acompanhar o pedido do ponto de vista do cliente.
Se o usuário não existir, o serviço irá buscar uma conta de testes com o email do desenvolvedor cadastrado no Developer Portal. Se esse também não existir, ou já for usado em outra conta, o pedido de teste será feito para o cliente padrão noreply@developer.ifood.com.br.
Neste caso, não será possível acompanhar seus pedidos de teste pelo aplicativo do iFood.
Geração Manual
Para gerar um pedido de teste com informações personalizadas (ex: escolher um item de catálogo, meio/forma de pagamento etc), é preciso simular uma compra normal pelo aplicativo ou site do iFood conforme os passos abaixo:1- Fazer login no site ou aplicativoFaça login no site ou aplicativo do iFood com o seu email de desenvolvedor. No menu "Testes" do portal do desenvolvedor você encontra o email cadastrado na seção "Usuário de Testes".2- Configurar endereço de testeNo topo do site, ou aplicativo clique em "Entregar Em" e pesquise pelo endereço "Ramal Bujari, 100" e depois confirme a localização. No campo bairro informe "Bujari" e clique em "Salvar Endereço".3- Abrir a lojaAs lojas de testes, já vem configurados com o funcionamento de 24 horas por dia todos os dias da semana, mas para que ela fique aberta na plataforma é necessário que seu aplicativo esteja conectado. Portanto, é necessário que você faça requests no endpoint /events:polling regularmente para que ela se mantenha aberta.4- Localizar a loja testeAgora, na barra de pesquisa, digite o nome da sua loja de teste, procure na listagem e selecione-a.
Perfil modo testeAlguns usuários possuem o perfil "Somente Teste" mas alguns outros perfis podem fazer pedidos também em modo de produção. Se esse for o seu caso, e se nenhuma loja de teste aparecer nos resultados de pesquisa, verifique se o modo de teste está habilitado.Para habilitar o "Modo Teste", clique em "Perfil", depois em "Editar Dados" e em seguida clique no ícone para habilitar.Caso não apareça nenhuma loja de teste e você não tem a opção de habilitar o modo teste, abra um chamado para que nosso time de atendimento possa te ajudar.
Verifique se o seu aplicativo está fazendo polling regularmente
Caso a sua loja de teste apareça como fechada, certifique-se de que o seu aplicativo esteja fazendo polling e as outras condições de abertura.
5- Adicionar itensAdicione alguns itens do seu catálogo ao pedido até atingir o valor mínimo do pedido.6- Fechar pedidoEscolha a forma de pagamento e depois clique no botão para finalizar o pedido. Sempre que possível, escolha pagar na entrega e de preferência em dinheiro. Assim você não precisa informar dados de cartão para fazer testes.
Pedido de teste com pagamento em cartão
Caso queira fazer um pedido de teste com cartão de crédito, você pode utilizar os dados abaixo.
CC: 4111 1111 1111 1111
Data: 03/2030
CVV: 737
Pedido de teste com pagamento via PIX ou Débito em Conta
Ao fazer um pedido de teste, não utilizar os meios de pagamento via PIX ou Débito em Conta.
Pronto! Seu pedido foi feito com sucesso! Agora você receberá os eventos desse pedido através da API. Para mais detalhes consulte a seção Utilizando a API.
Cupons de desconto
Para que você possa gerar pedidos de testes com cupons de descontos, disponibilizamos alguns cupons para isso. Para utilizá-los basta inserir um dos códigos abaixo antes de fechar o seu pedido clicando no botão "Adicionar Cupom".
Cupom (Brasil)
Cupom (Colômbia)
target
sponsorship
VOUCHER_IFOOD
VOUCHER_IFOOD_CO
CART
IFOOD
VOUCHER_REST
VOUCHER_REST_CO
CART
MERCHANT
VOUCHER_ENTGRATIS
VOUCHER_ENTGRATIS_CO
DELIVERY_FEE
IFOOD
Consulte a seção Cupons de Desconto para ter todos os detalhes sobre os tipos de cupons.
Vouchers do tipo ITEM e PROGRESSIVE_DISCOUNT_ITEM
Não disponibilizamos vouchers de testes do tipo ITEM pois nesse cenário é necessário criar uma campanha específica para um item do catálogo. Utilize os exemplos abaixo para mapear no seu aplicativo.