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 (tag: infRespTec), com a tag “idCSRT” o identificador do CSRT utilizado para a geração do hash e a tag “hashCSRT” o resultado do passo 3