Pular para o conteúdo
Fiscal ProBiblioteca
NF-e e NFC-e · Suplemento, assinatura e protocolo

DigestValue da NF-e: como conferir o resumo sem confundir assinatura

<DigestValue>nfeProc › NFe › ds:Signature › ds:SignedInfo › ds:Reference › ds:DigestValue

Revisão editorial em 15 de out. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.

DigestValue é o resumo criptográfico dos dados indicados por Reference, representado em Base64. Na assinatura fiscal da NF-e, a referência aponta para infNFe e o método declarado é SHA-1.

Caminho desta página: /nfeProc/NFe/ds:Signature/ds:SignedInfo/ds:Reference/ds:DigestValue. O alias ds neste XPath representa o namespace http://www.w3.org/2000/09/xmldsig#; ele permite localizar o elemento, mas não exige esse prefixo na serialização fiscal.

Como se chega ao valor?

O verificador resolve a URI ao infNFe correto, aplica as transformações e calcula SHA-1 da representação resultante. O algoritmo produz 20 bytes; sua codificação Base64 usual tem 28 caracteres, com preenchimento. O tipo DigestValueType do schema deriva de base64Binary, mas não impõe sozinho que esses bytes sejam o SHA-1 correto daquele alvo.

Não há XML completo com digest inventado neste artigo. O valor operacional depende do conteúdo original e das transformações. Recalcular apenas o hash do arquivo salvo, inclusive assinatura e protocolo, é uma comparação diferente.

Declaração XSD do contexto.

Qual a diferença para SignatureValue e digVal?

SignatureValue é a assinatura de SignedInfo canonicalizado com a chave privada. DigestValue é o hash do objeto referenciado e está dentro de SignedInfo. Para validar a assinatura, é necessário conferir o resumo e depois a assinatura final.

protNFe/infProt/digVal é o digest da NF-e processada retornado pela SEFAZ, usado na conferência de integridade do original. Ele não é a assinatura opcional do protocolo nem o DigestValue dessa eventual assinatura. Compare valores referentes à mesma nota e ao mesmo objeto; caminhos diferentes podem representar operações diferentes.

XMLDSig: processamento e elementos.

Como analisar valores que não conferem?

Cenário 1: duas exportações da mesma nota têm DigestValue igual, mas uma ganhou espaços de texto em infNFe após assinar. O resumo armazenado pode ter permanecido igual; é preciso recalculá-lo sobre o arquivo recebido para detectar a alteração. Cenário 2: Base64 difere visualmente por espaços permitidos na codificação. Compare bytes decodificados e o resultado do verificador, não apenas aparência.

Confirme primeiro a URI, o alvo único, os métodos e o conteúdo original. Não sobrescreva o digest para igualar a comparação: ele está dentro de SignedInfo e participa da assinatura. Preserve a evidência, ajuste a origem comprovada do problema em ambiente controlado e mantenha a autorização/situação fiscal como verificações separadas.

MOC: perfil de assinatura, pp. 53–56.

Fontes e contexto

Schema específico XMLDSig da NF-e — PL_010f_v1.04 / xmldsig-core-schema_v1.01.xsd; Leiaute da NF-e e protocolo — PL_010f_v1.04 / leiauteNFe_v4.00.xsd; MOC — Visão Geral — 7.0; XML Signature Syntax and Processing — 1.1, Recommendation 11/04/2013; XML Schema Part 2: Datatypes — Second Edition, 28/10/2004.

Referência técnica para integração

XPath completo
/nfeProc/NFe/ds:Signature/ds:SignedInfo/ds:Reference/ds:DigestValue
Namespace
http://www.w3.org/2000/09/xmldsig#
Leiaute
4.00 · PL_010e_v1.02
Ocorrências no XSD
1–1 no contexto do elemento pai
Tipo
ds:DigestValueType · base64Binary
Preenchimento no catálogo
Obrigatório

A ocorrência vale dentro da estrutura XML: um campo obrigatório em um grupo opcional não torna esse grupo obrigatório. A aplicação fiscal depende da operação e da versão da regra.