CENÁRIO 

Quando for emitido uma NF-e (modelo 55) ou NFC-e (modelo 65) e o Hash do CSRT (campo: hashCSRT) calculado pelo sitema, for diferente do calculado pela Sefaz, será retornado a rejeição  978 - Hash do CSRT diverge do calculado.  


EXEMPLO  

Foi emitida uma NF-e com o parâmetro "hashCSRT" calculado pelo sistema emissor diferente do cálculo pela Sefaz. Nessa situação a NF-e foi rejeitada pelo motivo 464.  

  • No XML:
1
2
3
4
5
6
7
8
9
10
11
<!-- Informações do Responsável Técnico pela emissão do DF-e -->
<infRespTec>
    <CNPJ>09553244000176</CNPJ>
    <xContato>José</xContato>
    <email>suporte@invoisys.com.br</email>
    <fone>6230877770</fone>
    <!-- Identificador do CSRT utilizado para montar o hash do CSRT -->
    <idCSRT>G8063VRTNDMO886SFNK5LDUDEI24XJ22YIPO</idCSRT>
    <!-- O hashCSRT é o resultado da função hash (SHA-1 – Base64) do CSRT fornecido pelo fisco mais a Chave de Acesso da NFe. -->
    <hashCSRT>aWv6LeEM4X6u4+qBI2OYZ8grigw=</hashCSRT>
</infRespTec>


SOLUÇÃO  

Deve-se verificar o cálculo do parâmetro "hashCSRT" pelo sistema emissor 

Na NT 2018-005 há a seguinte informação sobre como é calculado o hashCSRT : 

 2.3 Geração do hashCSRT 

Os passos para a geração do “hashCSRT” estão descritos a seguir: 

  • Passo 1: Concatenar o CSRT com a chave de acesso da NF-e/NFC-e que está sendo emitida. 

  • Passo 2: Aplicar o algoritmo SHA-1 sobre o resultado da concatenação do passo 1, resultando em um string de 20 bytes hexadecimais. 

  • Passo 3: Converter o resultado do passo anterior para Base64, resultando em uma string de 28 caracteres 

  • Passo 4: Montar o grupo de identificação da empresa desenvolvedora do software (taginfRespTec), com a tag “idCSRT” o identificador do CSRT utilizado para a geração do hash e a tag “hashCSRT” o resultado do passo 3