Regularização dos Softwares de automação para Uso de NFC-e / NF-e
Esta Nota Técnica divulga as alterações de leiaute da NF-e e da NFC-e, as respectivas regras de validação dos campos criados ou alterados e as alterações no leiaute do DANFE.
1.1 Controle das Empresas de Software
Alterado o leiaute da NF-e/NFC-e criando o grupo de campos para identificação do responsável técnico pelo sistema utilizado na emissão do documento fiscal eletrônico. Considera-se responsável técnico a empresa desenvolvedora ou a empresa responsável tecnicamente pelo sistema de emissão de NF-e/NFC-e utilizado pelo contribuinte emitente.
1.2 Mensagem de Interesse da SEFAZ
Alterado o grupo de informações do Protocolo de Resposta da SEFAZ, incluindo informações de interesse da SEFAZ. As mensagens serão tabeladas, mantendo o padrão normal do sistema com código e descrição da mensagem. Este novo grupo de informações é opcional, mas provavelmente será adotado por algumas UF no envio de mensagem relativa a uma determinada operação. Conforme definição futura, a mensagem poderá ser de interesse do Emitente, ou do Emitente e do Comprador (por exemplo, no caso da venda para consumidor final).
1.3 Protocolo de Autorização na Rejeição por Duplicidade
Atendendo a uma demanda das empresas, será alterado o grupo de informações do Protocolo de Resposta da SEFAZ, no caso da rejeição por duplicidade do documento fiscal eletrônico (NF-e / NFC-e). Neste caso, a critério da UF, poderá ser retornado o protocolo de autorização gerado anteriormente para o documento fiscal facilitando o sistema da empresa na obtenção desta informação.
Página 6 / 18
2 Sobre a Identificação do Responsável Técnico
Responsável técnico é a empresa desenvolvedora ou a empresa responsável tecnicamente pelo sistema (software) de emissão de NF-e/NFC-e utilizado pelo contribuinte emitente. Essa informação será utilizada pelas Administrações Tributárias, principalmente na identificação de uso indevido do ambiente de autorização, viabilizando eventual contato das SEFAZ com os responsáveis técnicos.
2.1 Código de Segurança do Responsável Técnico - CSRT
A critério da UF, para os estados que exigem o credenciamento de software emissor de DF-e, poderá ser exigido um código de segurança para a empresa desenvolvedora do software, denominado Código de Segurança do Responsável Técnico - CSRT.
A fim de garantir maior segurança no processo de emissão da NF-e e NFC-e, foi incluído o campo "hashCSRT" no grupo de identificação do responsável técnico. Este hash é gerado a partir da concatenação do CSRT da empresa com a chave de acesso da NF-e/NFC-e. Desta forma será possível garantir a autoria do software emissor da NF-e/NFC-e, pois, somente a empresa desenvolvedora do software e o Fisco conhecem o valor válido do CSRT utilizado para a geração do "hashCSRT". Deverá ser utilizado o algoritmo SHA-1 para a geração do hash.
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
2.4 Exemplo do hashCSRT
Considere a situação hipotética de emissão de uma NF-e, e os parâmetros a serem utilizado no cálculo do "hashCSRT" são:
? Chave de Acesso: 41180678393592000146558900000006041028190697
? CSRT: G8063VRTNDMO886SFNK5LDUDEI24XJ22YIPO
? idCSRT: 01
- Passo 1: Concatenar o CSRT com a chave de acesso da NF-e/NFC-e que está sendo emitida.
Resultado: G8063VRTNDMO886SFNK5LDUDEI24XJ22YIPO41180678393592000146558900000006041028190697
- Passo 2: Aplicar o algoritmo SHA-1 sobre o resultado da concatenação do passo 1.
Resultado: <string de 20 bytes hexadecimais>
- Passo 3: Converter o resultado do passo anterior para Base64, resultando em uma string de 28 caracteres.