Algorithm em Transform da NF-e: enveloped-signature e C14N
@AlgorithmnfeProc › NFe › ds:Signature › ds:SignedInfo › ds:Reference › ds:Transforms › ds:Transform › @AlgorithmRevisão editorial em 15 de out. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
Transform/@Algorithm identifica a etapa executada sobre os dados de Reference. O tipo fiscal TTransformURI permite somente as URIs de enveloped-signature e de Canonical XML 1.0.
Caminho desta página: /nfeProc/NFe/ds:Signature/ds:SignedInfo/ds:Reference/ds:Transforms/ds:Transform/@Algorithm. 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 são os valores e como se combinam?
Os dois valores são http://www.w3.org/2000/09/xmldsig#enveloped-signature e http://www.w3.org/TR/2001/REC-xml-c14n-20010315. O atributo é obrigatório em cada Transform. O grupo contém duas transformações, e a restrição unique_Transf_Alg exige valores distintos.
Fragmento parcial sintético que declara C14N em uma etapa; o grupo completo exige também enveloped:
<Transform xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
Uma URI para Exclusive C14N, XPath ou Base64 não integra essa enumeração fiscal, mesmo que a biblioteca XMLDSig geral a suporte.
A URI é dado, destino ou procedimento?
Aqui ela identifica um procedimento. Não é o endereço do infNFe, que fica em Reference/@URI, e não é o valor do resumo. A implementação deve reconhecer o algoritmo e executá-lo localmente, sem buscar um procedimento arbitrário na internet.
Enveloped trata a assinatura no conjunto de entrada; C14N prepara uma representação canônica. A mesma URI de C14N também aparece em CanonicalizationMethod, mas nesse outro local o objeto é SignedInfo. O atributo precisa ser interpretado com seus ancestrais.
XMLDSig: processamento e elementos.
Como investigar uma configuração que gera outro literal?
Compare a saída efetiva com a enumeração, inclusive caixa, protocolo http e sufixos. Exemplo: a aplicação grava C14N como nome curto. Isso não é a URI exigida. Se grava duas vezes enveloped, cada elemento isolado pode parecer reconhecível, mas o grupo viola unicidade.
Não corrija só o texto do atributo no arquivo assinado; isso muda SignedInfo sem refazer os cálculos. Ajuste a configuração do gerador e teste estrutura e criptografia separadamente. Preserve o original e confira a autorização por evidência própria.
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; MOC — Visão Geral — 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/ds:Transform/@Algorithm- Namespace
Não informado- Leiaute
- 4.00 · PL_010e_v1.02
- Ocorrências no XSD
- 1–1 no contexto do elemento pai
- Tipo
- ds:TTransformURI · anyURI
- 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.
- enumeration
http://www.w3.org/2000/09/xmldsig#enveloped-signature- enumeration
http://www.w3.org/TR/2001/REC-xml-c14n-20010315