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:
- Concatenar o CSRT com a chave de acesso da NF-e/NFC-e que está sendo emitida.
- Aplicar o algoritmo SHA-1 sobre o resultado da concatenação, resultando em uma string de 20 bytes hexadecimais.
- 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 -