Documentação
Status e funcionalidades do restaurante
Descubra quais tutoriais oferecer a cada restaurante, com autorização e sem expor dados de conta.
Consulte GET /v1/restaurants/features com um access token OAuth que contenha
restaurants:read, ou com a sessão autenticada do próprio restaurante.
Chaves tk_ precisam ser trocadas por um token em /oauth/token antes da consulta.
A permissão é de leitura e não permite ativar ou desativar recursos.
GET /v1/restaurants/features?restaurant_id=123
Authorization: Bearer {access_token}A seleção segue as outras rotas de dados: uma única loja autorizada pode ser
inferida; credenciais de várias lojas ou com acesso universal exigem
restaurant_id. O ID deve pertencer à autorização atual. Sessões de restaurante
usam exclusivamente o ID assinado, rejeitando uma loja diferente na query.
Tokens de garçom e sessões de administrador não são aceitos nesta rota.
Resposta
O objeto contém exatamente estes campos:
| Campo | Significado |
|---|---|
restaurant_id | ID numérico do restaurante autorizado. |
is_active | Valor de restaurants.is_active. Indica a ativação da conta, independentemente do horário de funcionamento. |
operation_type | delivery-only, delivery-and-balcony ou delivery-balcony-and-tables, com a mesma precedência do backend legado. |
features | Objeto com 26 capacidades exportáveis distribuídas nos cinco grupos abaixo. Preserva a configuração de contas inativas e aplica as regras descritas abaixo. |
available_features | Lista plana dos identificadores com valor true nos grupos de features quando a conta está ativa. Sempre [] para uma conta inativa. |
Para decidir qual tutorial exibir, use, por exemplo:
const showReservationsTutorial = response.available_features.includes('reservations');A leitura ocorre no banco primário, sem cache, com Cache-Control: no-store.
Não retorna o objeto completo do restaurante, dados de clientes, informações de
cobrança ou credenciais de integrações. Restaurantes inexistentes e excluídos
retornam 404 restaurant_not_found. Um restaurante inativo continua retornando
200 quando a credencial ainda possui autorização válida; vínculos revogados
ou removidos continuam sendo recusados pelas regras de autenticação existentes.
Grupos e identificadores para tutoriais
features contém exatamente operation, payments, offline, delivery e
additional_features. Todas as flags são booleanas, incluindo as desabilitadas.
available_features continua sendo uma lista plana de identificadores; não usa
nomes de grupos nem caminhos como operation.table_service.
Operação: operation
| Identificador | Funcionalidade |
|---|---|
table_service | Atendimento por mesas/comandas |
counter | Balcão |
drive_thru | Drive-thru |
dispatch_app | App de despacho |
dark_kitchen | Múltiplas marcas (Dark Kitchen) |
totem | Totem |
tablet | Tablet |
pinpad | TEF no balcão |
input | Cadastro de insumos |
credit_register | Crediário |
fiscal_ai | Assistência fiscal por IA |
fiscal | Emissão fiscal |
whatsapp_automation | Automação de WhatsApp |
Payments: payments
| Identificador | Funcionalidade |
|---|---|
online_pix | PIX online |
online_credit_card | Cartão online |
online_payment | PIX ou cartão online habilitado |
stock | Estoque |
Operação offline: offline
| Identificador | Funcionalidade |
|---|---|
offline_operation | Permissão para ativar a operação offline, sem informar o estado dos equipamentos |
Delivery: delivery
| Identificador | Funcionalidade |
|---|---|
delivery_routing | Roteirização de entregas |
Recursos adicionais: additional_features
| Identificador | Funcionalidade |
|---|---|
reservations | Reservas |
labels | Etiquetas de manipulados |
balance | Balança |
turnstile | Catraca |
multilinks | MultiLinks |
cashback | Clube/cashback |
crm | CRM disponível, sem expor versão ou plano |
table_service identifica a capacidade de atendimento por mesas/comandas. Seu
valor é calculado pelo modo de operação; não é uma contagem nem uma consulta à
existência de mesas. A chave de cadastro de insumos é input, no singular.
stock pertence ao grupo payments neste contrato.
Exemplo completo
Exemplo ilustrativo de uma conta ativa com todas as capacidades configuradas:
{
"restaurant_id": 123,
"is_active": true,
"operation_type": "delivery-balcony-and-tables",
"features": {
"operation": {
"table_service": true,
"counter": true,
"drive_thru": true,
"dispatch_app": true,
"dark_kitchen": true,
"totem": true,
"tablet": true,
"pinpad": true,
"input": true,
"credit_register": true,
"fiscal_ai": true,
"fiscal": true,
"whatsapp_automation": true
},
"payments": {
"online_pix": true,
"online_credit_card": true,
"online_payment": true,
"stock": true
},
"offline": {
"offline_operation": true
},
"delivery": {
"delivery_routing": true
},
"additional_features": {
"reservations": true,
"labels": true,
"balance": true,
"turnstile": true,
"multilinks": true,
"cashback": true,
"crm": true
}
},
"available_features": [
"table_service",
"counter",
"drive_thru",
"dispatch_app",
"dark_kitchen",
"totem",
"tablet",
"pinpad",
"input",
"credit_register",
"fiscal_ai",
"fiscal",
"whatsapp_automation",
"online_pix",
"online_credit_card",
"online_payment",
"stock",
"offline_operation",
"delivery_routing",
"reservations",
"labels",
"balance",
"turnstile",
"multilinks",
"cashback",
"crm"
]
}const hasTableService = response.features.operation.table_service;
const hasInputs = response.features.operation.input;
const showReservationsTutorial = response.available_features.includes('reservations');A resposta usa uma lista explícita de capacidades exportáveis. Controles de
rollout, detalhes de implementação e configuração técnica interna ficam fora da
resposta e da lista de funcionalidades disponíveis. Não existe parâmetro para
incluí-los. O indicador crm agrega o acesso disponível sem identificar versão
ou plano. offline_operation informa a permissão de ativação do produto e não
indica que a loja esteja operando offline neste momento.
O modo de operação determina balcão e mesas. online_payment é verdadeiro
quando PIX ou cartão online está habilitado. Configurações ausentes retornam
false conservadoramente.
Este é um catálogo de capacidades configuradas para orientar tutoriais. Não valida horário de abertura, estado dos provedores de pagamento, credenciais ou configuração completa de integrações, limites de equipamentos e permissões individuais do operador. Também não concede escopos para chamar outras rotas. Apps devem ignorar identificadores novos que ainda não conhecem.
Habilitar a permissão em um app existente
Adicione explicitamente restaurants:read à definição da chave ou app. Para apps
OAuth, a alteração de escopos segue a política existente de invalidação de
instalações e tokens; o dono precisa revisar o consentimento e reconectar.
Para chaves REST do restaurante, salve a nova permissão e troque a mesma chave
por um novo token. Atualizar ou renovar um token antigo não adiciona permissões.