Na NFC-e 4.00 o QR Code 2.0 deverá ser composto de duas maneiras diferentes: uma para NFCe emitidas de forma online (sem contingência) e outra para as NFCe emitidas na contingência offline.

NFC-e Online (sem contingência)

A URL da emissão sem contingência é formada pelas seguintes informações:

  1. URL da Sefaz – link de consulta da Sefaz Autorizadora. A lista com todos os estados é sempre atualizada e pode ser encontrada aqui;
  2. Chave de Acesso – identificador da nota;
  3. Versão do QR Code – deve ser informado o valor “2”;
  4. Tipo do Ambiente – informar o ambiente que a NFCe foi emitida (1 – Produção ou 2 – Homologação);
  5. 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;
  6. 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>

 Confira abaixo a distribuição pela quantidade de caracteres de cada campo: 


*O asterisco (*) na tabela acima indica que o preenchimento deve ser exato com a quantidade de bytes indicada.

**Não há uma quantidade de caracteres definida.


NFC-e Offline (contingência)

Os campos necessários são os seguintes:

  1. URL da Sefaz – link de consulta da Sefaz Autorizadora. A lista com todos os estados é sempre atualizada e pode ser encontrada aqui;
  2. Chave de Acesso – identificador da nota;
  3. Versão do QR Code – deve ser informado o valor “2”;
  4. Tipo do Ambiente – informar o ambiente que a NFCe foi emitida (1 – Produção ou 2 – Homologação);
  5. Dia da data de emissão – informar o dia (dois dígitos) em que a nota foi emitida;
  6. Valor total – informar o valor total da NFCe. Como separador de decimal, deve-se usar o ponto e não a vírgula;
  7. Digest Value – campo do Digest Value presente na NFCe offline;
  8. 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;
  9. 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>

 Segue abaixo a distribuição pela quantidade de caracteres de cada campo para NFC-e emitida em contingência:


*O asterisco (*) na tabela acima indica que o preenchimento deve ser exato com a quantidade de bytes indicada.

**Não há uma quantidade de caracteres definida.


Referência