logo
logo

Docs / Order / Detalhes de Pedidos

Introdução

Um pedido contém as seguintes informações:

  • Informações gerais - id, tipo, data de criação do pedido dentre outros.
  • Merchant - identificação do merchant (loja)
  • Customer - identificação do cliente que deve receber o pedido
  • Itens - produtos/pratos
  • Options - complementos ou opções dos itens
  • Benefits - cupons de desconto incentivos
  • Additional Fees - taxas adicionais
  • Total - somatório dos valores do pedido
  • Payments - detalhes sobre as formas de pagamento
  • Delivery - informações sobre a forma de entrega do pedido e o endereço.
  • Takeout - informações sobre a retirada de um pedido "Pra Retirar"
  • Indoor - informações sobre a retirada ou entrega de um pedido "Na Mesa"
  • Schedule - informações sobre agendamento do pedido

Campos

CampoTipoDescrição
iduuidIdentificador único do pedido
displayIdstringId amigável para facilitar a identificação do pedido pela loja. Deve ser exibido na interface do seu aplicativo.
orderTypeenumtipo de pedido
orderTimingenummomento de entrega do pedido
salesChannelstringcanal de vendas pelo qual o pedido entra na plataforma (novos canais podem ser adicionados)
createdAtdatedata de criação do pedido
preparationStartDateTimedaterecomendação de início do preparo do pedido
isTestbooleanindica se é um pedido de teste ou não
extraInfostringinformações adicionais sobre o pedido

Exemplo:

{
  "id": "32c15e00-9861-4548-b5f0-15580defc999",
  "displayId": "fc999",
  "orderType": "DELIVERY / INDOOR / TAKEOUT",
  "orderTiming": "IMMEDIATE/SCHEDULED",
  "salesChannel": "IFOOD / INDOOR / WHATSAPP / WHITELABEL",
  "createdAt": "2020-01-01T00:00:00.000Z",
  "preparationStartDateTime": "2020-01-01T00:00:00.000Z",
  "isTest": false,
  "extraInfo": "Pago Online. NÃO LEVAR MÁQUINA",
  ...
}
CampoTipoDescrição
iduuididentificador único do merchant (loja)
namestringnome do merchant (loja)

Exemplo:

"merchant": {
  "id": "50647eee-5eb6-41a2-b2d8-999998ed677f",
  "name": "Nome da Loja"
}
CampoTipoDescrição
iduuididentificador único do cliente
namestringnome do cliente
documentNumber--numero do documento do cliente (cpf) que deve ser utilizado somente para emissão de documento fiscal quando o cliente solicitar, pois o campo é opcional.
ordersCountOnMerchantintegerquantidade de pedidos já feito por esse cliente nessa loja
phone.numberstringnúmero de telefone do cliente ou do 0800 fornecido pelo iFood
phone.localizerstringcódigo localizador que deve ser informado ao ligar para o número 0800
phone.localizerExpirationdatedata de expiração do localizador do 0800

Exemplo:

"customer": {
	"id": "50647eee-5eb6-41a2-b2d8-999998ed677f",
	"name": "Nome do Cliente",
	"documentNumber": "07544829999",
	"ordersCountOnMerchant": 8,
	"phone": {
		"number": "0800 608 1015",
		"localizer": "27534642",
		"localizerExpiration": "2020-01-01T00:00:00.000Z"
		}
}

Campo phone é opcional O campo phone é opcional, e deixará de ser enviado 3 horas após a data de entrega designada para o pedido. Note que, mesmo durante este período, em alguns pedidos pode acontecer do telefone não ser informado. Caso seja preciso entrar em contato com o cliente, é possível utilizar o chat.

CampoTipoDescrição
indexintegerposição/ordem dos itens
iduuididentificador único do item
namestringnome do item
externalCodestringcódigo do item no seu aplicativo (codPDV). É opcional e pode ser configurado no catálogo
eanstringcódigo de barras (European Article Number)
quantitydoublequantidade do item
unitstringunidade do item (Ex: UN, g, Kg, ml, L)
unitPricedoublepreço unitário
pricedoublepreço do item (price = quantity x unitPrice)
optionsPricedoublepreço dos complementos (options)
totalPricedoublepreço total incluindo os complementos (totalPrice = price + optionsPrice)
observationsstringobservações do pedido. (Ex: "Retirar cebola") Tamanho máximo: 256

Exemplo:

"items": [
  {
    "index": 1,
    "id": "1bd9cbac-a4a6-497e-953d-e6d0661180d5",
    "name": "Nome do Produto",
    "externalCode": "2331",
    "ean": "7898903529999",
    "quantity": 2,
    "unit": "UN/G/KG/L/ML",
    "unitPrice": 10,
    "price": 20,
    "optionsPrice": 4,
    "totalPrice": 24,
    "observations": "Retirar cebola",
    "options": [
      ...
    ]
  }
]
CampoTipoDescrição
indexintegerposição/ordem dos complementos
iduuididentificador único do complemento
namestringnome do complemento
externalCodestringcódigo do complemento no seu aplicativo (codPDV). É opcional e pode ser configurado no catálogo
quantitydoublequantidade do item
unitstringunidade do item (Ex: UN, g, Kg, ml, L)
unitPricedoublepreço unitário
pricedoublepreço do complemento (price = quantity x unitPrice)

Exemplo:

"options": [
  {
    "index": 1,
    "id": "3dc09021-be6b-4be6-92a1-15a07b464141",
    "name": "Nome do Complemento",
    "externalCode": "ABC123",
    "quantity": 2,
    "unit": "UN/G/KG/L/ML",
    "unitPrice": 2,
    "price": 4
  }
]

O usuário do iFood pode receber diversos tipos de cupons de desconto / vouchers para utilizar no aplicativo que chamamos de benefits.

Esses cupons de desconto podem ser subsidiados tanto pelo iFood quanto pelo parceiro. Eles aparecem nos detalhes dos pedidos no campo benefits e o valor do subsídio de cada parte aparece no campo "sponsorship".

Esses cupons podem ser aplicados tanto sobre um item específico, sobre o subtotal dos itens (carrinho) ou sobre a taxa de entrega (target).

CampoTipoDescrição
valuedoublevalor do desconto/incentivo
targetstringinformação sobre onde o desconto será aplicado.
targetIdstringindex do item (items.index) sobre o qual o desconto deve ser aplicado. Somente para os casos em que o target é do tipo ITEM ou PROGRESSIVE_DISCOUNT_ITEM
sponsorshipValues.namestringnome do patrocinador desse benefício
sponsorshipValues.valuedoublevalor subsidiado pelo patrocinador

Targets

targetDescrição
CARTDesconto é aplicado sobre o subtotal do carrinho (somatório dos itens do pedido).
DELIVERY_FEEDesconto é aplicado sobre a taxa de entrega.
ITEMDesconto é aplicado sobre um item específico do carrinho. O campo targetId especifica sobre qual item o desconto foi aplicado. Essa especificação é feita na configuração da campanha.
PROGRESSIVE_DISCOUNT_ITEMDesconto progressivo em itens iguais do pedido, formando um combo.

Sponsorship

sponsorshipTratamento
IFOODO valor do(s) cupom(ns) deve(m) ser tratado(s) como um tipo de pagamento, pois o iFood fará o repasse desse valor para o restaurante.
MERCHANTO valor do(s) cupom(ns) deve(m) ser tratado(s) como um desconto, pois o subsídio nesse caso é de responsabilidade do merchant (loja).

Exemplo:

"benefits": [
  {
    "value": 10,
    "target": "CART",
    "sponsorshipValues": [
      {
        "name": "IFOOD",
        "value": 0
      },
      {
        "name": "MERCHANT",
        "value": 10
      }
    ]
  },
  {
    "value": 4.99,
    "target": "DELIVERY_FEE",
    "sponsorshipValues": [
      {
        "name": "IFOOD",
        "value": 4.99
      },
      {
        "name": "MERCHANT",
        "value": 0
      }
    ]
  },
  {
    "value": 4.99,
    "target": "ITEM",
    "targetId": "1",
    "sponsorshipValues": [
      {
        "name": "IFOOD",
        "value": 4.99
      },
      {
        "name": "MERCHANT",
        "value": 0
      }
    ]
  }
]
CampoTipoDescrição
typestringtipo de taxa (SMALL_ORDER_FEE / MERCHANT_SUBSCRIPTION_FEE / etc )
valuedoublevalor da taxa adicional

Exemplo:

"additionalFees": [
  {
    "type": "SMALL_ORDER_FEE",
    "value": 1.00
  },
  {
    "type": "MERCHANT_SUBSCRIPTION_FEE",
    "value": 5.00
  }
]

Tipos de taxas adicionais

typeDescrição
SMALL_ORDER_FEEtaxa adicional para pedidos abaixo do valor mínimo
CampoTipoDescrição
subTotaldoublesomatório do valor dos itens
deliveryFeedoublevalor da taxa de entrega
benefitsdoublesomatório dos benefits (cupons de desconto)
additionalFeesdoublesomatório das taxas adicionais
orderAmountdoublevalor total do pedido (orderAmount = subTotal + deliveryFee + additionalFees - benefits)

Exemplo:

"total": {
  "subTotal": 50,
  "deliveryFee": 10,
  "additionalFees": 2,
  "benefits": 5,
  "orderAmount": 57
}
CampoTipoDescrição
prepaiddoublevalor que já foi pago (ONLINE)
pendingdoublevalor pendente que deve ser cobrado no ato da entrega (OFFLINE)
methods.valuedoublevalor do pagamento
methods.currencystringmoeda
methods.typestringtipo de pagamento: ONLINE (pagamento já foi feito online pelo aplicativo e não deve ser cobrado na entrega) ou OFFLINE (pagamento deve ser feito no ato da entrega do pedido)
methods.methodstringmétodo de pagamento (CASH / CREDIT / DEBIT / MEAL_VOUCHER / FOOD_VOUCHER / GIFT_CARD / WALLET / PIX / OTHER)
methods.wallet.namestringnome da carteira (somente para pagamentos com carteira digital)
methods.card.brandstringnome da bandeira do cartão
methods.cash.changeFordoublevalor do troco

Exemplo:

"payments": {
  "prepaid": 20,
  "pending": 45,
  "methods": [
    {
      "value": 10,
      "currency": "BRL",
      "type": "ONLINE",
      "method": "CREDIT / DEBIT / MEAL_VOUCHER / FOOD_VOUCHER",
	  "card": {
        "brand": "Nome da Bandeira"
      }
    },
        {
      "value": 10,
      "currency": "BRL",
      "type": "ONLINE",
      "method": "WALLET",
      "wallet": {
        "name": "APPLE_PAY/GOOGLE_PAY/SAMSUNG_PAY"
       }
    },
    {
      "value": 45,
      "currency": "BRL",
      "type": "OFFLINE",
      "method": "CASH ",
      "cash": {
        "changeFor": 50
      }
    }
  ]
}
CampoTipoDescrição
modestringmodo de entrega (DEFAULT / ECONOMIC / EXPRESS)
deliveredBystringresponsável por fazer a entrega: IFOOD (logística iFood) ou MERCHANT (entregada própria)
deliveryDateTimedatedata e horário da entrega
observationsstringobservações sobre a entrega (Ex: "Não tem porteiro. Favor interfonar.")
deliveryAddress--endereço onde o pedido deve ser entregue

Exemplo:

"delivery": {
  "mode": "DEFAULT / ECONOMIC / EXPRESS",
  "deliveredBy": "IFOOD / MERCHANT",
  "deliveryDateTime": "2020-01-01T00:00:00.000Z",
  "observations": "Entrega sem Contato - Deixar na portaria",
  "deliveryAddress": {...}
}
CampoTipoDescrição
streetNamestringnome da rua ou avenida
streetNumberstringnúmero (Obs: pode conter letras)
formattedAddressstringendereço formatado (Rua + Número)
neighborhoodstringbairro ou setor
complementstringcomplemento (Ex: Apartamento, Quadra, Lote)
referencestringponto de referência
postalCodestringcódigo postal (CEP)
citystringcidade
statestringestado
countrystringpaís
coordinates.latitudedoublelatitude
coordinates.longitudedoublelongitude

Exemplo:

  "deliveryAddress": {
    "streetName": "RUA X",
    "streetNumber": "20A",
    "formattedAddress": "RUA X, 20A",
    "neighborhood": "Bairro / Setor",
    "complement": "Apto 101",
    "reference": "perto da praça",
    "postalCode": "99999999",
    "city": "SAO PAULO",
    "state": "SP",
    "country": "BR",
    "coordinates": {
      "latitude": -26.999999,
      "longitude": -48.999999
    }
  }
CampoTipoDescrição
modestringmodo de retirada: DEFAULT (cliente retira o pedido no balcão) / PICKUP_AREA (cliente vai esperar o pedido em uma vaga especial do estacionamento)
takeoutDateTimedatedata e hora da retirada do pedido
observationsstringobservações sobre a retirada do pedido

Exemplo:

"takeout": {
  "mode": "DEFAULT / PICKUP_AREA:",
  "takeoutDateTime": "2020-01-01T00:00:00.000Z",
  "observations": "Observações sobre a retirada"
}
CampoTipoDescrição
modestringmodo de retirada: DEFAULT (cliente retira o pedido no balcão) / TABLE (cliente vai esperar o pedido em uma mesa do estabelecimento)
tablestringnúmero ou código da mesa onde o cliente fez o pedido (somente quando mode = TABLE)
deliveryDateTimedatedata e hora da entrega ou retirada do pedido
observationsstringobservações sobre a retirada do pedido

Exemplo:

"indoor": {
  "mode": "DEFAULT / TABLE:",
  "table": "01",
  "deliveryDateTime": "2020-01-01T00:00:00.000Z",
  "observations": "Observações sobre a entrega ou retirada"
}
CampoTipoDescrição
schedule.deliveryDateTimeStartdateinício do horário (intervalo) agendado
schedule.deliveryDateTimeEnddatefim do horário (intervalo) agendado

Exemplo:

"schedule": {
  "deliveryDateTimeStart": "2020-01-01T00:20:00.000Z",
  "deliveryDateTimeEnd": "2020-01-01T01:20:00.000Z"
}

Exemplos

{
  "id": "63895716-37c3-4372-afd0-3240bfef708d",
  "orderTiming": "IMMEDIATE",
  "orderType": "DELIVERY",
  "salesChannel": "IFOOD",
  "delivery": {
    "mode": "ECONOMIC",
    "deliveredBy": "IFOOD",
    "deliveryDateTime": "2021-02-09T18:10:32Z",
    "deliveryAddress": {
      "streetName": "Example",
      "streetNumber": "1234",
      "formattedAddress": "Example St., 1234, Apt. 1234",
      "neighborhood": "Examplehood",
      "complement": "Apt. 1234",
      "postalCode": "12345678",
      "city": "Example City",
      "state": "Example State",
      "country": "BR",
      "coordinates": {
        "latitude": -2.1059418202311173e141,
        "longitude": -49545.71
      }
    }
  },
  "displayId": "XPTO",
  "createdAt": "2021-02-16T18:10:27Z",
  "preparationStartDateTime": "2021-02-09T20:15:13Z",
  "merchant": {
    "id": "c54bb20a-bce0-4e38-bd4a-fe5f0a7b6b5a",
    "name": "Example Merchant"
  },
  "customer": {
    "id": "22587f70-60b4-423c-8cd2-27d288f47f99",
    "name": "Example Customer",
    "documentNumber": "123456789",
    "phone": {
      "number": "123456789",
      "localizer": "12345678",
      "localizerExpiration": "2021-02-09T18:11:07Z"
    },
    "ordersCountOnMerchant": 1234
  },
  "items": [
    {
      "index": 0,
      "id": "f1e48636-4bf0-4656-bce8-0e2214fcd3d4",
      "name": "Example Item",
      "externalCode": "ex01",
      "ean": "12345678910",
      "unit": "G",
      "quantity": 12,
      "unitPrice": 0.12,
      "price": 1.44,
      "optionsPrice": 1.96,
      "totalPrice": 3.4,
      "observations": "This is an example item.",
      "options": [
        {
          "index": 0,
          "id": "acea6ac1-f595-4a6b-af00-cc2f1fa0886a",
          "name": "Example Option",
          "externalCode": "ex02",
          "ean": "12345678911",
          "unit": "UN",
          "quantity": 13,
          "unitPrice": 0.13,
          "price": 1.96
        }
      ]
    }
  ],
  "benefits": [
    {
      "value": 1.0,
      "sponsorshipValues": [
        {
          "name": "IFOOD",
          "value": 0.5
        },
        {
          "name": "MERCHANT",
          "value": 0.5
        }
      ],
      "target": "CART"
    },
    {
      "value": 0.5,
      "sponsorshipValues": [
        {
          "name": "IFOOD",
          "value": 0.5
        },
        {
          "name": "MERCHANT",
          "value": 0
        }
      ],
      "target": "ITEM",
      "targetId": "1"
    },
    {
      "value": 0.49,
      "sponsorshipValues": [
        {
          "name": "IFOOD",
          "value": 0
        },
        {
          "name": "MERCHANT",
          "value": 0.49
        }
      ],
      "target": "DELIVERY_FEE"
    }
  ],
  "total": {
    "subTotal": 3.4,
    "deliveryFee": 5.99,
    "benefits": 1.99,
    "orderAmount": 7.4
  },
  "payments": {
    "prepaid": 2.4,
    "pending": 5,
    "methods": [
      {
        "value": 5,
        "currency": "BRL",
        "method": "CASH",
        "type": "OFFLINE",
        "prepaid": false
      },
      {
        "value": 2.4,
        "currency": "BRL",
        "method": "MEAL_VOUCHER",
        "type": "ONLINE",
        "prepaid": true
      }
    ]
  },
  "test": false
}

Impressão (comanda)

A comanda (versão impressa do pedido) pode ser útil para a operação da loja durante o preparo do pedido e é essencial para que o entregador (entrega própria) possa localizar o endereço do cliente.

Segue template padrão da comanda:

Comanda

Outros conteúdos que podem ser do seu interesse: