978 - Rejeição: Hash do CSRT diverge do calculado

Entenda a causa e como resolver a Rejeição 978 - Hash do CSRT diverge do calculado durante a emissão de NF-e

CENÁRIO 

Ao emitir uma Nota Fiscal Eletrônica (NF-e) ou uma Nota Fiscal de Consumidor Eletrônica (NFC-e) e o Hash do CSRT (campo: hashCSRT) calculado pelo sistema emissário diferir do cálculo realizado pela SEFAZ, a rejeição 978 será gerada - Indicando que o Hash do CSRT está divergente.

EXEMPLO  

Suponha que uma NF-e tenha sido emitida com o parâmetro "hashCSRT" calculado pelo sistema emissário diferente do cálculo realizado pela SEFAZ. Nessa situação, a NF-e será rejeitada pelo motivo 978.

XML de Exemplo

Aqui está um exemplo de XML de uma NF-e com o parâmetro "hashCSRT" calculado incorretamente:



SOLUÇÃO  

Para resolver a rejeição 978, é essencial verificar o cálculo do parâmetro "hashCSRT" feito pelo sistema emissor. De acordo com a Nota Técnica 2018-005, o "hashCSRT" é gerado da seguinte forma:

  1. Concatenar o CSRT com a chave de acesso da NF-e/NFC-e que está sendo emitida.
  2. Aplicar o algoritmo SHA-1 sobre o resultado da concatenação, resultando em uma string de 20 bytes hexadecimais.
  3. Converter o resultado anterior para Base64, resultando em uma string de 28 caracteres.

Veja um exemplo de como o grupo de identificação da empresa desenvolvedora do software (tag: infRespTec) deve ser estruturado no XML, contendo os campos "idCSRT" e "hashCSRT":

Ao seguir corretamente esses passos e preencher o campo "hashCSRT" com o resultado do cálculo, a NF-e estará apta a ser transmitida sem a rejeição 978.

Referências

  • Nota Técnica 2018.005 - v 1.20 -
http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=j/im9zMlcIE=