Comece em 5 minutos
- Entre no painel do desenvolvedor e copie sua Chave de Acesso (
nfe_access_...), em "Suas Chaves de Acesso". - Cadastre uma empresa (é nela que ficam o certificado digital e a configuração fiscal) e gere a chave de API dela. Comece pela de homologação, que começa com
nfe_test_. - Emita a primeira nota. A resposta é
202 Acceptedcom oinvoiceId:
curl -X POST https://app.nfe.tenzanlabs.com/v1/nfe/emit \
-H "X-Access-Key: nfe_access_SUA_CHAVE_DE_ACESSO_AQUI" \
-H "Authorization: Bearer nfe_test_SUA_CHAVE_AQUI" \
-H "Content-Type: application/json" \
-d '{
"mod": "55",
"natureza_operacao": "Venda de Mercadoria",
"data_emissao": "2026-08-19T12:00:00-03:00",
"tipo_documento": "1",
"local_destino": "1",
"finalidade_emissao": "1",
"consumidor_final": "1",
"presenca_comprador": "1",
"modalidade_frete": "9",
"veiculo_placa": "",
"agropecuario_tipo_guia": "",
"cnpj_emitente": "12345678000199",
"inscricao_estadual_emitente": "123456789",
"nome_destinatario": "João da Silva",
"cpf_destinatario": "11122233344",
"itens": [{
"codigo_produto": "123",
"descricao": "Caneta Azul",
"codigo_ncm": "96081000",
"cfop": "5102",
"unidade_comercial": "UN",
"quantidade_comercial": 10,
"valor_unitario_comercial": 2.50,
"icms_origem": "0",
"icms_situacao_tributaria": "102",
"pis_situacao_tributaria": "07",
"cofins_situacao_tributaria": "07"
}]
}'{
"message": "Documento enfileirado para processamento",
"invoiceId": "35f0a1b2-...",
"accessKey": "35260812345678000199550010000000011000000018"
}A emissão é assíncrona: 202 só confirma que o documento entrou na fila. Consulte o status até deixar de ser PENDENTE; uma rejeição da Sefaz aparece nessa consulta, não como erro HTTP.
curl https://app.nfe.tenzanlabs.com/v1/nfe/35f0a1b2-... \
-H "X-Access-Key: nfe_access_SUA_CHAVE_DE_ACESSO_AQUI" \
-H "Authorization: Bearer nfe_test_SUA_CHAVE_AQUI"Guia completo, passo a passo, em Emitindo uma NFe.
Chaves de API e autenticação
URL base da API: https://app.nfe.tenzanlabs.com. Toda chamada envia duas credenciais em conjunto:
| Credencial | Header | Identifica |
|---|---|---|
| Chave de Acesso | X-Access-Key | A sua conta. Gere e regenere no painel. |
| Chave de API (token) | Authorization: Bearer | A empresa e o ambiente. nfe_test_... ou nfe_live_.... |
| Chave Restrita | X-Restricted-Key | Só para obter os tokens de um cliente pela API. Trate como a senha da conta. |
Sem as duas primeiras, a resposta é 401. Detalhes em Autenticação e formatos de erro em Erros.
Sandbox (homologação)
O ambiente é definido pelo prefixo da chave, não por um parâmetro: nfe_test_... emite em homologação e nfe_live_... em produção. O sandbox emula os webservices estaduais para você testar o fluxo de ponta a ponta, sem precisar de um certificado A1 antes de ir para produção. Todos os planos têm 30 dias de período de teste; veja valores e créditos em Preços.
Referência da API
Cada página traz parâmetros, respostas e exemplos em cURL, Node.js, Python e Java.
- NF-e e NFC-e: emitir, consultar, cancelar, corrigir, inutilizar, DANFE etiqueta e eventos (ator interessado, insucesso na entrega, e-CONF).
- CT-e: emitir e consultar.
- MDF-e: emitir, consultar, encerrar, incluir condutor e incluir DF-e.
- NFCom: emitir e consultar.
- DC-e: emitir e consultar.
- NFS-e: emitir e consultar (padrão nacional).
- Clientes: criar, listar e consultar clientes; obter tokens.
- Status do serviço: disponibilidade da Sefaz por tipo de documento.
Especificação OpenAPI
O contrato completo da API, em OpenAPI 3.1, está em /openapi.json. Importe no Postman, no Insomnia ou no Swagger UI, ou gere um cliente na sua linguagem. A especificação é gerada a partir desta mesma documentação a cada publicação, então não diverge dela.
SDKs oficiais
Bibliotecas cliente para Node.js, Python e Java, com o mesmo padrão de uso. Instalação e exemplos em SDKs oficiais.
npm install @tenzanlabs/nfe-node-sdk # Node.js
pip install tenzan-nfe-python-sdk # Python
# Java: io.github.tenzan-labs:nfe-java-sdk:2.0.0 (Maven)Para agentes de IA
/llms.txt: quando usar a TenzanNFE, como chamar a API e os principais links.- Toda página tem uma versão em markdown: envie
Accept: text/markdownou acrescenteindex.mdao caminho. /sitemap.xmllista todas as páginas.- Neste site, qualquer caminho inexistente devolve
404; comAccept: application/jsono erro vem em JSON, comcodeehint.
curl -H "Accept: text/markdown" https://nfe.tenzanlabs.com/reference/nfe/emitir/
curl https://nfe.tenzanlabs.com/openapi.json
curl https://nfe.tenzanlabs.com/llms.txtSuporte
Confira o status do serviço antes de abrir um chamado. Para dúvidas, planos e privacidade, veja Contato ou escreva para admin@tenzanlabs.com.
