Atualização 11/06/2018
Embora o período de homologação determinado por este manual manual tenha iniciado no dia 04/06, os webservices da maioria das Sefaz não estão preparados ainda.
Durante tentativas de homologação, encontramos comportamentos diferentes em cada estado.
- Alguns webservices estão aceitando a estrutura do QR Code 2.0 (divisão de informações por Pipe | ) utilizando o link do QR Code 1.0.
- Outros webservices estão aceitando o contrário: link do QR Code 2.0 com a estrutura do QR Code 1.0.
- Outros ainda, rejeitam completamente o formato e o link do QR Code 2.0.
Conforme comunicado de um dos representantes do projeto NFC-e, houve um atraso na publicação da NT 2016.002 versão 1.60 , que se efetivará nos próximos dias e contém as RV para versão 2.0 do QR Code.
No dia 2 de março de 2018, foi publicada a versão 5.0 do Manual de Especificações Técnicas do DANFE NFC-e e QR Code, que apresenta profundas alterações no QR Code, mas nenhuma novidade no layout da DANFE NFC-e.
Versão 2.00 do QR Code do DANFE NFC-e
Logo na capa do manual, o leitor encontra o termo “QR Code – versão 2”:
Os autores do manual utilizaram essa denominação para destacar a magnitude das alterações no QR Code. É fácil perceber que o processo de geração da URL do código ficou mais simples e mais inteligente. Além disso, a URL resultante está consideravelmente menor, pois os parâmetros agora são separados por pipes .
Vamos analisar cada uma delas no decorrer deste artigo.
Parâmetros da URL do QR Code diferentes quando emitido online ou offline
Na nova versão, os parâmetros da URL contida no QR Code variam de acordo com o modo de emissão da NFC-e.
-
Emissão Online
Se a NFC-e for emitida em modo normal, isto é, online com os webservices da Sefaz, a URL do QR Code deverá conter os seguintes parâmetros:
-
Emissão Offline
No entanto, se estiver emitindo em modo de contingência offline, a URL do QR Code deverá conter outros parâmetros. São eles:
Como era na versão 4.2
Na versão anterior, os parâmetros da URL do QR Code eram os mesmos, independente do modo de emissão online ou offline. Os parâmetros eram:
Geração da Hash e da URL do QR Code simplificada
A diferenciação entre modo de emissão online e offline da NFC-e também afetam a forma de geração do Hash do QR Code, bem como toda a string montada através dos parâmetros. Tanto no modo online quanto no modo de contingência offline, a geração da Hash ficou muito mais simples, e a URL final ficou bem mais curta.
-
Emissão Online
Quando emitida online, os passos para geração do Hash são:
- Concatenar os parâmetros de 1 a 4 constantes da tabela 2 (seção 4.2.1) separados por “|” na ordem indicada;
- Adicionar ao final da string o CSC (disponibilizado pela SEFAZ da UF onde a empresa está localizada);
- Aplicar o algoritmo SHA-1 sobre o resultado e converter para hexadecimal, correspondendo a 40 bytes.
Como resultado, a URL gerada ficará da seguinte forma:
-
Emissão Offline
Quando emitida offline, os passos para geração do Hash são:
- Converter o valor do DigestValue da NFC-e ( digVal ) para HEXA;
- Concatenar os parâmetros de 1 a 7 constantes da tabela 3 (seção 4.2.2) separados por “|”, na ordem indicada;
- Adicionar ao final da string o CSC (disponibilizado pela SEFAZ da UF onde a empresa está localizada);
- Aplicar o algoritmo SHA-1 sobre o resultado e converter para hexadecimal, correspondendo a 40 bytes.
Como resultado, a URL gerada ficará da seguinte forma:
Como era na versão 4.2
Na versão anterior, a Hash não diferia de acordo com o modo de emissão. A string ficava muito mais extensa, já que os parâmetros eram identificados individualmente. Além disso, o processo de geração da Hash era muito mais trabalhoso:
- Converter o valor da Data e Hora de Emissão da NFC-e (dhEmi) para HEXA;
- Converter o valor do DigestValue da NFC-e ( digVal ) para HEXA;
- Substituir os valores ( “dhEmi ” e “ digVal ”) nos parâmetros;
- Adicionar ao final dos parâmetros o CSC (CSC do contribuinte disponibilizado pela SEFAZ da UF onde a empresa esta localizada);
- Aplicar o algoritmo SHA-1 sobre todos os parâmetros concatenados. O resultado do algoritmo SHA-1 deve estar em HEXA;
- Junte tudo sem o CSC entregue pela SEFAZ e gere a imagem QR Code: 1º parte (endereço da consulta) + 2º parte (itens da tabela 1 do item 4.2indicados com “SIM” na última coluna) + cHashQRCode.
Como resultado, a URL ficava assim:
Prazos para alteração
As alterações aplicam-se somente às NFC-es emitidas na versão 4.00 ou superior do XML. Haverá um período de concomitância entre as versões 1.00 e 2.00 do QR Code, no qual ambos os formatos poderão ser utilizados. Confira.
-
04/06/2018 – Início da homologação da versão 4.00 do XML para a NFC-e
-
02/07/2018 – Início da produção da versão 4.00 do XML para a NFC-e – início da concomitância com a versão 1.00 do QR Code (a versão 4.00 do XML da NFC-e aceitará as versões 1.00 e 2.00 do QR Code)
-
01/10/2018 – Desativação da versão 3.10 do XML para a NFC-e
-
01/10/2018 – Fim da concomitância com a versão 1.00 do QR Code (a versão 4.00 do XML da NFC-e aceitará somente a versão 2.00 do QR Code)