Consulta SEFAZ
A Consulta SEFAZ é o caminho da NFE.io para você recuperar uma Nota Fiscal Eletrônica (NF-e) autorizada pela chave de acesso, consultando o portal público nacional da Receita Federal (nfe.fazenda.gov.br). Cobertura nacional, retorno em JSON estruturado, XML oficial, DANFE em PDF e histórico de eventos da nota (cancelamento, CC-e, manifestação).
Use quando precisar consultar a NF-e e seus eventos a partir da fonte pública oficial. Para uma alternativa via provedor oficial com maior previsibilidade, veja a Consulta Irrestrita. Para a referência REST completa, veja a Consulta de Nota Fiscal V2.
Fluxo da chamada
Você chama a NFE.io. A NFE.io consulta o portal público nacional da Receita Federal e devolve o documento normalizado.
Contrato HTTP
| Item | Valor |
|---|---|
| Host | nfe.api.nfe.io |
| Método | GET |
| Path JSON | /v2/productinvoices/{accessKey} |
| Path XML | /v2/productinvoices/{accessKey}.xml |
| Path PDF | /v2/productinvoices/{accessKey}.pdf |
| Path Eventos | /v2/productinvoices/events/{accessKey} |
accessKey | string com 44 dígitos numéricos (chave de acesso da NF-e) |
Header Authorization | Sua Chave de Dados da NFE.io, enviada direto sem prefixo Bearer |
| Content-Type da resposta | application/json (JSON e Eventos), application/xml (XML), application/pdf (PDF) |
Detalhes da chave de autenticação em Chaves de Autenticação.
Como chamar
A consulta expõe o mesmo recurso em três formatos. Apenas a URL muda — método, autenticação e parâmetros são idênticos.
# JSON estruturado (default)
curl -X GET \
"https://nfe.api.nfe.io/v2/productinvoices/35200714200166000166550010000000071000000007" \
-H "Authorization: SUA_CHAVE_DE_DADOS"
# XML oficial
curl -X GET \
"https://nfe.api.nfe.io/v2/productinvoices/35200714200166000166550010000000071000000007.xml" \
-H "Authorization: SUA_CHAVE_DE_DADOS" \
-o nota.xml
# DANFE em PDF
curl -X GET \
"https://nfe.api.nfe.io/v2/productinvoices/35200714200166000166550010000000071000000007.pdf" \
-H "Authorization: SUA_CHAVE_DE_DADOS" \
-o nota.pdf
Consultar eventos da nota
A Consulta SEFAZ permite recuperar o histórico de eventos da NF-e (cancelamento, Carta de Correção, manifestação do destinatário), separadamente da consulta da nota em si.
curl -X GET \
"https://nfe.api.nfe.io/v2/productinvoices/events/35200714200166000166550010000000071000000007" \
-H "Authorization: SUA_CHAVE_DE_DADOS"
Use eventos para verificar se a nota foi cancelada, corrigida ou se o destinatário manifestou ciência da operação — informações que não vêm na resposta principal da nota.
Campos do retorno (JSON)
Os campos abaixo aparecem na resposta 200 OK em JSON. O conteúdo é equivalente ao XML oficial (nfeProc), mas com nomes normalizados em camelCase para consumo por sistemas. Os nomes originais do XML (cStat, cUF, natOp, emit, dest etc.) não aparecem no JSON — use o sufixo .xml se precisar do schema oficial.
| Campo | Descrição |
|---|---|
currentStatus | Situação atual da NF-e. Valores: Authorized, Canceled, Unknown. |
stateCode | UF do emitente (equivale a cUF no XML). |
operationNature | Natureza da operação (natOp). |
codeModel, serie, number | Modelo, série e número da NF-e (mod, serie, nNF). |
issuedOn, operationOn | Data/hora de emissão e da operação (dhEmi, dhSaiEnt). |
environmentType | Ambiente de emissão (Production ou Homologation). |
issuer | Dados do emitente: federalTaxNumber (CNPJ), name, tradeName, stateTaxNumber (IE), codeTaxRegime, address. |
buyer | Dados do destinatário: federalTaxNumber (CNPJ/CPF), name, address, stateTaxNumberIndicator. |
items[] | Itens da nota: code, description, ncm, cfop, unit, quantity, unitAmount, totalAmount, tax. |
totals.icms | Totais da nota: productAmount, invoiceAmount, discountAmount, freightAmount, icmsAmount etc. |
transport | Dados de transporte e volumes (freightModality, transportGroup, volume). |
payment[] | Formas de pagamento (paymentDetail[].method, paymentDetail[].amount). |
protocol | Protocolo de autorização: accessKey, protocolNumber, receiptOn, statusCode. statusCode == 100 = nota autorizada (equivale a cStat no XML). |
Exemplo de resposta (recorte)
{
"currentStatus": "Authorized",
"stateCode": 35,
"operationNature": "Venda de Produção",
"codeModel": 55,
"serie": 1,
"number": 7,
"issuedOn": "2020-07-15T14:32:00-03:00",
"environmentType": "Production",
"xmlVersion": "4.00",
"issuer": {
"federalTaxNumber": 14200166000166,
"name": "Empresa Emitente LTDA",
"stateTaxNumber": "111222333444",
"address": {
"state": "SP",
"city": { "code": "3550308", "name": "SAO PAULO" }
}
},
"buyer": {
"federalTaxNumber": 99887766000155,
"name": "Empresa Destinatária SA"
},
"items": [
{
"code": "PROD-001",
"description": "Produto exemplo",
"ncm": "61143000",
"cfop": 6102,
"unit": "UN",
"quantity": 1.0,
"totalAmount": 13.52
}
],
"totals": {
"icms": { "productAmount": 13.52, "invoiceAmount": 12.66 }
},
"protocol": {
"environmentType": "Production",
"accessKey": "35200714200166000166550010000000071000000007",
"protocolNumber": "135200000000007",
"statusCode": 100
}
}
Status HTTP
| Código | Significado | O que fazer |
|---|---|---|
200 | Nota encontrada e retornada. | Leia protocol.statusCode. 100 = autorizada (ou currentStatus == "Authorized"). |
400 | accessKey inválida (formato fora dos 44 dígitos). | Valide a chave antes de chamar. |
401 | Chave de Dados ausente, incorreta ou com prefixo Bearer. | Confira Chaves de Autenticação. |
403 | Chave de Dados sem permissão para Consulta de NF-e. | Solicite ativação no painel NFE.io. |
404 | Chave válida em formato mas NF-e não localizada. | Tratar como regra de negócio. A nota pode não estar disponível ainda. |
5xx | Indisponibilidade temporária. | Nova tentativa em alguns minutos. |
Armadilhas comuns
- Chamar sem validar a chave. Sempre confirme que
accessKeytem exatamente 44 dígitos numéricos antes de chamar. Chaves inválidas geram400e poluem seu monitoramento. - Tratar
HTTP 404como erro de sistema. Não é. Significa que a NF-e ainda não está disponível ou aponta para nota inexistente. É regra de negócio, não falha. - Usar prefixo
Bearerno headerAuthorization. A NFE.io aceita a Chave de Dados direto, semBearer. Com prefixo errado, retorno éHTTP 401. - Confiar no JSON sem checar
protocol.statusCode. Uma nota pode estar na base sem estar autorizada (rejeitada ou denegada). Sempre verifiqueprotocol.statusCode == 100— equivalente aocStatno XML. O campocurrentStatus == "Authorized"é a forma textual do mesmo sinal. - Não consultar eventos quando precisa do estado atual. A resposta principal traz a nota autorizada inicialmente, mas eventos posteriores (cancelamento, CC-e) só aparecem em
/events/{accessKey}. Para decisões de negócio críticas, valide eventos. - Não armazenar o XML. O JSON é conveniente para sistemas; o XML é o documento fiscal oficial. Para fins legais, guarde o
.xmlpelos 5 anos exigidos.
Como uma IA deve consumir esta API
Esta seção é dirigida a agentes de IA construindo integrações ou respondendo perguntas sobre a Consulta SEFAZ da NFE.io.
Modelo mental. Trate a API como uma fonte fiscal nacional sobre NF-e autorizadas, com acesso ao histórico de eventos da nota. A chave de acesso é a única dimensão de consulta. O JSON retornado é equivalente, em conteúdo, ao XML oficial.
Plano de ação típico.
- Receba a chave de acesso da entrada do usuário (44 dígitos).
- Valide pelo regex
^[0-9]{44}$. - Chame
GET https://nfe.api.nfe.io/v2/productinvoices/{accessKey}com headerAuthorization: <Chave de Dados>— semBearer. - Se
200, leiaprotocol.statusCode.100indica autorizada (equivale acStatno XML). O campocurrentStatus == "Authorized"é a forma textual do mesmo sinal. - Para decisões críticas, consulte também
/v2/productinvoices/events/{accessKey}para verificar cancelamento ou correções posteriores. - Se
404, informe ao usuário que a nota não está disponível. - Se
5xx, instrua nova tentativa em alguns minutos.
Dado autorizativo essencial. O campo protocol.statusCode == 100 na resposta principal é evidência de autorização inicial. Eventos posteriores podem alterar o estado da nota — consulte /events/ quando o caso de uso exigir estado atualizado.
Veja também
- Consulta Irrestrita — alternativa via provedor oficial, sem dependência do portal público.
- Consulta de Nota Fiscal Eletrônica — visão geral
- Referência REST: Consulta de Nota Fiscal V2
- Chaves de Autenticação NFE.io