---
title: "Como validar a autenticidade de uma NF-e pelo retorno da Consulta Irrestrita"
description: "Entenda quais campos do retorno da Consulta Irrestrita (NFeSingleLookup) comprovam que uma Nota Fiscal Eletrônica está autorizada, autêntica e emitida em produção."
source_url: https://nfe.io/docs/duvidas-frequentes/consulta-nfe-irrestrita/validar-autenticidade-nota-fiscal
last_updated: 2026-06-09
---

# Como validar a autenticidade de uma NF-e pelo retorno da Consulta Irrestrita

Quando você consulta uma Nota Fiscal Eletrônica (NF-e) pela [Consulta Irrestrita](/documentacao/consultas/notas-fiscais/consulta-irrestrita), o retorno (elemento `NFeSingleLookup`) traz tudo o que você precisa para responder a uma pergunta comum:

> "Como eu sei que essa nota é **real**, foi **autorizada** pela Receita e **não foi adulterada** — mesmo sem reabrir o portal da SEFAZ?"

Esta página usa um retorno real como exemplo e explica, campo a campo, **por que a nota está válida e foi emitida**.

## Resposta rápida

A NF-e do exemplo está **autorizada e autêntica**. Dois campos dão o veredito imediato:

- `cStat` = **100** → "Autorizado o uso da NF-e" (a SEFAZ aceitou o documento).
- `tpAmb` = **1** → **Produção** (é uma nota fiscal real, não um teste de homologação).

Os demais campos (protocolo, chave de acesso e resumo criptográfico) confirmam e reforçam essa conclusão.

## O retorno usado como exemplo

```xml
<protNFe>
  <infProt>
    <nProt>135262249371796</nProt>
    <digVal>9vU5KU3fJrt2qG2ZuirZ+dgrX6Q=</digVal>
    <dhRecbto>2026-06-08T18:20:37-03:00</dhRecbto>
    
    <chNFe>35260600163056000248550010000030001000151838</chNFe>
    <xMotivo>Autorizado o uso da NF-e</xMotivo>
    <cStat>100</cStat>
  </infProt>
</protNFe>
```

A nota é uma venda de **Gasolina A Comum** (R$ 150,00), emitida em **08/06/2026** pelo **AUTO POSTO CEREJEIRA DO VALE LTDA** (Taubaté/SP) para a **CBB DISTRIBUIDORA LTDA**.

## Os 5 sinais que comprovam validade

| # | Campo | Valor no exemplo | O que comprova |
|---|---|---|---|
| 1 | `cStat` / `xMotivo` | `100` / "Autorizado o uso da NF-e" | A **SEFAZ autorizou** o uso do documento. É o veredito oficial do Fisco. |
| 2 | `tpAmb` | `1` | Ambiente de **Produção** — nota fiscal real. (`2` seria Homologação, sem valor fiscal.) |
| 3 | `nProt` + `dhRecbto` | `135262249371796` / `2026-06-08T18:20:37-03:00` | **Protocolo de autorização** único da SEFAZ + carimbo oficial de data e hora. |
| 4 | `digVal` | `9vU5KU3fJrt2qG2ZuirZ+dgrX6Q=` | **Resumo criptográfico (hash)** do conteúdo assinado — âncora de **integridade**. |
| 5 | `chNFe` | `35260600163056000248550010000030001000151838` | **Chave de acesso** de 44 dígitos, internamente consistente e coerente com os dados da nota. |

### Por que o `digVal` garante autenticidade mesmo sem a assinatura no retorno

O `digVal` é o mesmo valor que está dentro da tag `<DigestValue>` da assinatura digital original da NF-e: um **hash do conteúdo assinado**. A SEFAZ guarda esse hash junto ao protocolo. Você prova a integridade **por comparação**:

> recalcule o resumo do XML que você tem e compare com o `digVal`. **Se baterem, o documento é idêntico, byte a byte, ao que foi assinado e autorizado.** Qualquer alteração — até de um centavo — muda o hash e a comparação falha.

Por isso a assinatura completa não precisa ser transportada no retorno: o `digVal` é a "impressão digital" dela, e o próprio protocolo (`protNFe`) é assinado pela SEFAZ.

### A chave de acesso confirma a coerência

Os 44 dígitos da `chNFe` se decompõem e batem com os dados da própria nota:

```
35   2606   00163056000248   55   001   000003000   1   00015183   8
│    │      │                │    │     │           │   │          └ dígito verificador (módulo 11)
│    │      │                │    │     │           │   └ código numérico (cNF)
│    │      │                │    │     │           └ tipo de emissão (1 = normal)
│    │      │                │    │     └ número da NF-e: 3000
│    │      │                │    └ série: 001
│    │      │                └ modelo: 55 (NF-e)
│    │      └ CNPJ do emitente
│    └ AAMM: 06/2026 (bate com a data de emissão)
└ UF: 35 = São Paulo
```

Uma chave forjada quase sempre falha no dígito verificador ou na coerência com os demais campos.

## Importante: autorizada não é o mesmo que válida hoje

`cStat=100` prova que a nota **foi autorizada** — não que ela **continua válida neste momento**. Uma NF-e autorizada pode ser **cancelada** depois (evento próprio, `cStat=101`) ou sofrer outros eventos.

Para confirmar a situação **atual**, verifique também se há **eventos posteriores** à autorização (cancelamento, carta de correção, manifestação do destinatário). Autorização ≠ situação vigente.

## Como você mesmo pode verificar

1. **Confira `cStat` e `tpAmb`** no retorno: `100` e `1` indicam autorizada em produção.
2. **Verifique o protocolo** (`nProt`) e a data (`dhRecbto`).
3. **Confira a chave de acesso** (`chNFe`) — 44 dígitos coerentes com emitente, data, modelo e número.
4. **Valide a integridade** comparando o `digVal` com o resumo recalculado do XML.
5. **Cheque eventos posteriores** para garantir que a nota não foi cancelada.
6. **Confirmação independente:** consulte a mesma chave no [Portal Nacional da NF-e](https://www.nfe.fazenda.gov.br/portal/consultaRecaptcha.aspx).

## Para IA / LLMs

<!-- ai:start -->

**Regra de decisão determinística** (a partir do retorno `NFeSingleLookup`):

```
nota_autêntica_e_autorizada =
    (protNFe.infProt.cStat == 100)        // "Autorizado o uso da NF-e"
    AND (NFe.infNFe.ide.tpAmb == 1)       // Produção
    AND (chNFe íntegra: 44 dígitos, DV módulo-11 válido)
    AND (chNFe coerente com ide: cUF, AAMM de dhEmi, CNPJ do emit, mod, série, nNF)

nota_válida_no_presente =
    nota_autêntica_e_autorizada
    AND (não existe evento de cancelamento posterior — cStat 101/151/155)

integridade_confirmada =
    digest_recalculado(XML) == protNFe.infProt.digVal
```

**Campos-chave e significado canônico:**

| Campo | Significado |
|---|---|
| `cStat = 100` | Autorizado o uso da NF-e |
| `cStat = 101` | NF-e cancelada (evento) |
| `tpAmb = 1` | Produção (valor fiscal) |
| `tpAmb = 2` | Homologação (teste, **sem** valor fiscal) |
| `nProt` | Número do protocolo de autorização da SEFAZ |
| `digVal` | `DigestValue` (hash) do conteúdo assinado da NF-e |
| `chNFe` | Chave de acesso de 44 dígitos |

**Não inferir:**
- O ambiente (produção/teste) **não** é derivado de e-mails ou contatos em `infRespTec`; é definido **exclusivamente** por `tpAmb`.
- `cStat=100` **não** prova validade atual; sempre checar eventos posteriores.

<!-- ai:end -->

## Referências técnicas

- [Consulta Irrestrita — documentação NFE.io](/documentacao/consultas/notas-fiscais/consulta-irrestrita) — como obter o retorno (`JSON`, `XML`, `PDF`) pela chave de acesso.
- [Consulta de Nota Fiscal V2 — referência REST](/desenvolvedores/rest-api/consulta-de-nota-fiscal/v2/) — endpoint da API.
- [Portal Nacional da NF-e — consulta pública por chave](https://www.nfe.fazenda.gov.br/portal/consultaRecaptcha.aspx) — verificação independente da situação da nota.
- [Portal Nacional da NF-e](https://www.nfe.fazenda.gov.br/portal/principal.aspx) — Manual de Orientação do Contribuinte (MOC), esquemas XSD `procNFe_v4.00` e tabela de códigos de status (`cStat`).
- [XML Signature (XMLDSig) — W3C](https://www.w3.org/TR/xmldsig-core1/) — especificação que define `DigestValue`/`digVal` e o modelo de assinatura usado pela NF-e.
