Skip to Content
API de integração — v1
Autenticação

Autenticação

A API usa chaves de API por empresa. Toda requisição autenticada envia a chave no header Authorization, no esquema Bearer:

Authorization: Bearer ck_live_xxxxxxxxxxxxxxxxxxxxxxxx

Gerando uma chave

  1. No painel, acesse Chaves de API no menu lateral.
  2. Clique em Nova chave, dê um nome e selecione os escopos.
  3. Copie o segredo na hora — ele é exibido uma única vez. Guardamos apenas um hash (Argon2id + pepper, o mesmo esquema das senhas); não é possível recuperar a chave depois.

Formato da chave

ck_<ambiente>_<lookupId>_<secret>
  • ambiente: live ou test (rótulo lógico).
  • lookupId: identificador público que localiza a chave.
  • secret: a parte secreta, verificada via hash.

Escopos

Restringem o que a chave pode fazer. Uma chave sem escopos tem acesso total dentro da empresa — com uma exceção, o financeiro (abaixo).

EscopoPermite
documents:readLer documentos fiscais, baixar XML/DANFE e consultar inutilizações
documents:writeEmitir / cancelar documentos e inutilizar numeração
companies:readLer dados da empresa
webhooks:readListar endpoints de webhook e entregas
webhooks:writeCriar / alterar / remover endpoints de webhook
tax-rules:readListar / detalhar regras tributárias
tax-rules:writeCriar / alterar / remover regras tributárias
clients:readListar / detalhar clientes
clients:writeCriar / alterar / remover clientes
carriers:readListar / detalhar transportadoras e a frota de cada uma
carriers:writeCriar / alterar / remover transportadoras e veículos da frota
products:readListar / detalhar produtos, com a tributação própria de cada um
products:writeCriar / alterar / remover produtos, incluindo a tributação própria (CST/CSOSN, ICMS-ST, crédito do Simples, PIS/COFINS/IPI) e o CEST
templates:readListar / detalhar templates fiscais
templates:writeCriar / alterar / remover templates fiscais da empresa
finance:readLer contas a pagar / receber, aging, inadimplentes e projeção de caixa
finance:writeLançar contas, dar baixa e estornar

O financeiro é opt-in explícito

finance:read e finance:write não são concedidos pela regra do “sem escopos = acesso total”. A chave precisa carregá-los literalmente, e só um administrador da empresa pode criar uma chave com eles.

São duas razões independentes:

  • toda chave criada antes de o módulo existir foi emitida por alguém que nunca viu a tela de Contas a pagar/receber — conceder retroativamente daria à chave um poder que ninguém escolheu dar;
  • dentro do app, o Financeiro é restrito aos administradores. Sem esta exceção, qualquer membro criaria uma chave irrestrita e leria pela API o que a tela lhe nega.

Vale também para o MCP por OAuth: os escopos de financeiro só entram no token quando quem autorizou é administrador da empresa escolhida.

Além do escopo, a empresa precisa ter o módulo Financeiro contratado — sem ele os endpoints respondem 403 feature_not_enabled (nunca uma lista vazia).

Boas práticas

  • Use uma chave por integração — facilita revogar sem afetar as demais.
  • Conceda somente os escopos necessários.
  • Revogue chaves comprometidas imediatamente (a revogação é instantânea).
  • Nunca exponha a chave no front-end; mantenha-a apenas no servidor.

Erros de autenticação

StatuscodeSignificado
401missing_api_keyHeader Authorization ausente
401invalid_api_keyChave inválida, revogada ou expirada
403insufficient_scopeA chave não tem o escopo exigido
Last updated on