Blog Oobj

Tudo sobre o QR Code 2.0 da NFCe 4.0

8
Tempo de leitura: 4 minutos

No dia 02 de Março foi lançada a versão 5.0 do Manual de Especificações Técnicas do DANFE NFCe e QR Code que traz algumas mudanças no layout do documento impresso. Além de alterar a data de emissão da NFCe 4.0, o novo manual trouxe uma nova especificação do QR Code para o documento nesta versão.

No QR Code 2.0, a URL do código deverá ser composta de duas maneiras diferentes: uma para NFCe emitidas de forma online (sem contingência) e outra para as NFCe emitidas na contingência offline.

[ ATUALIZAÇÃO 23/03/2018 ] A Sefaz disponibilizou as novas URL a serem utilizadas nas versões online e offline no portal do ENCAT. As URLs são as mesmas utilizadas pela consulta por chave de acesso e podem ser encontradas aqui.

A alteração visa diminuir os dados quando a emissão já tiver sido autorizada pela Sefaz e passar mais informações sobre as notas que ainda não foram autorizadas, como data de emissão, valor total e DigestValue da NFCe. A Sefaz ainda disponibilizou um prazo para adequação à essa nova mudança:

  • 09 de Julho de 2018 – início da produção da NFCe 4.0 e início da concomitância do QR Code 2.0 com a versão 1.0. Isto é, a NFCe 4.0 aceitará as versões 1.0 e 2.0 do QR Code;
  • 1º de Outubro de 2018 – fim da concomitância com a versão 1.0 do QR Code. Ou seja, a NFCe aceitará somente o QR Code 2.0

 

Como funciona o QR Code 2.0

Para cada forma de emissão, devem ser gerados o hash e a URL do QR Code de modos diferentes. Segue abaixo:

NFCe Online

Para as notas emitidas com tipo de emissão Normal, o QR Code deve ser formado com o mínimo de identificação da NFCe. Uma vez que a nota já foi autorizada na Sefaz, não é mais necessário passar outros dados integrantes do documento como era feito na NFCe 3.10. Os campos são os seguintes:

  • URL da Sefaz – link de consulta da Sefaz Autorizadora. A lista com todos os estados é sempre atualizada e pode ser encontrada aqui;
  • Chave de Acesso – identificador da nota;
  • Versão do QR Code – deve ser informado o valor “2”;
  • Tipo do Ambiente – informar o ambiente que a NFCe foi emitida (1 – Produção ou 2 – Homologação);
  • Identificador CSC – número do código de segurança do contribuinte no banco de dados da Sefaz, sem os zeros não significativos. Não confundir com o próprio CSC;
  • Código Hash – código calculado para validar os dados passados.

O modelo a ser seguido tem esse formato:

http://<dominio>/nfce/qrcode?p=<chave_acesso>|<versao_qrcode>|<tipo_ambiente>|<identificador_csc>|<codigo_hash>

Exemplo:

http://www.sefazexemplo.gov.br/nfce/qrcode?p=28170800156225000131650110000151341562040824|2|1|1|
DC6AE2C2B9A992BE59679AC365E29922DE6B7511

QR Code 2.0 da NFCe 4.0

 

Para a geração do Código Hash devem ser seguidos os seguintes passos:

  • Passo 1: Concatenar dos 4 parâmetros (Chave de Acesso, Versão do QR Code,
  • Tipo do Ambiente e Identificador CSC) separados por “|” na ordem indicada;
  • Passo 2: Adicionar ao final da string o CSC (disponibilizado pela SEFAZ da UF onde a empresa está localizada);
  • Passo 3: Aplicar o algoritmo SHA-1 sobre o resultado e converter para hexadecimal, correspondendo a 40 bytes.

 

NFCe Offline

Já para as notas emitidas em contingência Offline, o QR Code deve conter mais dados sobre a NFCe, uma vez que ela pode não estar na base da Sefaz no momento da consulta. Mesmo tendo mais campos que o QR Code da NFCe Online, o QR Code 2.0 retirou alguns campos presentes na versão 1.0, como Identificação do consumidor, Data e hora de emissão, Valor total do ICMS.

Os campos necessários são os seguintes:

  • URL da Sefaz – link de consulta da Sefaz Autorizadora. A lista com todos os estados é sempre atualizada e pode ser encontrada aqui;
  • Chave de Acesso – identificador da nota;
  • Versão do QR Code – deve ser informado o valor “2”;
  • Tipo do Ambiente – informar o ambiente que a NFCe foi emitida (1 – Produção ou 2 – Homologação);
  • Dia da data de emissão – informar o dia (dois dígitos) em que a nota foi emitida;
  • Valor total – informar o valor total da NFCe. Como separador de decimal, deve-se usar o ponto e não a vírgula;
  • Digest Value – campo do Digest Value presente na NFCe offline;
  • Identificador CSC – número do código de segurança do contribuinte no banco de dados da Sefaz, sem os zeros não significativos. Não confundir com o próprio CSC;
  • Código Hash – código calculado para validar os dados passados.

O modelo a ser seguido tem formato semelhante ao anterior, porém com mais campos:

http://<dominio>/nfce/qrcode/?p=<chave_acesso>|<versao_qrcode>|<tipo_ambiente>|<dia_data_emissao>|<valor_total_nfce>|<digVal>|<identificador_csc>|<codigo_hash>

 

Exemplo:

http://www.sefazexemplo.gov.br/nfce/qrcode?p=28170800156225000131650110000151349562040824|2|1|02|
60.90|797a4759685578312f5859597a6b7357422b665052335163
3530633d|1|4615A93BB0D7C4E780F8D30EE77EDD5BA55C7D66

exemplo de QR Code 2.0 da NFCe 4.0

Para a geração do Código Hash devem ser seguidos os seguintes passos:

  • Passo 1: Converter o valor do DigestValue da NFC-e (digVal) para HEXA;
  • Passo 2: Concatenar os 7 parâmetros (Chave de Acesso, Versão do QR Code, Tipo do Ambiente, Dia da data de emissão, Valor total, Digest Value e Identificador CSC) separados por “|”, na ordem indicada;
  • Passo 3: Adicionar ao final da string o CSC (disponibilizado pela SEFAZ da UF onde a empresa está localizada);
  • Passo 4: Aplicar o algoritmo SHA-1 sobre o resultado e converter para hexadecimal, correspondendo a 40 bytes.

 

Emissor de NFCe é com a Oobj

Soluções modernas, que oferecem maior valor e integração total com seu sistema ERP são necessárias para gerenciar e centralizar toda a emissão de PDVs e lojas. O Oobj NFCe é um programa que além de oferecer esses recursos, está sempre em dia com a legislação e permite o gerenciamento de todos os seus documentos fiscais em tempo real.

CONHEÇA O OOBJ NFCe

 

8 Comentários

  1. obs.. faltou pernambuco só no primeiro link.. o segundo (off line) está ok.

    • Corrigido o link que aponta para o QR Code 2.0

  2. Boa tarde, gostaria de saber se nos casos de Cancelamento e Inutilização da NFC-e os QRCodes são diferentes tbm ?? Obrigado.

    • Boa tarde,
      Cancelamento e Inutilização não possuem emissão de DANFCE, portanto não há QR Code. Só temos os casos da Autorização de NFCe em emissão Normal ou em Contingência

  3. Olá,
    Esta matéria ainda está atual?, pois não entendo porque alguns QR Codes de supermercado quando lidos trazem apenas um código enorme e não uma url completa como na matéria. elas são de outro tipo? De farmácia, por exemplo, funcionam exatamente como na matéria. Alguém consegue me ajudar, pois quero desenvolver um APP para leitura desses QR Codes para armazenamento dos dados da NF, mas não entendo como identificar os tipos de QR Codes. Agradeço a toda ajuda. Obrigado

  4. tem alguma dll que posso mandar os campos para gerar o QRCode em .bmp para imprimir na Danfe ?

    • Olá, nós não conhecemos, pois a nossa integração via dll só permite enviar txt, com alguns campos do dest e prod.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Ir para o topo