Instrução Normativa GAB-CRE nº 22 DE 01/12/2015
Norma Estadual - Rondônia - Publicado no DOE em 10 dez 2015
Estabelece nova sistemática de impressão de documentos fiscais pelos estabelecimentos gráficos.
O Coordenador Geral da Receita Estadual, no uso de suas atribuições legais, e
Considerando o disposto no artigo 796 do RICMS/RO , aprovado pelo Decreto nº 8.321 , de 30 de abril de 1998,
Determina
Art. 1º Os estabelecimentos gráficos devidamente credenciados junto à Secretaria de Estado de Finanças de Rondônia - SEFIN/RO deverão observar o disposto nesta Instrução Normativa para a impressão de documentos fiscais autorizados por Autorização de Impressão de Documentos Fiscais - AIDF.
Art. 2º Além dos demais requisitos constantes da legislação, o estabelecimento gráfico deverá imprimir, em todas as vias dos documentos fiscais, no local reservado ao Fisco, o código de barras bidimensional, QR Code, gerado conforme estabelecido no Manual de Geração do QR Code, constante no Anexo único desta Instrução Normativa.
§ 1º O código QR Code a ser impresso nos documentos fiscais conterá mecanismo de autenticação digital, baseado em código de segurança de conhecimento apenas da SEFIN/RO e do estabelecimento gráfico, denominado Código de Segurança de Gráfica - CSG.
§ 2º A SEFIN/RO disponibilizará, através do Portal do Contribuinte, serviço para geração do código QR Code a ser impresso nos documentos fiscais.
Art. 3º A SEFIN/RO disponibilizará consulta pública, via QR Code, onde poderá ser verificada a autenticidade do documento fiscal e através da página da SEFIN/RO na internet pelo número da AIDF.
Art. 4º Os documentos fiscais que não possuírem o QR Code ou nos quais o QR Code não esteja em conformidade com os padrões estabelecidos, serão considerados inidôneos.
Art. 5º Esta instrução normativa entra em vigor na data de sua publicação, produzindo efeitos a partir de 1º de janeiro de 2016.
Wilson Cézar de Carvalho
Coordenador Geral da Receita Estadual
ANEXO ÚNICO - MANUAL PARA GERAÇÃO DO QR CODE A SER IMPRESSO PELAS GRÁFICAS NOS DOCUMENTOS FISCAIS
1. QR Code O QR Code é um código de barras bidimensional que foi criado em 1994 pela empresa japonesa Denso-Wave. QR significa "quick response" devido à capacidade de ser interpretado rapidamente.
Esse tipo de codificação permite que possa ser armazenada uma quantidade significativa de caracteres:
Numéricos: 7.089
Alfa-numérico: 4.296
Binário (8 bits): 2.953
O QR Code a ser impresso nos formulários de documentos fiscais seguirá o padrão internacional ISO/IEC 18004.
O QR Code deverá existir em todas as vias de todos os documentos fiscais autorizados por AIDF, exceto Formulários de Segurança.
A impressão do QR Code nos documentos fiscais tem a finalidade de facilitar a consulta dos dados pelos consumidores, mediante leitura com o uso de aplicativo leitor de QR Code, instalado em smartphones ou tablets. Atualmente existem no mercado, inúmeros aplicativos gratuitos para smartphones que possibilitam a leitura de QR Code.
Esta tecnologia tem sido amplamente difundida e é de crescente utilização como forma de comunicação.
2. Licença O uso do código QR Code é livre, sendo definido e publicado como um padrão ISO. Os direitos de patente pertencem a Denso Wave, mas a empresa escolheu não exercê-los, sendo que o termo QR Code é uma marca registrada da Denso Wave Incorporated.
Imagem do QR Code para os documentos fiscais A imagem do QR Code que será impressa nos documentos fiscais conterá uma URL composta com as seguintes informações:
1 - Endereço do site da Secretaria de Estado de Finanças de Rondônia para consulta via QR Code.
2 - Parâmetros conforme tabela 1.
Parâmetro | Descrição do Parâmetro | Bytes | Incluir no Hash QRCode | Incluir na URL do QRCode |
nAIDF | Número da AIDF | *14 | SIM | SIM |
CNPJContr | CNPJ do Contribuinte | *14 | SIM | SIM |
CNPJGraf | CNPJ da Gráfica | *14 | SIM | SIM |
IDCSG | Identificador do CSG - Código de Segurança da Gráfica | *6 | SIM | SIM |
CSG | Código de Segurança da Gráfica | *18 | SIM | NÃO |
HashQRCode | Código HASH dos parâmetros | *40 | NÃO | SIM |
Tabela 1: Relação de Parâmetros que integram o cálculo Hash do QR Code e a URL do QRCode
Observações:
1 - O asterisco (*) na tabela acima indica que o preenchimento deve ser exato com a quantidade de bytes indicada;
2 - Não informar máscara de formatação para CNPJ;
3 - O QR Code deverá ser impresso no local reservado ao fisco, tendo largura e altura mínimas de 30 mm x 30 mm.
1. Conceito e objetivo do hash do QRCode (cHashQRCode)
A fim de garantir maior segurança ao processo de impressão de documentos fiscais, na geração do QR Code foi incluído um parâmetro chamado "hash do QR Code".
Este hash é gerado sobre um conjunto padrão de informações essenciais:
Número da AIDF; CNPJ do Contribuinte; CNPJ da Gráfica e também sobre CSG - Código de Segurança da Gráfica.
2. Fornecimento do CSG
O CSG corresponde a um código de segurança numérico de conhecimento apenas da Secretaria de Estado de Finanças de Rondônia - SEFIN/RO e da própria gráfica.
Desta forma é possível garantir a autoria do documento e do respectivo QR Code, pois somente o Fisco e o estabelecimento gráfico conhecem o valor válido do CSG.
O processo de fornecimento do CSG é feito por meio do Portal do Contribuinte na internet.
A gráfica pode solicitar até 2 (dois) CSG. Todavia, se a empresa necessitar de um terceiro CSG deverá indicar, previamente, qual dos dois outros CSG válidos deseja revogar, uma vez que a empresa somente poderá ter, simultaneamente, apenas 2 (dois) CSG válidos.
O CSG corresponderá a um conjunto de 18 caracteres numéricos, sendo que cada CSG possui associado um código sequencial de identificação (IdCSG) de 6 dígitos para facilitar a identificação do respectivo CSG e validação do QR Code pelo Fisco quando da realização da consulta.
O código de identificação do CSG será um sequencial numérico crescente por empresa (CNPJ base 8 dígitos).
No banco de dados da SEFIN/RO ficarão armazenados os seguintes dados:
CNPJ base da gráfica; código de identificação do CSG (IdCSG); CSG; data de ativação do CSG e eventual data de revogação do CSG.
3. Algoritmo padrão para gerar o hash do QR CODE (cHashQRDCode)
Para a geração do hash do QR Code sobre os parâmetros deve ser utilizado o algoritmo SHA-1 e o resultado obtido deve ser convertido para hexadecimal, correspondendo a 40 bytes. Informações adicionais sobre esse algoritmo podem ser encontradas no endereço eletrônico http://pt.wikipedia.org/wiki/SHA1.
Para a geração do hash do QR Code deverão ser concatenados como string, na sequência correta (indicada na Tabela 1), todos os parâmetros do QR Code (nome do parâmetro e valor do parâmetro) indicados como participando do hash, juntamente com o CSG e, sobre estes ser aplicado o algoritmo SHA-1 e, em seguida, ser o resultado convertido para hexadecimal.
Não deverá ser incluído no cálculo do hash, o endereço do site para consulta do QR Code (URL).
Importante registrar que a identificação do CSG (IdCSG) corresponde a ordem do CSG no banco de dados da SEFIN/RO, não se confundindo com o próprio CSG. Enquanto a identificação do CSG (IdCSG) deve constar do QR Code e do cálculo do Hash QR Code, o CSG somente deve ser utilizado na concatenação final para o cálculo do Hash QR Code.
Observação: todas as conversões para hexadecimal deverão ser efetuadas para hexadecimal em caixa baixa. A eventual utilização de conversão para hexadecimal em caixa alta, sem observância da presente recomendação poderá gerar erro na validação do Hash do QR Code.
Para se verificar se as conversões realizadas do SHA-1 do hash do QR Code estão corretas ou não, foi disponibilizada uma página de validação da URL:
http://www.nfe.se.gov.br/portal/portalNoticias.jsp?jsp=barra-menu/servicos/validadorSHA1HEXA.htm
4. Passos para a geração do Hash do QR Code:
1) Adicionar ao final dos parâmetros o CSG da gráfica;
2) Aplicar o algoritmo SHA-1 sobre todos os parâmetros concatenados. O resultado do algoritmo SHA-1 deve estar em HEXA e em CAIXA ALTA;
3) Juntar o resultado aos parâmetros sem o CSG e gerar a imagem do QRCODE conforme a sequência: 1º Parte (endereço de consulta na SEFIN) + 2º parte (itens da tabela indicados com "SIM" na última coluna).
5. Exemplo de QRCode e Hash QRCode
A seguir temos um exemplo de QR Code e Hash do QR Code para facilitar as implementações de geração, por parte das gráficas.
Exemplo Hipotético:
Parâmetros constantes do QR Code a serem utilizados no cálculo do hash do QR Code:
1 - Número da AIDF (nAIDF): 20150400100520
2 - CNPJ Contribuinte (CNPJ Contrib): 00111222000133
3 - Número da credencial da gráfica (CredGraf): 20150500100632
4 - Identificação do CSG (IdCSG): 000001
Resultado:
nAIDF= 20150400100520&CNPJContrib=00111222000133&CNPJGraf=20150500100632&IdCSG=000001
Ao final da concatenação deverá ser adicionado o CSG para cálculo do HASH do QR Code:
CSG da gráfica 000001: 058039458650983682
Resultado:
nAIDF=20150400100520&CNPJContrib=00111222000133&CNPJGraf=20150500100632&IdCSG=000001058039458650983682
Aplicar o algoritmo SHA-1 sobre todos os parâmetros concatenados. A saída do algoritmo SHA-1 deve ser em HEXADECIMAL. Para verificar se a conversão realizada está correta, acesse o site:
http://www.nfe.se.gov.br/portal/portalNoticias.jsp?jsp=barra-menu/servicos/validadorSHA1HEXA.htm;
Entrada: nAIDF=20150400100520&CNPJContrib=00111222000133&CNPJGraf=20150500100632&IdCSG=000001058039458650983682
Saída:
A8882C2B0DD9E10C31F8F6775802772491F3451B
Adicione o resultado sem o CSG e gere a imagem do QRCODE: 1º parte (endereço da consulta) + 2º parte (tabela 1 com indicação SIM na última coluna).
O resultado da URL formada deverá ser incluída na imagem QRCODE:
http://www.aidf.sefin.ro.gov.br/consultanfce/consulta.jsp?nAIDF=20150400100520&CNPJContrib=00111222000133&CNPJGraf=20150500100632&IdCSG=000001&cHashQRCode=A8882C2B0DD9E10C31F8F6775802772491F3451B