FiscalDev Tools
Voltar para o blog

Como Gerar QR Code para NFC-e: Especificações Técnicas

nfe

Resumo

Categoria
NF-e / NFC-e

Introdução

O QR Code é obrigatório na NFC-e (Nota Fiscal de Consumidor Eletrônica) e serve como mecanismo de validação pelo consumidor. Gerar um QR Code válido requer seguir especificações técnicas rigorosas da SEFAZ.

Neste artigo, vamos detalhar como funciona a formação do QR Code para NFC-e, seus componentes e como gerá-lo corretamente.

O que é o QR Code da NFC-e?

O QR Code da NFC-e é um código bidimensional que contém uma URL com informações da nota fiscal. Ao escanear o QR Code, o consumidor pode:

  • Validar a autenticidade da nota
  • Consultar os dados completos da operação
  • Verificar se a nota foi autorizada pela SEFAZ

Especificações Físicas

  • Formato: QR Code 2D
  • Tamanho mínimo: 2,5cm x 2,5cm
  • Resolução: Mínimo 300 DPI
  • Contraste: Fundo claro, código escuro
  • Margem: Mínimo de 4 módulos em cada lado

Estrutura da URL

A URL do QR Code segue este formato:

https://www.sefaz.rs.gov.br/NFCE/NFCE-COM.aspx?p=AAAA|BBBB|CCCC|DDDD|EEEE|FFFF|GGGG|HHHH|IIII|JJJJ|KKKK

Componentes da URL

| Parâmetro | Descrição | Tamanho | |-----------|-----------|---------| | A | Chave de acesso | 44 dígitos | | B | Data e hora de emissão | AAAA-MM-DDThh:mm:ss | | C | Valor total | Numérico | | D | Digest Value da assinatura | Base64 | | E | UF do emitente | 2 dígitos | | F | CNPJ do emitente | 14 dígitos | | G | Modelo | 2 dígitos (65) | | H | Série | 3 dígitos | | I | Número | 9 dígitos | | J | Forma de emissão | 1 dígito | | K | Tipo de emissão | 1 dígito |

Formação dos Parâmetros

Chave de Acesso (A)

A chave de acesso é composta por 44 dígitos:

35240412345678000195650010000001231234567890

Onde:

  • 35: Código da UF (SP)
  • 24: Ano (2024)
  • 04: Mês (Abril)
  • 12345678000195: CNPJ
  • 65: Modelo (NFC-e)
  • 001: Série
  • 000000123: Número
  • 1: Forma de emissão
  • 23456789: Código aleatório
  • 0: DV

Data e Hora (B)

Formato ISO 8601:

2024-03-12T14:30:00-03:00

Valor Total (C)

Valor total da nota em centavos (inteiro):

123456  // R$ 1.234,56

Digest Value (D)

Hash SHA-256 do elemento <infNLe> em Base64:

3q2+7/0=

UF do Emitente (E)

Código da UF com 2 dígitos:

35  // São Paulo

CNPJ do Emitente (F)

CNPJ sem formatação:

12345678000195

Modelo (G)

Sempre 65 para NFC-e:

65

Série (H)

Série da nota com 3 dígitos:

001

Número (I)

Número da nota com 9 dígitos:

000000123

Forma de Emissão (J)

  • 1: Emissão normal
  • 2: Contingência
  • 3: Contingência offline

Tipo de Emissão (K)

  • 1: Emissão normal
  • 2: Emissão em contingência

Exemplo Completo

Dados da Nota

  • Chave: 35240412345678000195650010000001231234567890
  • Data: 2024-03-12T14:30:00-03:00
  • Valor: R$ 150,00 (15000 centavos)
  • Digest: abc123...
  • UF: 35
  • CNPJ: 12345678000195
  • Modelo: 65
  • Série: 001
  • Número: 000000123
  • Forma emissão: 1
  • Tipo emissão: 1

URL Gerada

https://www.sefaz.rs.gov.br/NFCE/NFCE-COM.aspx?p=35240412345678000195650010000001231234567890|2024-03-12T14:30:00-03:00|15000|abc123...|35|12345678000195|65|001|000000123|1|1

Geração do QR Code

Usando Bibliotecas

JavaScript (qrcode.js):

const QRCode = require('qrcode');

const url = 'https://www.sefaz.rs.gov.br/NFCE/...';
QRCode.toFile('qrcode.png', url, {
  width: 300,
  margin: 2,
  color: {
    dark: '#000000',
    light: '#FFFFFF'
  }
});

Python (qrcode):

import qrcode

url = 'https://www.sefaz.rs.gov.br/NFCE/...'
img = qrcode.make(url)
img.save('qrcode.png')

Usando Nossa Ferramenta

Acesse nosso Gerador QR Code NFC-e:

  1. Informe a chave de acesso
  2. Preencha data/hora e valor
  3. Gere o QR Code
  4. Baixe a imagem

Erros Comuns

URL Mal Formada

Problema: Parâmetros faltando ou incorretos

Solução: Verifique todos os campos obrigatórios

Digest Incorreto

Problema: Hash não confere com o XML

Solução: Recalcule o hash do <infNLe>

Tamanho Insuficiente

Problema: QR Code muito pequeno para leitura

Solução: Use mínimo 2,5cm x 2,5cm

Contraste Baixo

Problema: Cores que dificultam leitura

Solução: Fundo branco, código preto

Validação pelo Consumidor

Como Validar

  1. Abra o aplicativo da SEFAZ ou banco
  2. Escaneie o QR Code
  3. Veja os dados da nota
  4. Confirme se estão corretos

O que Verificar

  • Valor: Confere com o pagamento
  • Data: Da operação
  • Produtos: Listados corretamente
  • Emitente: CNPJ e razão social

Boas Práticas

  1. Teste a leitura: Em diferentes dispositivos
  2. Imprima em alta resolução: Mínimo 300 DPI
  3. Mantenha margens: Para leitura correta
  4. Valide a URL: Antes de gerar a imagem
  5. Armazene a imagem: Para impressão posterior

Conclusão

Gerar QR Code válido para NFC-e requer atenção aos detalhes técnicos. Compreender a estrutura da URL, parâmetros e especificações é essencial para que o consumidor possa validar a nota.

Use nossa ferramenta para gerar QR Codes NFC-e de forma rápida e correta, seguindo todas as especificações da SEFAZ.

FiscalDev Tools

Pronto para colocar em prática?

Use nossas ferramentas gratuitas para validar XMLs, gerenciar certificados e muito mais. Tudo processado localmente no seu navegador.

Explorar ferramentas

Artigos Relacionados

Nós usamos cookies e outras tecnologias semelhantes para melhorar a sua experiência em nossos serviços, personalizar publicidade e recomendar conteúdo de seu interesse. Para mais detalhes, consulte nossa Política de Privacidade.