Documentação
Aplicativos para garçons
OAuth pessoal e oito consultas públicas para apoiar o atendimento presencial.
O aplicativo escolhe Garçom no cadastro na Takeat Store. Esse perfil usa Authorization Code com PKCE S256 e uma autorização pessoal. A conta do garçom e sua loja acompanham o token. Dois garçons da mesma loja podem conectar e revogar o mesmo app de forma independente.
| Perfil | Quem autoriza | Recursos disponíveis |
|---|---|---|
| Restaurante | Responsável pelo restaurante | Catálogo e recursos de gestão da loja, com suas permissões próprias |
| Garçom | O próprio garçom | Oito consultas GET para apoiar o atendimento presencial |
Os perfis têm permissões separadas. O perfil é imutável: registre clientes distintos quando precisar de outra identidade. Uma chave de API ou o fluxo client credentials não representa um garçom.
Autorizar e conectar
- Cadastre um app com
authorizationProfile: "waiter", redirects exatos e somente as permissões de leitura necessárias. - Gere
state,code_verifierecode_challengeS256 novos e abra o portal Takeat com os parâmetros do fluxo OAuth. - O portal apresenta o login de garçom, sua conta, a loja e as permissões. O aplicativo não coleta a senha nem a sessão humana.
- Valide o
stateno callback e troque o código por tokens emPOST /oauth/token, comgrant_type=authorization_codee o verifier original. - Use
Authorization: Bearer <ACCESS_TOKEN>nas consultas abaixo. A emissão incluiauthorization_profile: "waiter"esubject: { type, id, restaurantId }; preserve essa identidade ao armazenar a conexão. - Renove em
POST /oauth/token, comgrant_type=refresh_token, e substitua o refresh token a cada renovação. UsePOST /oauth/revokepara revogar uma credencial. O garçom também pode desconectar o app no portal Takeat.
As ações de consentir, retomar e desconectar uma conta usam a sessão humana somente dentro do portal Takeat. Elas não fazem parte do catálogo de recursos de terceiros.
Consultas disponíveis
Todos os métodos desta seção são GET e não aceitam corpo. A loja vem da concessão pessoal: não envie restaurant_id, restaurantId, waiter_id ou outra identidade.
| Método | Recurso | Permissão |
|---|---|---|
GET /v1/waiter/me | Seu identificador, nome de exibição e restaurante | waiter:profile:read |
GET /v1/waiter/menu | Cardápio publicado para atendimento presencial | waiter:menu:read |
GET /v1/waiter/brands | Identificadores e nomes das marcas ativas | waiter:menu:read |
GET /v1/waiter/tables | Identificação, número, tipo e situação das mesas | waiter:tables:read |
GET /v1/waiter/table-sessions | Comandas presenciais ativas e totais reduzidos | waiter:sessions:read |
GET /v1/waiter/table-sessions/:sessionId | Uma comanda ativa, suas contas e itens reduzidos | waiter:sessions:read |
GET /v1/waiter/orders | Itens e situação dos pedidos presenciais ativos das últimas 48 horas | waiter:orders:read |
GET /v1/waiter/order-baskets/:orderBasketId | Itens e escolhas de um pedido presencial ativo | waiter:orders:read |
As listas de marcas, mesas, comandas e pedidos retornam { items, offset, limit, has_more }, ordenadas por ID, com páginas de até 100 itens. Envie offset=100 para a segunda página. O cardápio usa o contrato de catálogo publicado, com canal presencial, escolhas incluídas, somente itens disponíveis e sem dados fiscais. Seu único seletor opcional é brand_id, de uma marca ativa da loja.
As consultas de comandas e pedidos consideram o atendimento presencial ativo da loja do garçom, compartilhado entre os integrantes da equipe. Não são um histórico de vendas nem ficam restritas aos pedidos criados por aquele garçom. IDs ausentes, de outra loja ou fora desse atendimento recebem o mesmo 404.
Dados e limites de acesso
As respostas declaram os campos permitidos, inclusive nos objetos internos. Dados pessoais dos clientes, documentos, contatos, observações livres, chaves de sessão ou QR, senhas, configuração de terminais/impressoras e payloads de pagamentos ou provedores ficam fora dessa API. Os valores financeiros publicados se limitam aos preços dos itens e totais das comandas/contas ativas.
Este perfil não oferece criação ou alteração de pedidos, pagamentos, descontos, taxas, gorjetas, emissão fiscal, transferência ou encerramento de comandas, administração da equipe ou configuração operacional. As antigas rotas operacionais e suas permissões foram retiradas, inclusive o GET que cancelava uma pendência de POS. POST, PUT, PATCH e DELETE nos recursos acima retornam 404.
A API verifica a autorização e o vínculo ativo com a loja antes da consulta. Garçons removidos, protegidos ou movidos de loja perdem acesso. Permissões retiradas não continuam válidas em tokens antigos; o app precisa usar o catálogo atual e obter novo consentimento. Respostas usam Cache-Control: no-store.
A referência dos métodos separa Restaurante e Garçom, com categorias próprias. A coleção Postman de garçom contém somente as oito consultas e os exemplos de troca de código e renovação, sem credenciais salvas.