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

Algorithm de Transform em protNFe: métodos permitidos na cadeia

@AlgorithmnfeProc › protNFe › ds:Signature › ds:SignedInfo › ds:Reference › ds:Transforms › ds:Transform › @Algorithm

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

Algorithm de Transform identifica uma transformação aplicada ao objeto da referência da assinatura do protocolo. Está em /nfeProc/protNFe/ds:Signature/ds:SignedInfo/ds:Reference/ds:Transforms/ds:Transform/@Algorithm. Ele é obrigatório e seu domínio vem de TTransformURI.

Os dois identificadores do pacote fiscal

PL_010f_v1.04 enumera somente http://www.w3.org/2000/09/xmldsig#enveloped-signature e http://www.w3.org/TR/2001/REC-xml-c14n-20010315. O primeiro identifica a transformação de assinatura envelopada; o segundo, a canonicalização C14N 1.0 sem comentários.

O pai Transforms exige duas etapas e impõe algoritmos distintos. Por isso, duas ocorrências com URI C14N não são uma alternativa às duas transformações previstas. A ordem declarada é relevante para o processamento e precisa ser preservada.

Fragmento para reconhecer a URI

Fragmento sintético parcial de uma etapa; ele não constitui a cadeia completa nem autentica um protocolo:

<Transform xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>

Algorithm contém o nome do método. Reference/@URI, em outro nível, identifica o objeto de entrada. Confundir os dois faz o verificador procurar um recurso onde existe apenas um identificador de transformação. Nenhuma dessas URIs autoriza consulta externa arbitrária.

Suporte da biblioteca não amplia o perfil

Uma biblioteca XMLDSig pode implementar XPath, XSLT ou outros métodos. Isso não os inclui no TTransformURI fiscal. Mesmo a existência de um filho XPath no tipo estrutural de Transform não libera a URI de filtro XPath, ausente da enumeração.

Exemplo: o validador genérico aceita uma transformação XPath que o XSD fiscal rejeita. A divergência é de perfil aceito, e não demonstra que basta instalar outra biblioteca ou alterar a URI. Confira o documento, o schema e a origem da resposta.

Diagnóstico antes de qualquer correção

Compare a URI integral, inclusive fragmento após #, e diferencie ausência do atributo, valor fora da enumeração e duplicidade no pai. Se a estrutura estiver correta mas o digest divergir, examine alvo e resultados da cadeia. Um método aceito não garante cálculo correto.

A correção cabível pode ser no leitor, no pacote selecionado ou na recuperação dos bytes originais. Não substitua o Algorithm de protocolo assinado por tentativa e não retire transformações para evitar erro. A identidade do signatário, a assinatura e o status da nota continuam sendo verificações próprias.

Leituras relacionadas

Fontes oficiais

Referência técnica para integração

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

enumeration
http://www.w3.org/2000/09/xmldsig#enveloped-signature
enumeration
http://www.w3.org/TR/2001/REC-xml-c14n-20010315