Chave NF-e: Geração com CNPJ Numérico e Alfanumérico

Tutorial técnico com estrutura completa, algoritmo do dígito verificador e exemplos práticos verificados.

📅 9 de junho de 2026 • ⏱️ 13 min de leitura

Resumo: A chave de acesso da NF-e é uma sequência de 44 caracteres que identifica unicamente cada nota fiscal eletrônica no ambiente SEFAZ. Este guia detalha cada um dos nove campos da chave, explica o algoritmo Módulo 11 para cálculo do dígito verificador e demonstra, com exemplos calculados passo a passo, como gerar chaves com CNPJ numérico (formato atual) e com CNPJ alfanumérico (vigente a partir de julho/2026, conforme IN RFB 2.229/2024).

Geração da chave de acesso NF-e com CNPJ numérico e alfanumérico — estrutura de 44 posições


1. O que é a Chave de Acesso da NF-e?

A chave de acesso (também chamada de chave da NF-e) é o identificador único de cada Nota Fiscal Eletrônica (NF-e) ou Nota Fiscal de Consumidor Eletrônica (NFC-e) no sistema nacional da SEFAZ.

Ela possui 44 caracteres alfanuméricos e cumpre três funções simultâneas:

  1. Identificação — distingue o documento de todos os outros emitidos no País.
  2. Validação — o último dígito (dígito verificador) detecta erros de digitação ou transmissão.
  3. Consulta — o receptor utiliza a chave para verificar a autenticidade do documento no portal da SEFAZ (https://www.nfe.fazenda.gov.br/portal/consultaRecaptcha.aspx).

A chave aparece no DANFE em formato de código de barras linear (Code 128) e também em forma textual, normalmente agrupada em blocos de 4 dígitos por legibilidade.

📌 Importante: A chave não substitui a assinatura digital do XML. A autenticidade do documento é garantida pelo certificado digital A1 ou A3 do emitente. A chave serve como índice de localização no sistema SEFAZ.


2. Estrutura da Chave: os 9 Campos

A chave de 44 posições é composta pela concatenação de nove campos, sem separadores:

CampoPosiçãoTamanhoConteúdo
cUF1–22Código IBGE da UF do emitente
AAMM3–64Ano e mês de emissão (AAMM)
CNPJ7–2014CNPJ do emitente (numérico ou alfanumérico)
mod21–222Modelo do documento: 55 = NF-e / 65 = NFC-e
serie23–253Série da nota (000 a 999)
nNF26–349Número sequencial da nota (1 a 999.999.999)
tpEmis351Tipo de emissão (Normal, Contingência etc.)
cNF36–438Código aleatório do emitente
cDV441Dígito verificador (Módulo 11)

⚠️ Atenção: A numeração das posições é 1-indexada (a primeira posição é 1). Internamente, ao processar a string em código, use índices 0 a 43.


3. Descrição Detalhada de Cada Campo

3.1 cUF — Código da UF (posições 1–2)

Código numérico de dois dígitos definido pelo IBGE para a Unidade Federativa do emitente. Não é o código de DDD nem a posição do estado no alfabeto.

UFcUFUFcUFUFcUF
RO11MA21MG31
AC12PI22ES32
AM13CE23RJ33
RR14RN24SP35
PA15PB25PR41
AP16PE26SC42
TO17AL27RS43
SE28MS50
BA29MT51
GO52
DF53

📌 Observação: SP possui código 35, não 34 — não há estado com código IBGE 34. O código 34 é reservado.


3.2 AAMM — Ano e Mês de Emissão (posições 3–6)

Quatro dígitos no formato AAMM:

  • AA = dois últimos dígitos do ano (ex.: 26 para 2026)
  • MM = mês com dois dígitos (ex.: 06 para junho)

Exemplo: junho de 2026 → 2606


3.3 CNPJ do Emitente (posições 7–20)

Campo de 14 caracteres contendo o CNPJ do emitente, sem formatação (sem pontos, barras ou hífens).

CNPJ Numérico (formato atual)

Até junho de 2026, o CNPJ é composto exclusivamente por dígitos (0–9).

Exemplo: 11.222.333/0001-81 → 11222333000181

CNPJ Alfanumérico (IN RFB 2.229/2024 — vigência: 1º/07/2026)

A Instrução Normativa RFB nº 2.229, de 3 de setembro de 2024, introduziu o formato alfanumérico para o CNPJ. A partir de 1º de julho de 2026, novos registros podem conter letras maiúsculas (A–Z) e dígitos (0–9) nas 14 posições.

Por que isso impacta a NF-e?

O campo CNPJ da chave de acesso (posições 7–20) passa a aceitar os 36 caracteres alfanuméricos (0–9 + A–Z), conforme previsto na NT SEFAZ 2019.001. O algoritmo do dígito verificador (Módulo 11) utiliza o valor numérico de cada caractere para o cálculo, onde:

CaractereValor numérico
00
11
99
A17
B18
C19
Z42

O valor é obtido pela fórmula: valor = código_ASCII − 48

Assim, 'A'.charCodeAt(0) − 48 = 65 − 48 = 17.

⚠️ Atenção: CNPJs alfanuméricos devem ser informados em letras maiúsculas. O SEFAZ rejeita chaves com letras minúsculas.


3.4 mod — Modelo do Documento (posições 21–22)

ValorDocumento
55NF-e (Nota Fiscal Eletrônica)
65NFC-e (Nota Fiscal de Consumidor Eletrônica)

3.5 serie — Série da Nota (posições 23–25)

Três dígitos, com zeros à esquerda se necessário. A série 001 é a padrão para emissão normal. Séries específicas são utilizadas para emissão em contingência, dependendo do tipo (tpEmis).


3.6 nNF — Número da Nota Fiscal (posições 26–34)

Número sequencial da nota, com 9 dígitos e zeros à esquerda. A numeração inicia em 000000001 e vai até 999999999.

Nota nº 42       → 000000042
Nota nº 1.500.000 → 001500000

3.7 tpEmis — Tipo de Emissão (posição 35)

ValorDescrição
1Normal
2Contingência em Formulário de Segurança (FS)
3Regime Especial NFF (SCAN)
4EPEC — Evento Prévio de Emissão em Contingência
5Contingência FS-DA
6SVC-AN (SEFAZ Virtual de Contingência AN)
7SVC-RS (SEFAZ Virtual de Contingência RS)
9Off-line NFC-e

Na grande maioria das emissões, o valor é 1 (Normal).


3.8 cNF — Código Aleatório do Emitente (posições 36–43)

Campo de 8 caracteres gerado aleatoriamente pelo emitente. Sua finalidade é garantir a unicidade da chave em cenários onde dois documentos poderiam ter os mesmos campos cUF, AAMM, CNPJ, mod, serie e nNF (por exemplo, em casos de contingência com reaproveitamento de numeração).

💡 Boas práticas para o cNF:

  • Utilize geração criptograficamente aleatória (ex.: crypto.randomInt() em Node.js).
  • Nunca use valores fixos como 00000000 ou sequenciais previsíveis.
  • O cNF deve ser distinto para cada nota, mesmo que os demais campos se repitam.

3.9 cDV — Dígito Verificador (posição 44)

Um único dígito (0–9) calculado pelo algoritmo Módulo 11 sobre os 43 caracteres anteriores. É o único campo que não é informado pelo emitente — ele é calculado.


4. Algoritmo do Dígito Verificador (Módulo 11)

O dígito verificador da chave NF-e é calculado da seguinte forma:

Passo 1 — Atribuir valores numéricos

Para cada caractere da chave (posições 1–43), obtenha o valor numérico:

  • Dígito '0''9': valor = o próprio dígito (0 a 9)
  • Letra 'A''Z': valor = código_ASCII − 48 (17 a 42)

Passo 2 — Multiplicar por pesos ciclados

Percorra os caracteres da direita para a esquerda (posição 43 até posição 1), multiplicando cada valor pelo peso correspondente. Os pesos ciclam entre 2 e 9:

posição 43 → peso 2
posição 42 → peso 3
posição 41 → peso 4
...
posição 36 → peso 9
posição 35 → peso 2  ← reinicia o ciclo
posição 34 → peso 3
...

Passo 3 — Somar os produtos

soma = Σ (valor[i] × peso[i])

Passo 4 — Calcular o resto

resto = soma % 11

Passo 5 — Determinar o DV

se resto < 2  →  cDV = 0
se resto ≥ 2  →  cDV = 11 − resto

5. Exemplo Prático 1 — Chave com CNPJ Numérico

Dados da nota:

CampoValorSignificado
cUF35São Paulo
AAMM2606Junho/2026
CNPJ11222333000181CNPJ numérico fictício
mod55NF-e
serie001Série 1
nNF000000001Nota nº 1
tpEmis1Normal
cNF00000001Código aleatório (simplificado para o exemplo)

Concatenação dos 43 campos:

35 2606 11222333000181 55 001 000000001 1 00000001
→ 35260611222333000181550010000000011000000001

Cálculo do DV (trecho representativo, da direita para a esquerda):

Posição (da direita)CharValorPesoProduto
11122
2–8003–90
91122
101133
2255735
2355840
241199
2588216

Soma total: 342

342 % 11 = 1   →   resto < 2   →   cDV = 0

Chave de acesso completa (44 posições):

35260611222333000181550010000000011000000010

6. Exemplo Prático 2 — Chave com CNPJ Alfanumérico

Dados da nota:

CampoValorSignificado
cUF35São Paulo
AAMM2607Julho/2026
CNPJAB000000000001CNPJ alfanumérico fictício
mod55NF-e
serie001Série 1
nNF000000001Nota nº 1
tpEmis1Normal
cNF00000001Código aleatório

Concatenação dos 43 campos:

35 2607 AB000000000001 55 001 000000001 1 00000001
→ 352607AB000000000001550010000000011000000001

Destaque: valores numéricos das letras no CNPJ:

Posição (da direita)CharValorPesoProduto
37B18 (66 − 48)590
38A17 (65 − 48)6102

Observe como as letras geram valores maiores que qualquer dígito (A = 17 > 9). Isso é esperado e definido na especificação.

Soma total: 421

421 % 11 = 3   →   resto ≥ 2   →   cDV = 11 − 3 = 8

Chave de acesso completa (44 posições):

352607AB0000000000015500100000000110000000018

💡 Validação: Você pode confirmar ambas as chaves na Ferramenta de Validação de Chave NF-e do msdicas.


7. Implementação no ERP

7.1 Fluxo de Geração

1. Capturar cUF, AAMM, CNPJ, mod, serie, nNF, tpEmis
2. Gerar cNF aleatório (8 caracteres, 0–9 ou A–Z maiúsculos)
3. Converter letras do CNPJ para maiúsculas
4. Concatenar os 43 campos
5. Calcular cDV pelo Módulo 11
6. Anexar cDV ao final → chave completa de 44 caracteres

7.2 Pseudocódigo do Módulo 11

function calcularDV(chave43) {
  let soma = 0;
  let peso = 2;

  // Percorre da direita para a esquerda
  for (let i = 42; i >= 0; i--) {
    const char = chave43[i].toUpperCase();
    const valor = char.charCodeAt(0) - 48; // dígito OU letra
    soma += valor * peso;
    peso = peso === 9 ? 2 : peso + 1;      // cicla entre 2 e 9
  }

  const resto = soma % 11;
  return resto < 2 ? 0 : 11 - resto;
}

7.3 Validação antes de transmitir

  • Comprimento exato: 44 caracteres
  • Apenas 0–9 e A–Z (nenhuma letra minúscula, sem espaços)
  • cUF reconhecido (tabela IBGE)
  • AAMM: mês entre 01 e 12
  • mod = 55 ou 65
  • tpEmis = 1–9 (conforme tabela)
  • cDV calculado coincide com o informado

8. Riscos Fiscais

ErroConsequência
CNPJ em letras minúsculasRejeição imediata pelo SEFAZ (schema validation)
cNF fixo ou previsívelColisão de chave; NF duplicada no ambiente SEFAZ
DV incorretoErro de validação antes mesmo da autorização
cUF divergente da UF real do emitenteRejeição com código de erro de inconsistência
AAMM com mês 00 ou 13+Rejeição por data de emissão inválida
Chave com menos de 44 caracteresRejeição estrutural — validação de tamanho

⚠️ Atenção fiscal: Uma chave gerada incorretamente resulta em nota rejeitada ou denegada. Notas denegadas não podem ser corrigidas — o número de NF é perdido e deve ser inutilizado via evento de inutilização junto ao SEFAZ.


  • IN RFB nº 2.229/2024 — Institui o CNPJ alfanumérico e define os critérios de atribuição e uso a partir de julho/2026.
  • NT SEFAZ 2019.001 — Especifica o formato da chave de acesso NF-e, incluindo suporte a caracteres alfanuméricos nas posições do CNPJ e o algoritmo Módulo 11 para cDV.
  • Ajuste SINIEF 07/2005 e alterações posteriores — Institui a NF-e e define os campos obrigatórios da chave de acesso.
  • Manual de Orientação do Contribuinte (MOC) NF-e — Documenta a estrutura completa do XML e da chave de acesso, publicado e mantido pela SEFAZ Nacional.

Conclusão

A geração correta da chave de acesso NF-e exige atenção a nove campos interdependentes:

  • cUF determina a jurisdição fiscal da nota
  • AAMM registra o período de competência
  • CNPJ identifica o emitente — e a partir de julho/2026, pode ser alfanumérico
  • mod distingue NF-e de NFC-e
  • serie, nNF controlam a numeração sequencial
  • tpEmis indica o ambiente de emissão (normal ou contingência)
  • cNF garante unicidade com aleatoriedade criptográfica
  • cDV valida a integridade pelo Módulo 11, tratando letras como valores numéricos via ASCII − 48

A principal mudança prática trazida pelo CNPJ alfanumérico é que o cálculo do cDV já absorve letras naturalmente — o algoritmo Módulo 11 com charCode − 48 funciona igualmente para dígitos e para letras A–Z. Nenhuma alteração de lógica é necessária nos sistemas que já implementam corretamente o algoritmo conforme a NT SEFAZ 2019.001.

💡 Continue aprendendo: Para validar chaves NF-e no dia a dia sem precisar calcular manualmente, use a Ferramenta de Validação de Chave NF-e — informe a chave de 44 posições e veja o detalhamento campo a campo.


Referências

Comentários

Não foi possível carregar os comentários no momento.

Deixe seu comentário