Glossário

Assinatura digital do XML

Atualizado em · 4 min de leitura

Definição

Assinatura digital do XML é o procedimento criptográfico que vincula um documento fiscal eletrônico, como NF-e, NFC-e, CT-e, MDF-e ou NFS-e, ao certificado digital do emissor. Ela comprova quem emitiu o arquivo e garante que o conteúdo não foi alterado depois de assinado. É exigida para que a Sefaz ou a prefeitura aceite o documento.

Também conhecido como: XML Digital Signature, Assinatura do XML, Assinatura digital de documento fiscal, Assinatura XMLDSig, Assinatura eletrônica do XML

O que é a assinatura digital do XML?

Todo documento fiscal eletrônico é, na essência, um arquivo XML: um texto estruturado com os dados da operação, como emitente, destinatário, produtos, valores e impostos. Antes de ser enviado ao Fisco, esse arquivo precisa ser assinado digitalmente com o certificado digital da empresa emissora.

Essa assinatura não é uma imagem nem uma rubrica escaneada. Trata-se de um bloco de informações criptográficas inserido dentro do próprio XML. Esse bloco permite a qualquer pessoa ou sistema verificar quem assinou o documento e se ele continua exatamente igual ao momento da assinatura.

Para que serve assinar o XML de uma nota fiscal?

A assinatura cumpre três funções principais. A primeira é a autoria: ela comprova que o documento foi emitido pelo titular do certificado, normalmente identificado pelo CNPJ. A segunda é a integridade: qualquer alteração no conteúdo, mesmo de um único caractere, invalida a assinatura. A terceira é o não repúdio: o emissor não pode negar depois que emitiu aquele documento.

É graças a essa combinação que o XML assinado e autorizado tem validade jurídica e substitui a antiga nota em papel. Sem a assinatura, a Sefaz ou a prefeitura rejeita o documento e ele não pode ser autorizado.

Como funciona a assinatura digital do XML?

O padrão adotado nos documentos fiscais brasileiros segue a especificação de assinatura XML do W3C, conhecida como XMLDSig, no formato de assinatura envelopada, em que a assinatura fica dentro do próprio arquivo. Primeiro, o trecho a ser assinado é padronizado, em um processo chamado canonicalização, para que diferenças de formatação não afetem o resultado. Em seguida, é calculado um resumo matemático (hash) desse conteúdo.

Esse resumo é então criptografado com a chave privada do certificado digital, gerando o valor da assinatura. O XML passa a conter um elemento Signature com o resumo, o valor assinado e a parte pública do certificado. Ao receber o arquivo, o Fisco usa a chave pública para conferir se tudo confere. Na NF-e, por exemplo, a assinatura aponta para o grupo de informações da nota identificado pelo atributo Id, que traz a chave de acesso.

Quais documentos e eventos precisam ser assinados?

NF-e, NFC-e, CT-e e MDF-e exigem assinatura do XML do documento. Os eventos ligados a eles, como cancelamento, carta de correção e encerramento de MDF-e, também são assinados antes do envio.

Na NFS-e, a exigência depende do padrão adotado. No modelo nacional, a DPS é assinada pelo emissor. Em sistemas municipais próprios, as regras variam: algumas prefeituras pedem assinatura do documento, outras apenas do lote de envio, e algumas não exigem assinatura.

Quais erros de assinatura são mais comuns?

Entre os problemas mais frequentes estão: certificado vencido ou revogado; CNPJ do certificado diferente do CNPJ do emitente informado no XML; alteração do arquivo depois de assinado, como a inclusão de espaços, quebras de linha ou mudança de codificação; e assinatura aplicada ao elemento errado. Cada um desses casos gera uma rejeição específica no retorno do Fisco.

Por isso, a regra prática é assinar o XML apenas quando ele estiver completamente pronto e não modificá-lo mais até o envio.

Quem faz a assinatura quando a emissão é feita por API?

Em uma integração por API fiscal, o sistema da empresa normalmente envia os dados da operação, e a plataforma de emissão monta o XML, aplica a assinatura com o certificado digital cadastrado e transmite o documento ao Fisco. Assim, o ERP ou a plataforma de vendas não precisa implementar canonicalização, hash e criptografia por conta própria.

Para isso, o certificado, geralmente do tipo A1, é armazenado de forma protegida pela plataforma. Cabe à empresa manter o certificado válido e renovado, pois sem ele nenhuma assinatura pode ser gerada.

Exemplos de Assinatura digital do XML

  • Um ERP envia por API os dados de uma venda; a plataforma de emissão gera o XML da NF-e, assina com o certificado A1 da empresa e transmite à Sefaz, que valida a assinatura e autoriza a nota.
  • Um desenvolvedor reformata o XML assinado para facilitar a leitura antes de enviá-lo e recebe rejeição por assinatura inválida, porque o conteúdo deixou de corresponder ao resumo assinado.
  • Uma transportadora precisa encerrar um MDF-e e o evento de encerramento é assinado com o certificado digital antes de ser enviado ao Fisco.
  • Uma empresa com várias filiais tenta emitir uma nota usando o certificado de outro CNPJ e recebe rejeição por divergência entre o certificado e o emitente.

Perguntas frequentes

A assinatura digital do XML é a mesma coisa que o certificado digital?

Não. O certificado digital é a identidade eletrônica da empresa. A assinatura é o resultado de usar esse certificado sobre um arquivo específico. Um mesmo certificado gera assinaturas diferentes para cada documento emitido.

Posso editar o XML depois de assinado?

Não. Qualquer alteração, inclusive de espaços ou formatação, invalida a assinatura. Se for preciso mudar algo, o XML deve ser corrigido e assinado novamente antes do envio.

O DANFE também é assinado digitalmente?

Não. O DANFE é apenas uma representação impressa ou em PDF do documento. A validade jurídica está no XML assinado e autorizado, que deve ser guardado pelo emitente e pelo destinatário.

É possível assinar com certificado A3?

Sim, desde que o sistema tenha acesso ao token ou cartão no momento da emissão. Em integrações automatizadas por API, o certificado A1 costuma ser preferido por ser um arquivo que pode ser armazenado no servidor.

Atualizado em · Como produzimos este glossário