Takeat
Versão da documentação
RestauranteCardápio

Nova API V1.0 · Referência

Consultar cardápio publicado

Retorna as seções vendidas ao cliente, seus produtos e, opcionalmente, os grupos de complementos. Com OAuth, exige o escopo `menu:read`; a sessão do restaurante também é aceita sem escopos de integração. O contrato remove registros excluídos, categorias de embalagem e espelhos internos do iFood. Preços, disponibilidade e apresentação são agrupados em objetos. `pricing.resolved.base` aplica a prioridade dos preços do canal; `pricing.resolved.minimum` soma as escolhas obrigatórias. Disponibilidade avalia canal, horários, esgotamento e escolhas válidas. Não retorna objeto de restaurante nem aliases do contrato anterior. Não substitui validação de checkout, abertura da loja ou capacidade de entrega.

Console de requisiçõesConfigure os dados, envie e inspecione a resposta.
GETProxy seguro
RequisiçãoEdite os campos antes de enviar
GET
/v1/menu

Retorna as seções vendidas ao cliente, seus produtos e, opcionalmente, os grupos de complementos. Com OAuth, exige o escopo menu:read; a sessão do restaurante também é aceita sem escopos de integração.

O contrato remove registros excluídos, categorias de embalagem e espelhos internos do iFood. Preços, disponibilidade e apresentação são agrupados em objetos. pricing.resolved.base aplica a prioridade dos preços do canal; pricing.resolved.minimum soma as escolhas obrigatórias. Disponibilidade avalia canal, horários, esgotamento e escolhas válidas. Não retorna objeto de restaurante nem aliases do contrato anterior. Não substitui validação de checkout, abertura da loja ou capacidade de entrega.

Authorization

bearerAuth
AuthorizationBearer <token>

Access token OAuth obtido em POST /oauth/token ou sessão autenticada do restaurante emitida pelo login Takeat. Tokens OAuth exigem os escopos de cada operação. A sessão não usa escopos de integração e fica limitada ao restaurant_id assinado. Chaves tk_ não são aceitas.

In: header

Query Parameters

restaurant_id?integer

Omitido para sessões de restaurante ou credenciais com uma única loja. Obrigatório quando uma chave ou autorização OAuth multilojas, ou um parceiro, cobre várias lojas. É validado contra as lojas atualmente autorizadas pela credencial. Em uma sessão, um valor diferente do restaurant_id assinado responde 403.

channel?string

Canal que define disponibilidade e preço efetivo.

only_available?boolean

Quando true, remove itens inelegíveis, esgotados, grupos inutilizáveis e seções vazias. False preserva-os com availability.resolved.reason.

category_id?integer

Restringe a resposta a uma categoria.

search?string

Busca por nome e descrição, sem diferenciar acentos ou caixa.

brand_id?integer

Restringe às categorias da marca, sempre dentro do restaurante autorizado.

scheduled_at?string

Instante ISO 8601 com Z ou offset explícito; exige channel=delivery. Avalia horários e permissão de agendamento do produto. Sem este parâmetro, usa o instante atual e o canal imediato.

include_complements?boolean

Inclui grupos e opções. False omite a propriedade, mas mantém os mesmos cálculos de preço e disponibilidade.

include_fiscal_info?boolean

Inclui fiscal em cada produto, sem alias fiscal_info nem metadados internos.

Response Body

application/json

application/json

application/json

application/json

Listar marcas do restaurante GET

OAuth exige brands:read; também aceita sessão autenticada de restaurante. Retorna marcas não excluídas, ativas ou inativas, ordenadas por padrão primeiro, nome e id. Não expõe credenciais fiscais nem cursor de distribuição.

Listar sessões de comanda GET

Retorna comandas abertas e fechadas com contas, pedidos, pagamentos e dados fiscais. O intervalo máximo é de três dias e as datas são UTC. Com OAuth, exige o escopo `table-sessions:read`; a sessão do restaurante também é aceita sem escopos de integração. A resposta preserva o contrato publicado: chaves `snake_case`, valores monetários como strings com escala e relações aninhadas. `status_timings` sempre está presente e agrupa os horários persistidos do ciclo do pedido. Etapas ainda não atingidas retornam `null`; a API não infere transições ausentes nem calcula durações. `bills[].buyer.delivery_address` é o destino selecionado pela sessão por `buyer_delivery_address_id`, nunca um endereço arbitrário do cadastro do comprador. Retorna null para sessões sem entrega, retirada, destino ausente ou de outro restaurante; um comprador ausente também permanece null. `motoboy_id` filtra pelo entregador atribuído à sessão, dentro do mesmo restaurante, mantendo todos os pedidos aninhados. Pode ser combinado com `brand_id`; as datas continuam obrigatórias. IDs sem correspondência ou de outro restaurante retornam lista vazia. `motoboy_id` e `motoboy` sempre estão presentes. O objeto contém apenas `id`, `name` e `phone`, com contatos anuláveis. Ambos retornam null para vínculos ausentes ou contraditórios, inclusive de outro restaurante. Atribuições históricas permanecem disponíveis para entregadores arquivados. `intended_payments` sempre está presente e concentra `payment_method`, `change_for`, `is_prepaid` e `ifood_paid`, mesmo antes de existir um pagamento. A forma é uma intenção; no checkout nativo, `change_for` representa "troco para", não troco já devolvido. `payments` continua contendo somente os pagamentos registrados. `session_number` é a sequência anulável da comanda no restaurante, distinta do ID interno e de `attendance_password`.