Endpoints NF-e
Emitir, enviar, consultar, XML, DANFE, devoluções, cancelar, CC-e e inutilizar.
Referência completa e detalhada dos endpoints REST da NFER para NF-e (Nota Fiscal Eletrônica — Modelo 55) e DC-e. A API permite emitir notas fiscais, gerar arquivos XML e DANFE PDF (A4), gerenciar devoluções de e-commerce, cancelamentos e cartas de correção (CC-e) com sincronização direta na SEFAZ. Para emissão de Cupom Fiscal Eletrônico (Modelo 65), consulte a seção dedicada de Endpoints NFC-e.
Ciclo de Vida da NF-e (Como Emitir)
A emissão na NFER é projetada para ser rápida, resiliente e imune a lentidões da SEFAZ. O fluxo é dividido em 3 etapas simples:
Criar Rascunho
Gera o rascunho da nota, calcula impostos e reserva o próximo número sequencial. Responde 201 Created em ~50ms.
Enfileirar Envio
Assina com o certificado A1 e envia à SEFAZ via fila assíncrona. Responde 202 Accepted imediatamente.
Obter Resultado
Seu backend recebe o webhook nfe.autorizada com a chave de 44 dígitos e o protocolo, ou faz polling em GET /v1/nfe/:id.
Por que a transmissão (/send) é assíncrona?
Tabela Geral de Endpoints
| Método | Endpoint | Descrição | Status HTTP |
|---|---|---|---|
| POST | /v1/nfe | Cria rascunho de NF-e (modelo 55) com número reservado | 201 Created |
| POST | /v1/nfe/:id/send | Assina e envia a nota para autorização na SEFAZ | 202 Accepted |
| GET | /v1/nfe/:id | Consulta dados completos da nota, status e itens | 200 OK |
| PUT | /v1/nfe/:id | Corrige dados de nota rejeitada mantendo o mesmo número | 200 OK |
| GET | /v1/nfe/:id/xml | Baixa o arquivo XML assinado e autorizado | 200 XML |
| GET | /v1/nfe/:id/danfe | Baixa o documento PDF do DANFE formatado | 200 PDF |
| POST | /v1/nfe/:id/devolucao | Gera rascunho automático de devolução/troca | 201 Created |
| POST | /v1/nfe/:id/cancel | Cancela nota fiscal autorizada (prazo SEFAZ de 24h) | 202 Accepted |
| POST | /v1/nfe/:id/correction-letter | Emite Carta de Correção Eletrônica (CC-e) | 202 Accepted |
| POST | /v1/nfe/inutilizar | Inutiliza faixa numérica não utilizada na SEFAZ | 200 OK |
| POST | /v1/nfe/batch | Emissão assíncrona em lote (até 50 notas) | 202 Accepted |
| POST | /v1/nfce | Cria rascunho de NFC-e (modelo 65 - Cupom) | 201 Created |
| POST | /v1/dce | Cria Declaração de Conteúdo Eletrônica (e-commerce) | 201 Created |
| GET | /v1/nfe | Lista notas emitidas com paginação e filtros de data | 200 OK |
| GET | /v1/sefaz/status | Status operacional do autorizador SEFAZ da UF | 200 OK |
| GET | /v1/sefaz/consulta-cadastro | Consulta de cadastro SEFAZ/Sintegra (IE, Razão Social e status) | 200 OK |
1. Criar Rascunho de NF-e (POST /v1/nfe)
Você pode passar o destinatário de duas formas: diretamente no corpo da requisição (customer) ou usando o ID de um cliente previamente cadastrado (customerId).
/v1/nfeCria o rascunho da NF-e, calcula os impostos pelos perfis fiscais e reserva o número.
Exemplo 1: Destinatário Inline (Recomendado para E-commerce)
Venda pela internet para consumidor final (não contribuinte), com frete e pagamento via PIX.
• indFinal: 1 = Consumidor final.
• indPres: 2 = Operação não presencial (internet).
• fiscalProfileId = Aplica tributação e CFOP configurados no painel.
Tabela de Parâmetros Principais (POST /v1/nfe)
| Campo | Tipo | Obrigatório | Descrição e Valores |
|---|---|---|---|
| customer | objeto | um dos dois | Dados cadastrais do cliente destinatário no próprio payload. |
| customerId | string (UUID) | um dos dois | ID de cliente já salvo no NFER (POST /v1/customers). |
| naturezaOperacao | string | sim | Ex.: "VENDA DE MERCADORIA", "DEVOLUCAO DE COMPRA", "REMESSA". |
| tipoOperacao | string ("0"|"1") | não (def. "1") | "1" = Saída (venda/remessa), "0" = Entrada (devolução/compra). |
| finalidade | number (1..4) | não (def. 1) | 1 = Normal, 2 = Complementar, 3 = Ajuste, 4 = Devolução. |
| serie | number | não (def. 1) | Série da nota fiscal na SEFAZ (ex.: 1). |
| indFinal | number (0|1) | não (def. 0) | 1 = Consumidor final (e-commerce e pessoa física), 0 = Revenda. |
| indPres | number (0..9) | não (def. 1) | 1 = Presencial, 2 = Internet/Não presencial, 9 = Outros. |
| itens | array | sim | Lista de itens. Requer codigo, descricao, ncm, quantidade e valorUnitario. |
| pagamentos | array | sim (opcional em devolução) | 01=Dinheiro, 03=Cartão Crédito, 04=Cartão Débito, 17=PIX, 90=Sem Pagamento. Em devolução (finalidade 4) e ajuste (3), é preenchido automaticamente com forma "90" e valor 0 se omitido. |
| valorFrete | number | não | Valor do frete somado automaticamente ao total da nota. |
| transporte | objeto | não | Modalidade do frete (modFrete: 0=Remetente, 1=Destinatário, 9=Sem frete). |
| informacoesAdicionais | string | não | Observações fiscais impressas no DANFE e gravadas no XML. |
| canal / plataforma / tag | string | não | Etiqueta opcional de canal de venda ou origem comercial (ex.: "Mercado Livre", "Shopify", "PDV Balcão", "Loja Física"). |
2. Transmitir para a SEFAZ (POST /v1/nfe/:id/send)
Dispara a assinatura digital com certificado A1 e o envio do lote para os servidores da SEFAZ estadual.
/v1/nfe/:id/sendEnfileira o envio para a SEFAZ. Responde HTTP 202 com status 'processando'.
Resposta imediata da fila:
3. Consultar Status e Dados (GET /v1/nfe/:id)
Retorna todos os dados da nota fiscal, incluindo chave de acesso de 44 dígitos, protocolo de autorização, valores calculados e mensagens de erro da SEFAZ caso tenha sido rejeitada.
/v1/nfe/:idRetorna o objeto completo da NF-e, status (rascunho, processando, autorizada, erro, cancelada).
4. Corrigir e Reenviar Nota com Erro (PUT /v1/nfe/:id)
Se a SEFAZ rejeitar a nota (ex: cStat 321 ou 539), nunca gere um novo rascunho. Atualize os dados da mesma nota usando PUT /v1/nfe/:id e chame /send novamente. Isso garante que o mesmo número sequencial seja utilizado, sem furos de numeração.
/v1/nfe/:idSubstitui os dados do rascunho ou de nota com erro para reenviar à SEFAZ.
5. Download de XML e DANFE PDF
Após a autorização na SEFAZ, o NFER armazena o XML protocolado e gera o DANFE em PDF de alta qualidade para impressão.
/v1/nfe/:id/xmlRetorna o XML oficial assinado e protocolado pela SEFAZ (Content-Type: application/xml).
/v1/nfe/:id/danfeGera o arquivo PDF do DANFE pronto para impressão (suporta ?formato=a4 ou ?formato=simplificado_tipo2).
/v1/nfe/:id/escposRetorna comandos binários ESC/POS para impressão térmica direta (suporta ?largura=80|58&cut=true&format=raw|base64).
Baixar XML Protocolado
O arquivo contém as tags <nfeProc> e <protNFe> exigidas pelo Fisco.
Baixar DANFE em PDF
Suporta formato tradicional folha A4 ou bobina térmica (Simplificado 2.0).
DANFE Simplificado Tipo 2 em Bobina Térmica — NT 2026.003 v1.00 (tpImp = 6)
Instituído pelo Ajuste SINIEF 13/2026 e regulamentado pela Nota Técnica NT 2026.003 v1.00, o DANFE Simplificado Tipo 2 permite imprimir a NF-e (modelo 55) em bobina contínua de impressora térmica (largura de 80mm ou 58mm).
Para quem é e por que usar: Varejistas, atacadistas com balcão de vendas, distribuidores, materiais de construção e autopeças. Em vez de operar com dois modelos fiscais e certificados separados (NFC-e para consumidor e NF-e para empresas), o estabelecimento unifica 100% das emissões na NF-e modelo 55, imprimindo o cupom térmico no balcão com agilidade para pessoas físicas ou jurídicas (com direito a crédito tributário de ICMS, IBS e CBS).
Estrutura das 9 Divisões Oficiais (NT 2026.003)
- Divisão I: Cabeçalho e dados do estabelecimento emitente
- Divisão II: Dados da NF-e (número, série, data/hora local e protocolo)
- Divisão III & III-A: Produtos, tributos totais e IBS/CBS/IS (Reforma)
- Divisão IV: Formas de pagamento, valores e troco
- Divisão V & VI: Chave de 44 dígitos e QR Code Versão 3
- Divisão VII: Identificação do destinatário (PJ ou PF)
- Divisão VIII: Mensagem fiscal de contingência (quando aplicável)
- Divisão IX: Mensagem do contribuinte (
infCple rodapé)
Especificações Técnicas no NFER
- • Campo
tpImp = 6: Sinaliza no XML da NF-e que o documento é emitido no formato Simplificado Tipo 2. - • QR Code Versão 3: Gerado com nível M de correção de erro (15%) e link oficial do Ambiente Nacional/Estadual.
- • Contingência com 2 Vias: Em contingência offline (
tpEmis = 9), a NT 2026.003 exige a impressão da Via do Consumidor e da Via do Estabelecimento. O NFER emite ambas automaticamente. - • Alinhamento do QR Code: Suporta alinhamento à esquerda (
?qr_position=esquerda- padrão NT) ou centralizado (?qr_position=centralizado).
Impressão Térmica Direta ESC/POS (PDVs, Totens e Balcão)
Para quem é e para que serve: Desenvolvido para desenvolvedores de Frente de Caixa (PDV), terminais de autoatendimento e sistemas de balcão. O ESC/POS é o protocolo binário nativo de impressoras térmicas não-fiscais (Epson, Elgin, Bematech, Daruma, etc.). Em vez de abrir a tela de PDF do navegador (Ctrl+P), seu sistema envia os bytes diretamente para a porta USB/Rede (/dev/usb/lp0 ou socket TCP), imprimindo em milissegundos com corte de guilhotina automático.
| Modelo Fiscal | Comportamento Padrão | Retorno de ESC/POS |
|---|---|---|
| NFC-e (Modelo 65) | Cupom fiscal de venda ao consumidor no varejo. | Sempre disponível no GET /v1/nfce/:id, no webhook nfe.autorizada e em /escpos. |
| NF-e (Modelo 55) em Bobina | Emitida com tpImp: 6 ou empresa com nfeDanfeFormat: "simplificado_tipo2". | Disponível no GET /v1/nfe/:id, no webhook nfe.autorizada e em /escpos. |
| NF-e (Modelo 55) Normal A4 | Layout padrão tradicional folha inteira A4 (B2B, atacado, frete). | Retorna null para escpos (apenas danfe_url em PDF A4). |
Como definir o formato padrão da sua empresa via API?
Você pode atualizar a empresa via PUT /v1/companies/:id enviando { "nfeDanfeFormat": "a4" } (padrão) ou { "nfeDanfeFormat": "simplificado_tipo2" } (bobina térmica 80mm). Na emissão individual, envie tpImp: 6 no body do POST /v1/nfe para forçar uma nota específica em bobina.
6. Nota de Devolução e Troca (E-commerce e Varejo) — NT 2025.002 (Regra VC02-14)
Quando um cliente pede troca ou devolução de um pedido cujo prazo de cancelamento (24h) já expirou, a legislação fiscal brasileira exige a emissão de uma Nota Fiscal de Devolução de Entrada (finalidade 4). Desde 01/09/2026, a SEFAZ exige estritamente a amarração de documento fiscal referenciado por item no grupo <DFeReferenciado> (regra VC02-14 da NT 2025.002), além de pagamento forma: "90" (Sem Pagamento, valor 0.00).
/v1/nfe/:id/devolucaoClona a nota original, inverte CFOPs (ex: 5102→1202), define tipo 0 (Entrada) e vincula nfeReferenciada.
| Cenário | O que fazer | Efeito Fiscal e Estoque |
|---|---|---|
| Devolução de Mercadoria | Emite NF-e de Entrada (tipo 0, finalidade 4) referenciando a chave da venda original. | Anula os impostos da venda original e registra a reentrada do item no estoque. |
| Troca de Produto no E-commerce | 1. Emite NF-e de Devolução (Entrada) 2. Emite nova NF-e de Saída para o item substituto. | Estorna contabilmente o item anterior e formaliza a remessa do novo produto com rastreio. |
| Atalho NFER (/devolucao) | POST /v1/nfe/:id/devolucao na nota autorizada. | O NFER preenche automaticamente tipo=0, finalidade=4, CFOPs de devolução e chave vinculada! |
7. Cancelamento de NF-e (POST /v1/nfe/:id/cancel)
O cancelamento só pode ser solicitado se a mercadoria ainda não saiu para entrega e dentro do prazo legal da SEFAZ estadual (geralmente 24 horas). A justificativa deve conter no mínimo 15 caracteres.
/v1/nfe/:id/cancelEnvia evento de cancelamento para a SEFAZ. Responde HTTP 202 com status 'processando'.
8. Carta de Correção Eletrônica — CC-e (POST /v1/nfe/:id/correction-letter ou /v1/nfe/:id/cce)
A Carta de Correção Eletrônica (CC-e) é usada para sanar erros simples em notas fiscais já autorizadas sem anular o documento original. O evento deve ser transmitido em até 720 horas (30 dias) após a autorização da NF-e.
✅ O que PODE ser corrigido via CC-e:
- Dados do transportador, placa do veículo, peso e volumes.
- CFOP ou CST (desde que não altere alíquotas ou valores fiscais).
- Descrição complementar do produto, código interno ou lote.
- Informações adicionais do contribuinte e endereço (complemento/número).
❌ O que NÃO PODE ser corrigido (Vedações SEFAZ):
- Valores totais, quantidade tributável, base de cálculo ou alíquotas.
- Mudança total do CNPJ/CPF ou Razão Social do destinatário/emitente.
- Data de emissão da nota ou data de saída da mercadoria.
/v1/nfe/:id/correction-letterAlias aceito: /v1/nfe/:id/cce. Mínimo 15 e máximo 1000 caracteres.
/v1/nfe/:id/dacceDownload/Visualização do PDF do Comprovante de CC-e (DACCE) em PDF.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
correcao | string | Sim | Texto explicativo com a correção (entre 15 e 1000 caracteres) |
sequencia | integer | Opcional | Sequência da CC-e (1 a 20). Se omitido, o NFER calcula e incrementa automaticamente. |
Comprovante DACCE e XML do Evento
GET /v1/nfe/:id/dacce (ou alias GET /v1/nfe/:id/cce/pdf). O XML do evento fica vinculado à NF-e em GET /v1/nfe/:id.Regra da Consolidação (SEFAZ)
9. Inutilização de Numeração (POST /v1/nfe/inutilizar)
Se houve uma quebra na sequência de numeração fiscal (ex: pulou do número 105 para o 110 por falha interna do ERP ou interrupção de rede), você deve justificar a inutilização desses números perante a SEFAZ até o 10º dia do mês seguinte para evitar autuações fiscais.
Modelos suportados: NF-e (modelo: "55"), NFC-e (modelo: "65") e CT-e (modelo: "57", também disponível via POST /v1/cte/inutilizar). Documentos de serviço (NFS-e Nacional / ADN) e Declaração de Conteúdo (DC-e) não possuem evento fiscal de inutilização na legislação brasileira.
/v1/nfe/inutilizarInutiliza faixa de números na SEFAZ (síncrono). Suporta modelos 55, 65 e 57.
10. Emissão em Lote (POST /v1/nfe/batch)
Permite enviar até 50 notas de uma única vez para processamento paralelo de alta velocidade. Ideal para fechamento de vendas diárias ou expedições de e-commerce.
/v1/nfe/batchEnvia lista de payloads (mesmo JSON de POST /nfe). Responde 202 com batchId.
/v1/nfe/batch/:batchIdAcompanha o progresso do lote e o status de cada nota.
11. NFC-e — Cupom Fiscal Eletrônico (Modelo 65)
Para ponto de venda (PDV) e frente de caixa. O destinatário é opcional (venda anônima no balcão). Para emissões com CPF na nota, envie o objeto customer (com CPF e nome) inline no payload, ou referencie um customerId existente. Requer o CSC (nfceIdCsc e nfceTokenCsc) configurado no cadastro da empresa.
/v1/nfceCria rascunho de cupom NFC-e modelo 65.
/v1/nfce/:id/sendEnvia o cupom para autorização na SEFAZ.
/v1/nfce/:idConsulta a NFC-e. Quando autorizada, retorna os links de XML, DANFE e comandos ESC/POS em Base64.
/v1/nfce/:id/escposGera o buffer binário de impressão térmica ESC/POS para 80mm ou 58mm (direto para USB/TCP 9100).
/v1/nfce/:id/xmlDownload do XML da NFC-e autorizada.
Tabela de Parâmetros Principais (POST /v1/nfce)
| Campo | Tipo | Obrigatório | Descrição e Valores |
|---|---|---|---|
| customer | objeto | não | Dados do consumidor para CPF na nota (cpfCnpj e nome para identificação; email e telefone opcionais). Se omitir endereço no balcão, o NFER preenche automaticamente com a localidade do emitente. |
| customerId | string (UUID) | não | ID de cliente já salvo no NFER (POST /v1/customers). Se omitido junto com customer, emite como "Consumidor não identificado". |
| destinatario | objeto | não | Alias idêntico a customer para compatibilidade de sistemas de PDV. |
| naturezaOperacao | string | não (def. "VENDA AO CONSUMIDOR") | Descrição da operação fiscal perante a SEFAZ. |
| serie | number | não (def. 1) | Série da NFC-e (modelo 65) cadastrada na SEFAZ. |
| indPres | number | string | não (def. "9") | Indicador de presença: 1 = Balcão/Presencial, 4 = Entrega a domicílio (Delivery NFC-e), 9 = Outros. |
| indFinal | number | string | não (def. 1) | Consumidor final. Na NFC-e modelo 65 é sempre 1. |
| itens | array | sim | Lista de itens vendidos. Aceita fiscalProfileId ou tributos manuais (ICMS, PIS, COFINS). |
| pagamentos | array | sim | Formas de pagamento: 01=Dinheiro, 03=Cartão de Crédito, 04=Cartão de Débito, 17=PIX. |
| informacoesAdicionais | string | não | Mensagens de rodapé impressas no cupom térmico e gravadas na tag infCpl do XML. |
Impressão Térmica Direta (ESC/POS) e PDF Sob Demanda
Para PDVs e terminais de caixa, a NFER gera comandos nativos de bobina térmica ESC/POS (suporte a Epson, Elgin, Bematech, Daruma e maquininhas Smart POS Android) com QR Code desenhado em hardware e corte de papel automático:
- Retorno imediato no JSON / Webhook: Ao autorizar, o
GET /v1/nfce/:ide o evento de webhooknfe.autorizadajá entregam a chaveescpos(Base64) eescpos_url, permitindo cuspir os dados para o spooler sem fazer requisições extras. - Endpoint Dedicado:
GET /v1/nfce/:id/escpos?largura=80(oulargura=58,cut=false,format=raw|base64|json). O formatorawretornaapplication/octet-streampronto para envio via raw TCP socket (porta 9100) ou porta serial/USB. - PDF Sob Demanda: O PDF do DANFE não bloqueia o worker na emissão da NFC-e ou NFS-e. Ele é gerado e armazenado em cache no storage sob demanda apenas se alguém acessar o link
/danfe/:chave, mantendo a autorização ultrarrápida (sub-segundo).
12. SEFAZ — Status & Consulta de Cadastro (Sintegra)
Endpoints diretos de comunicação com os autorizadores estaduais da SEFAZ. Permite verificar a disponibilidade em tempo real da SEFAZ estadual e validar a situação cadastral de clientes (IE oficial, Razão Social e endereço fiscal) via protocolo mTLS com o Certificado Digital A1 da sua empresa.
/v1/sefaz/statusVerifica o status operacional da SEFAZ da UF da empresa (cStat 107 = Serviço em Operação).
/v1/sefaz/consulta-cadastroConsulta a situação cadastral do contribuinte na SEFAZ (CadConsultaCadastro4) via CNPJ, CPF ou IE.