### iFood Benefits Example (JSON) Source: https://developer.ifood.com.br/en-US/docs/guides/order/details Provides an example of how iFood benefits (discounts/vouchers) are structured in JSON format. It includes details on value, target, sponsorship, and campaign information. ```JSON { "benefits": [ { "value": 10, "target": "CART", "sponsorshipValues": [ { "name": "IFOOD", "value": 0, "description": "Incentivo do iFood" }, { "name": "MERCHANT", "value": 10, "description": "Incentivo da Loja" } ], "campaign": { "id": "42cea1aa-1e23-4741-b48a-300716de08de", "name": "my campaign name" } }, { "value": 4.99, "target": "DELIVERY_FEE", "sponsorshipValues": [ { "name": "EXTERNAL", "value": 4.99, "description": "Incentivo da Indústria" }, { "name": "MERCHANT", "value": 0, "description": "Incentivo da Loja" } ], "campaign": { "id": "42cea1aa-1e23-4741-b48a-300716de08de", "name": "my campaign name" } }, { "value": 4.99, "target": "ITEM", "targetId": "1", "sponsorshipValues": [ { "name": "IFOOD", "value": 4.99, "description": "Incentivo do iFood" }, { "name": "MERCHANT", "value": 0, "description": "Incentivo da Loja" } ], "campaign": { "id": "42cea1aa-1e23-4741-b48a-300716de08de", "name": "my campaign name" } } ] } ``` -------------------------------- ### iFood Additional Fees Example (JSON) Source: https://developer.ifood.com.br/en-US/docs/guides/order/details Demonstrates the JSON structure for iFood's additional fees, including type, description, value, and liability distribution. ```JSON { "additionalFees": [ { "type": "SMALL_ORDER_FEE", "description": "Taxa de Serviço", "fullDescription": "Taxa de serviço cobrada quando o valor do pedido é inferior ao pedido mínimo.", "value": 1.0, "liabilities": [ { "name": "IFOOD", "percentage": 100 } ] } ] } ``` -------------------------------- ### Listar Itens de Categoria - API iFood Source: https://developer.ifood.com.br/en-US/docs/guides/catalog/multisetup Lista todos os itens, produtos, grupos de complementos e complementos associados a uma categoria específica. Requer o ID do comerciante e o ID da categoria como parâmetros na URL. A resposta inclui detalhes sobre os itens e produtos, bem como informações sobre grupos e opções de complementos. ```curl curl --location --request GET 'https://merchant-api.ifood.com.br/catalog/v1.0/merchants/21131c93-0398-4818-aad3-762cab309a26/multisetup/categories/beab216d-33dc-4ce4-8b35-5372e135093d/items' \ --header 'Authorization: Bearer TOKEN' ``` -------------------------------- ### Check Multi Setup Availability (Catalog API) Source: https://developer.ifood.com.br/en-US/docs/guides/catalog/multisetup This endpoint allows merchants to check if they can use the Multi Setup module. It's a prerequisite for utilizing the module's functionalities. ```bash GET isMultisetup ``` -------------------------------- ### iFood Benefits Example Source: https://developer.ifood.com.br/en-US/docs/guides/order/groceries/virtual-bag Provides a JSON example of the 'benefit' object, showcasing multiple benefits with different targets and sponsorships. It illustrates how discounts can be applied to the cart or specific items, with subsidies from iFood or merchants. ```json { "benefit": { "benefits": [ { "targetId": "123456", "target": "cart", "benefitIdentifier": "123456", "preAuthorizationToken": "123456", "transactionIdentifier": "123456", "authorizerId": "123456", "sponsorships": [ { "liability": "ifood", "amount": { "value": 2000, "currency": "BRL" } }, { "liability": "merchant", "amount": { "value": 1500, "currency": "BRL" } } ] }, { "targetId": "789012", "target": "item", "sponsorships": [ { "liability": "coca-cola", "amount": { "value": 500, "currency": "BRL" } } ] } ] } } ``` -------------------------------- ### Excluir Grupo de Complemento - cURL Source: https://developer.ifood.com.br/en-US/docs/guides/catalog/multisetup Esta solicitação cURL exclui um grupo de complemento e todos os seus complementos associados de todos os contextos. Certifique-se de substituir 'TOKEN' pelo seu token de autenticação e o ID do comerciante pelo ID correto. ```cURL curl --location --request DELETE 'https://merchant-api.ifood.com.br/catalog/v1.0/merchants/21131c93-0398-4818-aad3-762cab309a26/multisetup/optionGroups/' \ --header 'Authorization: Bearer TOKEN' ``` -------------------------------- ### Alterar Status de Complemento (API iFood) Source: https://developer.ifood.com.br/en-US/docs/guides/catalog/multisetup Exemplo de requisição PATCH para alterar o status de um complemento. Permite definir um status global e status específicos para diferentes contextos de cardápio. ```curl curl --location --request PATCH 'https://merchant-api.ifood.com.br/catalog/v1.0/merchants/21131c93-0398-4818-aad3-762cab309a26/multisetup/options/status' \ --header 'Authorization: Bearer TOKEN' \ --header 'Content-Type: application/json' \ --data-raw '{ \ "optionId": "d3e31829-a215-47e3-9576-3fddec9417ec", \ "status": "AVAILABLE", \ "parentCustomizationOptionId": null, \ "statusByCatalog": [ \ { \ "status": "UNAVAILABLE", \ "catalogContext": "WHITELABEL" \ } \ ]' \ } ``` -------------------------------- ### Alterar Preço de Complemento - API iFood Source: https://developer.ifood.com.br/en-US/docs/guides/catalog/multisetup Permite a alteração do preço de um complemento. O preço pode ser atualizado globalmente ou especificamente para um determinado contexto de cardápio. A requisição utiliza o método PATCH e envia um corpo JSON contendo o ID do complemento, o novo preço e, opcionalmente, os preços por contexto de cardápio. ```curl curl --location --request PATCH 'https://merchant-api.ifood.com.br/catalog/v1.0/merchants/21131c93-0398-4818-aad3-762cab309a26/multisetup/options/price' \ --header 'Authorization: Bearer TOKEN' \ --header 'Content-Type: application/json' \ --data-raw '{ "optionId": "d3e31829-a215-47e3-9576-3fddec9417ec", "price": { "value": 5, "originalValue": 7 }, "parentCustomizationOptionId": null, "priceByCatalog": [ { "value": 5, "originalValue": 7, "catalogContext": "WHITELABEL" } ] }' ``` -------------------------------- ### Consulta de Itens de Promoção (HTTP GET) Source: https://developer.ifood.com.br/en-US/docs/guides/promotion Endpoint para obter detalhes e status dos itens de uma promoção específica, utilizando o `aggregationId` retornado na criação. ```HTTP GET /merchants/{merchantId}/promotions/{aggregationId}/items ``` -------------------------------- ### Listar Horários de Funcionamento - API iFood Source: https://developer.ifood.com.br/en-US/docs/guides/merchant/workflow Consulte todos os horários de funcionamento de uma loja utilizando o endpoint GET. ```HTTP GET /horarios-funcionamento ``` -------------------------------- ### Deletar Categoria - API iFood Source: https://developer.ifood.com.br/en-US/docs/guides/catalog/multisetup Deleta uma categoria e todo o seu conteúdo associado. Esta operação é irreversível e remove a categoria de todos os contextos. A chamada requer o ID do comerciante e o ID da categoria na URL. ```curl curl --location --request DELETE 'https://merchant-api.ifood.com.br/catalog/v1.0/merchants/21131c93-0398-4818-aad3-762cab309a26/multisetup/categories/' \ --header 'Authorization: Bearer TOKEN' ``` -------------------------------- ### Obter Detalhes do Pedido (GROCERY) Source: https://developer.ifood.com.br/en-US/docs/guides/order/workflow Recupera todos os detalhes de um pedido da categoria GROCERY usando o endpoint GET /orders/{id}/virtual-bag. Retorna código 200 com o conteúdo do pedido ou 404 para IDs inválidos. Os detalhes são mantidos por 14 dias. ```HTTP GET /orders/{id}/virtual-bag ``` -------------------------------- ### Listar Itens por Categoria (cURL) Source: https://developer.ifood.com.br/en-US/docs/guides/catalog/v2 Exemplo de requisição cURL para o endpoint GET Items da API iFood, utilizado para listar todos os itens, produtos, grupos de complementos e complementos associados a um ID de categoria específico. Requer um token de autorização. ```bash curl --location --request GET 'https://merchant-api.ifood.com.br/catalog/v2.0/merchants/21131c93-0398-4818-aad3-762cab309a26/categories/beab216d-33dc-4ce4-8b35-5372e135093d/items' \ --header 'Authorization: Bearer TOKEN' ``` -------------------------------- ### Exibir userCode para ativação de aplicativo Source: https://developer.ifood.com.br/en-US/docs/guides/getting-started Quando um aplicativo está instalado em um dispositivo sem acesso ao navegador, o `userCode` deve ser exibido ao usuário. O usuário então acessa o Portal do Parceiro para inserir este código e receber o `authorizationCode`. ```plaintext userCode ``` -------------------------------- ### Get Store Status - iFood Merchant API Source: https://developer.ifood.com.br/en-US/docs/guides/merchant/workflow Checks the current status of a specific store. This involves sending a GET request to the /merchants/{merchantId}/status endpoint. ```HTTP GET /merchants/{merchantId}/status ``` -------------------------------- ### Obter Token de Acesso com Código de Autorização (Bash) Source: https://developer.ifood.com.br/en-US/docs/guides/getting-started Exemplo de como usar cURL para chamar o endpoint de token da API iFood, fornecendo as credenciais necessárias e o código de autorização para autenticar um aplicativo distribuído. ```Bash curl -X POST 'https://merchant-api.ifood.com.br/authentication/v1.0/oauth/token' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -d '{ "grantType": "authorization_code", "clientId": "d28ed85f-9b43-4555-a7c1-9b0df25e9999", "clientSecret":"s18lm6m5uwatgihxdl6h9pr0j11ugh9sjjs9a127gohyyqsitzulx12p5b5kty1l59orgbaryy7r1545ty6se9ljnlvea609999", "authorizationCode": "LHQX-ZZZZ", "authorizationCodeVerifier": "f3u8geu9uq31k7l8co7kct2ow3ctxu1ujoaoewgotj7gc60ji1r3zmzhy13tmcp577gyck4lka3c5852k2jg1h1gkpr8nca9999" }' ``` -------------------------------- ### Get Store Details - iFood Merchant API Source: https://developer.ifood.com.br/en-US/docs/guides/merchant/workflow Fetches detailed information about a specific store, including its name, address, and operations. Requires a valid merchant ID and uses the GET /merchants/{merchantId} endpoint. ```HTTP GET /merchants/{merchantId} ``` -------------------------------- ### Configuração de Promoção LXPY Source: https://developer.ifood.com.br/en-US/docs/guides/promotion Estrutura para promoções do tipo LXPY, utilizando o objeto progressiveDiscount para definir a quantidade a comprar e a pagar. ```JSON { "promotionType": "LXPY", "progressiveDiscount":{ "quantityToBuy": 3, "quantityToPay": 2 } } ``` -------------------------------- ### Iniciar Preparo do Pedido (FOOD) Source: https://developer.ifood.com.br/en-US/docs/guides/order/workflow Informa o início do preparo do pedido com a requisição POST /startPreparation. Deve ser usada após a confirmação e antes do despacho. O uso do evento `RECOMENDED_START_PREPARATION` é recomendado para otimização. ```HTTP POST /startPreparation ``` -------------------------------- ### Get Order Details via Logistics API Source: https://developer.ifood.com.br/en-US/docs/guides/logistics/workflow To retrieve comprehensive details of a specific order, use the GET `logistics/orders/{id}` endpoint. This endpoint is essential for gathering information needed to allocate the most suitable driver. A successful request returns a 200 status code with the order payload. Invalid or old order IDs will result in a 404 response. ```HTTP GET logistics/orders/{id} ``` -------------------------------- ### iFood Invoice Information Example Source: https://developer.ifood.com.br/en-US/docs/guides/order/groceries/virtual-bag Demonstrates the structure of the 'invoiceInformation' object, which includes the 'stateRegistration' field for tax purposes. ```json { "invoiceInformation": { "stateRegistration": "123456789" } } ``` -------------------------------- ### List Stores - iFood Merchant API Source: https://developer.ifood.com.br/en-US/docs/guides/merchant/workflow Retrieves a list of all stores accessible by the authenticated user. This is done by making a GET request to the /merchants endpoint. ```HTTP GET /merchants ``` -------------------------------- ### Gerar novo accessToken Source: https://developer.ifood.com.br/en-US/docs/guides/getting-started Após a homologação e solicitação de acesso aos dados das lojas, é necessário gerar um novo `accessToken` para acessar os dados da loja em produção. Este processo é realizado no Portal do Desenvolvedor. ```plaintext Gere um novo `accessToken`. ``` -------------------------------- ### Exemplo de Dados do Cliente Source: https://developer.ifood.com.br/en-US/docs/guides/order/details Este snippet mostra a estrutura de dados do cliente, contendo ID, nome, número de documento, quantidade de pedidos na loja, informações de contato (telefone, localizador e expiração) e segmentação. ```json { "customer": { "id": "50647eee-5eb6-41a2-b2d8-999998ed677f", "name": "Nome do Cliente", "documentNumber": "07544829999", "ordersCountOnMerchant": 8, "phone": { "number": "0800 XXX XXXX", "localizer": "27534642", "localizerExpiration": "2020-01-01T00:00:00.000Z" }, "segmentation": "Platinum" } } ``` -------------------------------- ### List Store Interruptions - iFood Merchant API Source: https://developer.ifood.com.br/en-US/docs/guides/merchant/workflow Retrieves a list of all recorded interruptions for a specific store. This uses the GET /merchants/{merchantId}/interruptions endpoint. ```HTTP GET /merchants/{merchantId}/interruptions ``` -------------------------------- ### Exemplo de Dados de Pedido iFood Source: https://developer.ifood.com.br/en-US/docs/guides/order/details Este snippet demonstra a estrutura completa de um pedido, incluindo informações gerais como ID, ID de exibição, tipo e momento do pedido, canal de vendas, categoria, datas de criação e preparo, status de teste e informações extras. ```json { "id": "32c15e00-9861-4548-b5f0-15580defc999", "displayId": "fc999", "orderType": "DELIVERY / INDOOR / TAKEOUT / DINE_IN", "orderTiming": "IMMEDIATE/SCHEDULED", "salesChannel": "IFOOD / DIGITAL_CATALOG / POS / ECONOMIC / TOTEM / IFOOD_SHOP / IFOOD_APP / IFOOD_SITE / WAITER / PDV / QR_CODE / IFOOD_SHOP_APP / IFOOD_SHOP_SITE / GROCERY_WHITELABEL_SITE", "category": "FOOD / GROCERY / ANOTAI / FOOD_SELF_SERVICE", "createdAt": "2020-01-01T00:00:00.000Z", "preparationStartDateTime": "2020-01-01T00:00:00.000Z", "isTest": false, "extraInfo": "Pago Online. NÃO LEVAR MÁQUINA", ... } ``` -------------------------------- ### Listar avaliações de um merchant Source: https://developer.ifood.com.br/en-US/docs/guides/review Faz requisições no endpoint GET /merchants/{merchantId}/reviews para listar todas as avaliações associadas a um merchant específico. ```HTTP GET /merchants/{merchantId}/reviews ``` -------------------------------- ### iFood Assistant - Exemplo de Interação Source: https://developer.ifood.com.br/en-US/docs/guides/getting-started/groceries Demonstra a interação inicial com o iFood Assistant, um assistente virtual para dúvidas sobre APIs. O assistente se apresenta e solicita a primeira dúvida do usuário. ```text 1. iFood Assistant Olá! Eu sou o assistente virtual do Portal do Desenvolvedor, e posso te ajudar com dúvidas relacionadas á nossas APIs, para começar digite sua dúvida. 23:25 2. ``` -------------------------------- ### Cálculo do preparationStartDateTime Source: https://developer.ifood.com.br/en-US/docs/guides/order/scheduled-orders Define como calcular o 'preparationStartDateTime' para pedidos agendados. Este cálculo é crucial para determinar o prazo de confirmação do pedido pelo restaurante. ```plaintext preparationStartDateTime = deliveryDateTimeStart - DeliveryTime (configuração da loja) ``` -------------------------------- ### List Store Opening Hours - iFood Merchant API Source: https://developer.ifood.com.br/en-US/docs/guides/merchant/workflow Fetches the operating hours for a specific store. This is done via a GET request to the /merchants/{merchantId}/opening-hours endpoint. ```HTTP GET /merchants/{merchantId}/opening-hours ``` -------------------------------- ### Monitor Batch Operations - GET Request Source: https://developer.ifood.com.br/en-US/docs/guides/catalog/v1 Retrieves the status and results of batch operations, such as bulk product updates. This API allows checking if operations were successful, failed, or if the entire batch has been processed. ```Bash curl --location --request GET 'https://merchant-api.ifood.com.br/catalog/v1.0/merchants/6b487a27-c4fc-4f26-b05e-3967c2331882/batch/bca9a293-b121-4027-b3e3-bce675581fbd' \ --header 'Authorization: Bearer TOKEN' ``` -------------------------------- ### Exemplo de Resposta de Sucesso da API de Promoções (HTTP 200) Source: https://developer.ifood.com.br/en-US/docs/guides/promotion Este snippet demonstra a estrutura de uma resposta bem-sucedida da API de promoções do iFood, retornando uma lista de promoções com seus respectivos IDs, EANs, status, datas, tipos e detalhes de desconto progressivo. Inclui também informações de paginação. ```json { "promotions": [ { "promotionItemId": "005f5ea0-1ff4-4c9b-9f48-76d94bfe4694", "ean": "3213434343", "status": "PROCESSING", "initialDate": "2024-10-10", "finalDate": "2024-10-11", "promotionType": "LXPY", "promotionName": "Promoção teste do tipo LXPY", "progressiveDiscount": { "quantityToBuy": 3, "quantityToPay": 2 } } ], "pagination": { "nextOffset": 99, "currentOffset": 0 } } ``` -------------------------------- ### Bloqueio de Integração e IPs no iFood Source: https://developer.ifood.com.br/en-US/docs/guides/order/events/delivery-methods/webhook/configuration Informações sobre como o iFood pode bloquear webhooks em casos extremos e a necessidade de liberar IPs da infraestrutura do iFood em firewalls. ```text O iFood pode bloquear webhooks apenas em casos extremos, após tentativas de contato sobre problemas de integração. Você pode verificar o status do bloqueio na área do aplicativo. Se a integração usar firewall, libere os IPs da nossa infraestrutura para garantir o funcionamento correto. Saiba mais em Boas práticas. ``` -------------------------------- ### Validate Catalog Categories - GET Request Source: https://developer.ifood.com.br/en-US/docs/guides/catalog/v1 Retrieves a list of categories within a merchant's catalog, optionally including items. This API call is used to validate the structure and content of a catalog. ```Bash curl --location --request GET 'https://merchant-api.ifood.com.br/catalog/v1.0/merchants/6b487a27-c4fc-4f26-b05e-3967c2331882/catalogs/10e0fbbe-7279-4ee3-9a2f-caf1f93f7b8e/categories?includeItems=true' \ --header 'Authorization: Bearer TOKEN' ``` -------------------------------- ### Track Batch Operations Source: https://developer.ifood.com.br/en-US/docs/guides/catalog/v2 Enables tracking the status and results of batch operations, such as mass product updates. The API endpoint GET /merchants/{merchantId}/batch/{batchId} can be used to check if operations were successful or not, and if the entire batch has been processed. ```cURL curl --location --request GET 'https://merchant-api.ifood.com.br/catalog/v2.0/merchants/6b487a27-c4fc-4f26-b05e-3967c2331882/batch/bca9a293-b121-4027-b3e3-bce675581fbd' \ --header 'Authorization: Bearer TOKEN' ``` -------------------------------- ### Abertura de Lojas na API do iFood Source: https://developer.ifood.com.br/en-US/docs/guides Descreve os passos necessários para abrir e configurar uma nova loja na plataforma iFood através da API. Detalha o processo de onboarding de lojas. -------------------------------- ### Obter detalhes de uma avaliação específica Source: https://developer.ifood.com.br/en-US/docs/guides/review Faz requisições no endpoint GET /merchants/{merchantId}/reviews/{reviewId} para obter os detalhes de uma avaliação específica de um merchant. ```HTTP GET /merchants/{merchantId}/reviews/{reviewId} ``` -------------------------------- ### Polling for New Orders with excludeHeartbeat Source: https://developer.ifood.com.br/en-US/docs/guides/logistics/workflow When using the polling method to receive new orders from the iFood Logistics API, it is mandatory to include the `excludeHeartbeat=true` parameter. This prevents the store from remaining open unnecessarily. The example shows the correct format for the polling request. ```HTTP /events/v1.0/events:polling?excludeHeartbeat=true ``` -------------------------------- ### Configuração de Promoção PERCENTAGE_PER_X_UNITS Source: https://developer.ifood.com.br/en-US/docs/guides/promotion Estrutura para promoções PERCENTAGE_PER_X_UNITS, combinando discountValue e progressiveDiscount.quantityToBuy para aplicar desconto em quantidades específicas. ```JSON { "promotionType": "PERCENTAGE_PER_X_UNITS", "discountValue": "valor do desconto aplicado a cada x unidades do item", "progressiveDiscount":{ "quantityToBuy": 3, } } ``` -------------------------------- ### Configuração de Loja e Catálogo via API iFood Source: https://developer.ifood.com.br/en-US/docs/guides/getting-started/food Com o token de acesso, configure os dados da sua loja (horário, indisponibilidades) usando os endpoints do módulo de merchant. Configure itens/pratos pelo módulo de catálogo. Essas configurações também podem ser feitas pelo Portal do Parceiro. ```text Com o token de acesso em mãos, você pode configurar os dados da sua loja, como como horário de funcionamento e indisponibilidades, através dos endpoints do módulo de merchant. Além disso, consegue configurar os itens/pratos através do módulo de catálogo.Você também pode fazer essas configurações através do Portal do Parceiro. ``` -------------------------------- ### Criação de Promoções na API do iFood Source: https://developer.ifood.com.br/en-US/docs/guides Instruções para criar promoções exclusivas para a loja na plataforma iFood. Permite impulsionar vendas e atrair clientes. -------------------------------- ### Iniciar e Finalizar Separação do Pedido (GROCERY) Source: https://developer.ifood.com.br/en-US/docs/guides/order/workflow Utiliza os endpoints POST /startSeparation para iniciar a separação e POST /endSeparation para finalizar. O status do pedido é atualizado através de polling no endpoint GET /events:polling. ```HTTP POST /startSeparation ``` ```HTTP POST /endSeparation ``` -------------------------------- ### Exemplo de Respostas para uma Pergunta de Escolha Source: https://developer.ifood.com.br/en-US/docs/guides/review Demonstração das possíveis respostas para uma pergunta do tipo 'CHOICE', onde cada resposta possui um ID e um título. ```json { "answers": [ { "id": "a441afc3-ab63-4254-8f00-219de3f916fd", "title": "Sim, gostei" } ] } ``` -------------------------------- ### Exclusão de Heartbeat para Integradoras Logísticas Source: https://developer.ifood.com.br/en-US/docs/guides/order/events/delivery-methods/polling/overview Para aplicativos de Integradora Logística, é obrigatório incluir o parâmetro `excludeHeartbeat=true` na requisição GET /events:polling. Isso previne a abertura indevida da loja e penalidades na plataforma. ```HTTP GET /events:polling?excludeHeartbeat=true ``` -------------------------------- ### Notificar Pedido Pronto para Retirar Source: https://developer.ifood.com.br/en-US/docs/guides/order/takeout Envia uma requisição para notificar o cliente que o pedido está pronto para ser retirado. Diferente do delivery, utiliza a rota /readyToPickup. ```JSON { "id": "d585214c-b95a-4c4d-9d05-16f7d8f99999", "code": "PAA", "fullCode": "PICKUP_AREA_ASSIGNED", "orderId": "169e6c99-93e9-43b2-981a-498817088888", "createdAt": "2020-01-01T00:00:00.000Z", "metaData": { "PICKUP_AREA_CODE": "1", "PICKUP_AREA_TYPE": "NUMBER" } } ``` -------------------------------- ### Validar Catálogo de Produtos (iFood API) Source: https://developer.ifood.com.br/en-US/docs/guides/catalog/v2 Consulta a listagem de categorias e itens de um catálogo específico. Utiliza o método GET na rota /catalog/v2.0/merchants/{merchantId}/catalogs/{catalogId}/categories e retorna os detalhes dos produtos. ```curl curl --location --request GET 'https://merchant-api.ifood.com.br/catalog/v2.0/merchants/6b487a27-c4fc-4f26-b05e-3967c2331882/catalogs/10e0fbbe-7279-4ee3-9a2f-caf1f93f7b8e/categories?includeItems=true \ --header 'Authorization: Bearer TOKEN' ``` -------------------------------- ### Polling de Eventos iFood Source: https://developer.ifood.com.br/en-US/docs/guides/order/events/delivery-methods/polling/overview Para não perder pedidos, é necessário realizar requisições no endpoint GET /events:polling a cada 30 segundos. Utilize o header `x-pooling-merchants` para filtrar eventos por merchant e, opcionalmente, por tipo e grupo. ```HTTP GET /events:polling Header: x-pooling-merchants: [merchant_id] ``` -------------------------------- ### Estrutura de Preços de Escala para Itens Source: https://developer.ifood.com.br/en-US/docs/guides/order/details Descreve a estrutura para preços de escala de itens, incluindo um preço padrão e uma lista de escalas de preços para vendas no atacado. Cada escala define um preço com base em uma quantidade mínima. ```json { "scalePrices": { "defaultPrice": 20, "scales": [ ... ] } } ``` ```json { "scales": [ { "price": 15, "minQuantity": 5 } ] } ``` -------------------------------- ### HANDSHAKE_DISPUTE Payload Example Source: https://developer.ifood.com.br/en-US/docs/guides/order/handshake-platform Exemplo de payload para o evento HANDSHAKE_DISPUTE, indicando uma proposta que requer resposta. Inclui detalhes como ID, orderId, código, merchantId, timestamps e metadados específicos da disputa, como ação, motivo e alternativas. ```json { "id":"6d34f8be-7fa6-40f1-877f-8ac564db2a7c", "orderId":"23f5d785-6c76-47d8-bdd0-b3090c90a2a8", "code":"HSD", "fullcode":"HANDSHAKE_DISPUTE", "merchantId":"23f5d785-6c76-47d8-bdd0-b3090c90a2a8", "createdAt":"2023-06-23T13:09:06.287636Z", "metadata":{ "disputeId":"5166ded9-bdee-4440-8c73-b5488e8b1f83", "action":"CANCELLATION", "timeoutAction":"REJECT_CANCELLATION", "handshakeType":"AFTER_DELIVERY", "handshakeGroup":"CUSTOMER_ORDER_SUPPORT", "message":"Pedido veio errado", "expiresAt":"2023-06-23T13:15:06.287636Z", "alternatives":[ { "id":"2d35d0b9-67ae-46d2-8261-f0a40e5d07fd", "type":"REFUND", "metadata":{ "maxAmount":{ "value":"6000", "currency":"BRL" } } }, { "id": "c1f76701-994c-4537-8d54-fb2bc2ee511d", "type": "ADDTIONAL_TIME", "metadata": { "allowedsAdditionalTimeInMinutes": [10, 15, 20, 30], "allowedsAdditionalTimeReasons": [ "HIGH_STORE_DEMAND", "OPERATIONAL_ISSUES", "LACK_OF_DRIVERS", "ORDER_OUT_FOR_DELIVERY", "DRIVER_IS_ALREADY_AT_THE_ADDRESS" ] } } ], "metadata":{ "acceptCancellationReasons": [ "HIGH_STORE_DEMAND", "STORE_SYSTEM_ISSUES", "STORE_INTERNAL_DIFFICULTIES", "LACK_OF_DRIVERS", "OTHER_REASONS", "OPERATIONAL_ISSUES", "ORDER_OUT_FOR_DELIVERY" ], "evidences":[ { "url":"https://merchant-api.ifood.com.br/order/v2.0/orders/{orderId}/cancellationEvidences/{imageId}", "contentType":"image/jpg" } ], "items":[ { "id":"296b1757-4edf-4a4a-9f03-dfc10d4e907a", "uniqueId":"fe3620ad-c475-4f01-93b9-1ed95907a9ab", "externalCode":"73", "index":1, "quantity":1, "amount":{ "value":"3890", "currency":"BRL" }, "reason":"Não veio a batata, apenas as esfihas" } ], "garnishItems":[ { "id":"ffa2e2f0-361e-4076-8781-e7c8073326e1", "parentUniqueId":"efe73d06-ccfd-4605-a2a5-1b5b64284b47", "externalCode":"MAI-9601273-601273", "quantity":1, "index":2, "amount":{ "value":"2650", "currency":"BRL" }, "reason":"Revirado e faltando o queijo" } ] }, "createdAt":"2023-06-23T13:06:50.448434Z" }, "receivedAt":"2023-06-23T13:06:50.628451Z" } ``` -------------------------------- ### API REST: Realizar Contraproposta Source: https://developer.ifood.com.br/en-US/docs/guides/order/handshake-platform Exemplo de como realizar uma contraproposta via API REST. Detalha a URL, códigos de status e exemplos de resposta para sucesso e falha. ```HTTP POST /negotiations/counter-offer Response Success: { "status": "countered", "message": "Contraproposta realizada com sucesso." } Response Failure: { "status": "error", "message": "Falha ao realizar contraproposta." } ``` -------------------------------- ### Exemplo de Cupom ITEM e PROGRESSIVE_DISCOUNT_ITEM Source: https://developer.ifood.com.br/en-US/docs/guides/order/workflow Exemplos de estrutura JSON para cupons de desconto do tipo ITEM e PROGRESSIVE_DISCOUNT_ITEM. Estes exemplos mostram como mapear os benefícios e valores de patrocínio para cada tipo de cupom. ```json "benefits": [ { "value": 4.99, "target": "ITEM", "targetId": "1", "sponsorshipValues": [ { "name": "IFOOD", "value": 4.99 }, { "name": "MERCHANT", "value": 0 } ] }, { "value": 4.99, "target": "PROGRESSIVE_DISCOUNT_ITEM", "targetId": "2", "sponsorshipValues": [ { "name": "IFOOD", "value": 4.99 }, { "name": "MERCHANT", "value": 0 } ] } ``` -------------------------------- ### Polling de Eventos iFood Source: https://developer.ifood.com.br/en-US/docs/guides/order/events/delivery-methods/polling/overview Método simples para receber atualizações de API enviando requisições regulares para o endpoint GET /events:polling. A API retorna novas informações desde a última requisição. Retorna 200 com a lista de eventos ou 204 se não houver eventos. ```HTTP GET /events:polling ``` -------------------------------- ### Envio de Promoção Leve X Pague Y (LXPY) Source: https://developer.ifood.com.br/en-US/docs/guides/promotion Exemplo de payload JSON para configurar uma promoção do tipo 'Leve X Pague Y' (LXPY). Requer o tipo de promoção 'LXPY' e um objeto 'progressiveDiscount' com 'quantityToBuy' e 'quantityToPay'. ```JSON { "aggregationTag": "123456", "promotions": [ { "promotionName": "Promoção teste do tipo LXPY", "channels": [ "IFOOD-APP" ], "items": [ { "ean": "3213434343", "discountValue": null, "initialDate": "2024-10-23", "finalDate": "2024-10-30", "promotionType": "LXPY", "progressiveDiscount": { "quantityToBuy": 3, "quantityToPay": 2 } } ] } ] } ``` -------------------------------- ### List Item by ID using cURL Source: https://developer.ifood.com.br/en-US/docs/guides/catalog/v2 This snippet demonstrates how to retrieve a specific item's details from the iFood catalog using a GET request with cURL. It requires the merchant ID and item ID in the URL, and an Authorization header with a Bearer token. The response is a JSON object containing item details, including prices, availability, and context modifiers. ```Bash curl --location --request GET 'https://merchant-api.ifood.com.br/catalog/v2.0/merchants/21131c93-0398-4818-aad3-762cab309a26/items/af983271-3981-46fa-94eb-46cb81c439e2/flat' \ --header 'Authorization: Bearer TOKEN' ``` -------------------------------- ### Gerenciamento de Picking na API do iFood Source: https://developer.ifood.com.br/en-US/docs/guides Informações sobre o processo de separação de pedidos (picking) e gerenciamento de rupturas de estoque. Detalha a operação de picking. -------------------------------- ### Homologação de Aplicativos no iFood Source: https://developer.ifood.com.br/en-US/docs/guides Apresenta os critérios e o processo para homologar aplicativos que se integram com a plataforma iFood. Garante a conformidade e qualidade das integrações. -------------------------------- ### Listar Inventário de Produto Source: https://developer.ifood.com.br/en-US/docs/guides/catalog/v1 Recupera as informações de inventário de um produto específico. É necessário fornecer o ID do estabelecimento e o ID do produto. ```bash curl -X GET "https://merchant-api.ifood.com.br/catalog/v1.0/merchants/6b487a27-c4fc-4f26-b05e-3967c2331882/inventory/ec16fb62-7bdd-43e4-940c-10b5a2845f13" -H "accept: application/json" ``` -------------------------------- ### Verificar Status da Loja Source: https://developer.ifood.com.br/en-US/docs/guides/getting-started/food Consulte o status em tempo real da sua loja na plataforma iFood utilizando o endpoint de disponibilidade. Isso ajuda a garantir que sua loja esteja online e acessível para receber pedidos. ```HTTP GET /stores/{storeId}/availability ``` -------------------------------- ### Configurar Delivery iFood Source: https://developer.ifood.com.br/en-US/docs/guides/order/details Define os parâmetros para o serviço de entrega do iFood, incluindo modo de entrega, descrição, responsável pela entrega, código de coleta, data/hora e observações. ```json { "delivery": { "mode": "DEFAULT / EXPRESS / HIGH_DENSITY / TURBO/PRIORITY", "description": "Padrão / Rápida / Turbo", "deliveredBy": "IFOOD / MERCHANT", "deliveryDateTime": "2020-01-01T00:00:00.000Z", "observations": "Deixar na portaria", "deliveryAddress": {}, "pickupCode": "1234" } } ``` -------------------------------- ### Exemplo de Criação de Promoção com Desconto Percentual Source: https://developer.ifood.com.br/en-US/docs/guides/promotion Demonstra como criar uma promoção com desconto percentual. O payload especifica o tipo de promoção e o valor do desconto. ```JSON { "promotionType": "PERCENTAGE", "discountValue": 10 } ``` -------------------------------- ### Recuperar e Exibir Imagem de Evidência de Cancelamento (JavaScript) Source: https://developer.ifood.com.br/en-US/docs/guides/order/handshake-platform Este snippet de código JavaScript busca uma imagem de evidência de cancelamento usando uma requisição GET para a API do iFood. Ele lida com a resposta, converte o blob da imagem e o exibe em um elemento `` na página HTML. Requer um token JWT para autenticação. ```javascript const urlImagem = "https://merchant-api.ifood.com.br/order/v1.0/orders/abeff264-bf8b-472d-a6ad-11fea0096253/cancellationEvidences/89422573-3b50-421d-a0f4-051642e75f70"; const opcoesFetch = { method: 'GET', headers: { 'Authorization': 'Bearer jwt-token' } }; fetch(urlImagem, opcoesFetch) .then(response => { if (!response.ok) { throw new Error('Falha ao buscar a imagem: ' + response.statusText); } return response.blob(); }) .then(blob => { const urlBlob = URL.createObjectURL(blob); document.getElementById('imagemServidor').src = urlBlob; }) .catch(error => { console.error('Erro:', error); }); ``` -------------------------------- ### Gerenciamento de Catálogo na API do iFood Source: https://developer.ifood.com.br/en-US/docs/guides Guia para configurar o catálogo de produtos das lojas na plataforma iFood. Permite a gestão de itens, preços e descrições. -------------------------------- ### Atualização de Promoções com Reset (HTTP POST) Source: https://developer.ifood.com.br/en-US/docs/guides/promotion Exemplo de como atualizar promoções existentes utilizando o parâmetro `?reset=true`. Substitui todas as promoções anteriores pelas enviadas no payload. ```HTTP POST /merchants/{merchantId}/promotions?reset=true ``` -------------------------------- ### Adicionar Informações Adicionais ao Pedido iFood Source: https://developer.ifood.com.br/en-US/docs/guides/order/details Permite a inclusão de metadados personalizados pelo estabelecimento, como códigos internos ou nome do vendedor, para pedidos via POS. ```json { "additionalInfo": { "metadata": { "codigoInternoPdv": "18bf73f64715", "nomeVendedor": "João" } } } ``` -------------------------------- ### Configuração de Presença do Webhook iFood Source: https://developer.ifood.com.br/en-US/docs/guides/order/events/delivery-methods/webhook/configuration Explica como o sistema habilita a presença por padrão e como gerenciar o recebimento de eventos de presença, seja para todos os merchants ou individualmente. ```text O sistema habilita a presença por padrão para cada aplicação registrada no webhook. O endpoint começa a receber eventos de presença até 30 segundos após o registro do webhook. Você pode enviar uma única request de ping para deixar todos os merchants da aplicação online. Também pode enviar requests de ping individualmente para cada merchant com acesso ao escopo `order`, caso precise controlar quais merchants ficam online na plataforma. ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.