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

Transforms da NF-e: as duas etapas anteriores ao digest

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

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

Transforms contém a sequência de tratamentos aplicada ao objeto identificado por Reference antes do cálculo de DigestValue. No schema da NF-e, o grupo é obrigatório e contém exatamente dois elementos Transform.

Caminho desta página: /nfeProc/NFe/ds:Signature/ds:SignedInfo/ds:Reference/ds:Transforms. 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.

Quais transformações compõem o grupo?

O tipo aceita apenas os algoritmos enveloped-signature e Canonical XML 1.0. Uma restrição de unicidade impede repetir o mesmo Algorithm no grupo. Como há dois elementos e dois valores possíveis distintos, ambos precisam estar representados.

Este fragmento parcial sintético segue a ordem apresentada no exemplo do MOC, sem constituir assinatura completa:

<Transforms xmlns="http://www.w3.org/2000/09/xmldsig#">
  <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
  <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
</Transforms>

O XSD verifica quantidade, literais e unicidade, mas não codifica por posição a ordem dos dois algoritmos. Isso não autoriza reordenar uma sequência já assinada.

Declaração XSD do contexto.

O que cada etapa faz com os dados?

A transformação enveloped-signature trata a exclusão do elemento de assinatura de seu conjunto de entrada quando aplicável, evitando que a própria assinatura integre os dados que a geram. C14N produz a representação canônica para o hash. A sequência é processada na ordem em que aparece, e o resultado alimenta DigestMethod.

Na NF-e, a URI aponta para infNFe, e Signature fica como irmã desse grupo. Ainda assim, o perfil fiscal exige as duas transformações; não remova enveloped por supor que ela é dispensável naquele recorte. A C14N desta sequência opera sobre a referência, enquanto CanonicalizationMethod opera sobre SignedInfo.

XMLDSig: processamento e elementos.

Como investigar ausência ou duplicidade?

Exemplo: dois Transform declaram C14N. A quantidade está correta, mas a restrição de unicidade e o conjunto exigido falham. Outro cenário: há apenas enveloped. Falta a segunda etapa estrutural. A regra F01/298 do MOC trata divergência do padrão, incluindo os algoritmos esperados.

Preserve o XML e confira a configuração da biblioteca, a URI e os bytes resultantes. Inserir uma transformação em SignedInfo após a assinatura modifica o que foi assinado. Faça ajustes no gerador com validação controlada, sem editar documento autorizado. Mesmo o grupo correto não prova digest, assinatura ou autorização.

MOC: validações de assinatura.

Fontes e contexto

Schema específico XMLDSig da NF-e — PL_010f_v1.04 / xmldsig-core-schema_v1.01.xsd; MOC — Visão Geral — 7.0; MOC — Anexo I, Leiaute e Regras de Validação — 7.0; XML Signature Syntax and Processing — 1.1, Recommendation 11/04/2013.

Referência técnica para integração

XPath completo
/nfeProc/NFe/ds:Signature/ds:SignedInfo/ds:Reference/ds:Transforms
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:TransformsType
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.