Pular para o conteúdo

Getting Started

Autenticação

Como autenticar suas chamadas à API com a Chave de Acesso e o token do cliente.

Toda chamada à API pública (emissão, consulta, gestão de clientes) é autenticada por duas credenciais em conjunto:

  • Chave de Acesso — identifica a sua conta. Enviada no header X-Access-Key.
  • Chave de API (token do cliente) — identifica a empresa/tenant e o ambiente (homologação ou produção) usados na chamada. Enviada no header Authorization, como Bearer token.
X-Access-Key: nfe_access_SUA_CHAVE_DE_ACESSO_AQUI
Authorization: Bearer nfe_test_SUA_CHAVE_AQUI

A rota só autentica com as duas presentes — uma sem a outra resulta em 401 Unauthorized.

Uma terceira credencial, a Chave Restrita, é exigida além dessas duas só em um endpoint específico, de altíssimo privilégio — veja O que é a Chave Restrita.

Sua Chave de Acesso identifica a sua conta em toda chamada à API pública. Ela é diferente do token de cada cliente (nfe_test_/nfe_live_): a rota só autentica com as duas juntas — a Chave de Acesso (sua conta) e o token do tenant (qual cliente usar).

Gerencie suas Chaves de Acesso em Suas Chaves de Acesso, no Painel do Desenvolvedor: crie uma nova, veja o valor de uma existente ou regenere-a se ela vazar. Regenerar invalida imediatamente a chave anterior — qualquer integração que ainda a use passa a receber 401 Unauthorized.

No testador de integração do painel

No testador de integração de cada cliente, o header X-Access-Key já é preenchido automaticamente por você — não é preciso informá-lo lá. Isso só se aplica ao testador; chamadas feitas pela sua aplicação (REST puro ou SDKs) sempre precisam enviar os dois headers explicitamente.

Authorization: Bearer nfe_test_xxxxxxxxxxxxxxxxxxxxxxxx
  1. Faça login no Painel do Desenvolvedor.
  2. Cadastre uma empresa (é nela que ficam o certificado digital e a configuração fiscal — UF, ambiente, CSC/CSC ID quando aplicável).
  3. Gere uma chave de API para essa empresa.

O prefixo da própria chave já define o ambiente da SEFAZ usado nas emissões feitas com ela — não existe um parâmetro separado de ambiente na requisição:

Prefixo Ambiente
nfe_test_... Homologação
nfe_live_... Produção

Uma chave de API está sempre associada a uma única empresa. Diferente de outras APIs, você não precisa (nem deve) enviar nenhum identificador de tenant/empresa nas requisições — isso é resolvido automaticamente a partir da combinação da Chave de Acesso (sua conta) com a chave de API usada (qual empresa, dentro da sua conta).

Pelo mesmo motivo, o certificado digital nunca é enviado nas chamadas de emissão — ele fica armazenado de forma criptografada e associado à empresa no momento do cadastro, não ao payload de cada requisição.

Chave de Acesso ausente ou inválida:

{
"statusCode": 401,
"message": "Chave de Acesso (X-Access-Key) ausente ou inválida.",
"error": "Unauthorized"
}

Chave de API (Bearer token) ausente, inválida ou revogada:

{
"statusCode": 401,
"message": "Chave de API (Bearer Token) ausente ou inválida.",
"error": "Unauthorized"
}