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

DigestValue da assinatura de protNFe: resumo do conteúdo protegido

<DigestValue>nfeProc › protNFe › 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, em /nfeProc/protNFe/ds:Signature/ds:SignedInfo/ds:Reference/ds:DigestValue, contém o resumo do objeto referenciado na assinatura da resposta da SEFAZ, após as transformações declaradas. Ele não é a assinatura digital em si. O schema o declara obrigatório dentro de Reference e do tipo base64Binary.

Que valor deve ser comparado?

O objeto vem de Reference/@URI. O processamento vem de Transforms e o algoritmo vem de DigestMethod. No perfil PL_010f_v1.04 o método é SHA-1, cujo resultado tem 20 bytes. DigestValue representa esses bytes em base64; não se trata de um número fiscal nem de um texto de livre preenchimento.

A verificação consiste em calcular novamente o resumo do alvo original e compará-lo aos bytes decodificados do XML. Apenas constatar que o texto é base64 válido não verifica essa igualdade. O tipo base64Binary, por si, não impõe tamanho de 20 bytes: a relação com o algoritmo é também uma conferência criptográfica.

DigestValue, digVal e SignatureValue

DigestValue desta Reference é o resumo do conteúdo protegido pela assinatura do protocolo. infProt/digVal é o digest da NF-e processada, usado para conferir a correspondência com a nota original. SignatureValue contém o resultado da assinatura de SignedInfo. Mesmo que todos apareçam codificados em base64, não são intercambiáveis.

Exemplo de diagnóstico: a integração compara infProt/digVal com a Reference da assinatura de protNFe e acusa diferença. Antes de concluir que houve alteração, identifique o alvo de cada digest. O primeiro se relaciona à NF-e; o segundo, ao grupo referenciado pela assinatura da resposta.

Bytes didáticos e limites da verificação

Este fragmento sintético ilustra somente a codificação base64 de um byte zero. AA== não é um digest SHA-1 de 20 bytes, não comprova integridade e não tem validade operacional:

<DigestValue xmlns="http://www.w3.org/2000/09/xmldsig#">AA==</DigestValue>

O fragmento cabe no domínio lexical amplo do XSD; isso demonstra justamente por que validar o tipo não verifica o cálculo do resumo. Não o use em documento fiscal.

Como investigar a divergência real

Preserve o retorno original e confira alvo inequívoco, conteúdo, transformações, algoritmo e decodificação. Se a cópia foi reconstruída, compare-a com os bytes recebidos antes de atribuir a falha à SEFAZ. Recupere a fonte original quando necessário; não substitua o digest por um valor recalculado em documento já assinado.

Depois da referência, confira SignatureValue e confiança no certificado. Por fim, correlacione chave, ambiente e status fiscal: um resumo correto não significa autorização nem situação atual regular após eventos.

Leituras relacionadas

Fontes oficiais

Referência técnica para integração

XPath completo
/nfeProc/protNFe/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
Condicional

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.