Começar

Autenticação

Toda chamada autenticada usa HTTP Basic Auth. O usuário é o token da empresa e a senha fica em branco. Não use Bearer token nem chave em header separado.

De onde vem o token

O token é gerado no painel, por empresa e por ambiente (homologação ou produção). Um token inativo, de outra empresa ou de outro ambiente não autentica a chamada.

Como enviar o token

No header Authorization, envie Basic seguido de token: em Base64 (token + dois-pontos + senha vazia). Em cURL, o atalho é -u "SEU_TOKEN:".

Header
Authorization: Basic base64(SEU_TOKEN:)
cURL
curl -X GET "https://api.nfintegrada.com.br/v2/nfe/pedido-1001" \
  -u "SEU_TOKEN:"

Exemplo em PHP

PHP
$ch = curl_init('https://api.nfintegrada.com.br/v2/nfe/pedido-1001');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, 'SEU_TOKEN:');
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$response = curl_exec($ch);
$http = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

Exemplo em JavaScript

JavaScript
fetch('https://api.nfintegrada.com.br/v2/nfe/pedido-1001', {
  headers: {
    'Authorization': 'Basic ' + btoa('SEU_TOKEN:')
  }
}).then(function (res) {
  return res.json();
});

Ambiente do token

O token carrega o ambiente. Não existe um host separado obrigatório para homologação: o mesmo endpoint emite em homologação ou produção conforme o token usado.

Ambiente do tokenEfeito
HHomologação. A nota não tem valor fiscal. A SEFAZ e o XML usam as regras de teste.
PProdução. A NF-e é válida fiscalmente.

Erros de autenticação

Se o token não for aceito, a API responde JSON e envia o header WWW-Authenticate: Basic realm="NF Integrada API".

HTTPCódigoQuando ocorre
401token_invalidoToken não enviado, inválido ou inativo.
401empresa_inativaA empresa do token não existe ou está inativa.
403documento_nao_habilitadoA empresa autenticou, mas a NF-e não está habilitada para ela.
Response 401
{
    "codigo": "token_invalido",
    "mensagem": "Informe o token no HTTP Basic Auth (usuário = token, senha em branco)."
}
Não envie o token no JSON

O corpo da requisição é só o documento fiscal. Credencial vai exclusivamente no HTTP Basic.