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).

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:
- Identificação — distingue o documento de todos os outros emitidos no País.
- Validação — o último dígito (dígito verificador) detecta erros de digitação ou transmissão.
- 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:
| Campo | Posição | Tamanho | Conteúdo |
|---|---|---|---|
cUF | 1–2 | 2 | Código IBGE da UF do emitente |
AAMM | 3–6 | 4 | Ano e mês de emissão (AAMM) |
CNPJ | 7–20 | 14 | CNPJ do emitente (numérico ou alfanumérico) |
mod | 21–22 | 2 | Modelo do documento: 55 = NF-e / 65 = NFC-e |
serie | 23–25 | 3 | Série da nota (000 a 999) |
nNF | 26–34 | 9 | Número sequencial da nota (1 a 999.999.999) |
tpEmis | 35 | 1 | Tipo de emissão (Normal, Contingência etc.) |
cNF | 36–43 | 8 | Código aleatório do emitente |
cDV | 44 | 1 | Dí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.
| UF | cUF | UF | cUF | UF | cUF |
|---|---|---|---|---|---|
| RO | 11 | MA | 21 | MG | 31 |
| AC | 12 | PI | 22 | ES | 32 |
| AM | 13 | CE | 23 | RJ | 33 |
| RR | 14 | RN | 24 | SP | 35 |
| PA | 15 | PB | 25 | PR | 41 |
| AP | 16 | PE | 26 | SC | 42 |
| TO | 17 | AL | 27 | RS | 43 |
| SE | 28 | MS | 50 | ||
| BA | 29 | MT | 51 | ||
| GO | 52 | ||||
| DF | 53 |
📌 Observação: SP possui código
35, não34— 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.:26para 2026)MM= mês com dois dígitos (ex.:06para 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:
| Caractere | Valor numérico |
|---|---|
0 | 0 |
1 | 1 |
| … | … |
9 | 9 |
A | 17 |
B | 18 |
C | 19 |
| … | … |
Z | 42 |
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)
| Valor | Documento |
|---|---|
55 | NF-e (Nota Fiscal Eletrônica) |
65 | NFC-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)
| Valor | Descrição |
|---|---|
1 | Normal |
2 | Contingência em Formulário de Segurança (FS) |
3 | Regime Especial NFF (SCAN) |
4 | EPEC — Evento Prévio de Emissão em Contingência |
5 | Contingência FS-DA |
6 | SVC-AN (SEFAZ Virtual de Contingência AN) |
7 | SVC-RS (SEFAZ Virtual de Contingência RS) |
9 | Off-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
00000000ou 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:
| Campo | Valor | Significado |
|---|---|---|
| cUF | 35 | São Paulo |
| AAMM | 2606 | Junho/2026 |
| CNPJ | 11222333000181 | CNPJ numérico fictício |
| mod | 55 | NF-e |
| serie | 001 | Série 1 |
| nNF | 000000001 | Nota nº 1 |
| tpEmis | 1 | Normal |
| cNF | 00000001 | Có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) | Char | Valor | Peso | Produto |
|---|---|---|---|---|
| 1 | 1 | 1 | 2 | 2 |
| 2–8 | 0 | 0 | 3–9 | 0 |
| 9 | 1 | 1 | 2 | 2 |
| 10 | 1 | 1 | 3 | 3 |
| … | … | … | … | … |
| 22 | 5 | 5 | 7 | 35 |
| 23 | 5 | 5 | 8 | 40 |
| 24 | 1 | 1 | 9 | 9 |
| 25 | 8 | 8 | 2 | 16 |
| … | … | … | … | … |
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:
| Campo | Valor | Significado |
|---|---|---|
| cUF | 35 | São Paulo |
| AAMM | 2607 | Julho/2026 |
| CNPJ | AB000000000001 | CNPJ alfanumérico fictício |
| mod | 55 | NF-e |
| serie | 001 | Série 1 |
| nNF | 000000001 | Nota nº 1 |
| tpEmis | 1 | Normal |
| cNF | 00000001 | Có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) | Char | Valor | Peso | Produto |
|---|---|---|---|---|
| 37 | B | 18 (66 − 48) | 5 | 90 |
| 38 | A | 17 (65 − 48) | 6 | 102 |
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–9eA–Z(nenhuma letra minúscula, sem espaços) -
cUFreconhecido (tabela IBGE) -
AAMM: mês entre01e12 -
mod=55ou65 -
tpEmis=1–9(conforme tabela) -
cDVcalculado coincide com o informado
8. Riscos Fiscais
| Erro | Consequência |
|---|---|
| CNPJ em letras minúsculas | Rejeição imediata pelo SEFAZ (schema validation) |
| cNF fixo ou previsível | Colisão de chave; NF duplicada no ambiente SEFAZ |
| DV incorreto | Erro de validação antes mesmo da autorização |
| cUF divergente da UF real do emitente | Rejeiçã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 caracteres | Rejeiçã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.
9. Base Legal
- 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
- Instrução Normativa RFB nº 2.229/2024 — Receita Federal do Brasil
- NT NF-e 2019.001 — SEFAZ Nacional — Nota Técnica com o algoritmo de validação da chave
- Portal Nacional da NF-e — Consulta e verificação de chaves
- Manual de Orientação do Contribuinte (MOC) NF-e — SEFAZ Nacional
- Ajuste SINIEF 07/2005 — CONFAZ, institui a NF-e
Comentários
Não foi possível carregar os comentários no momento.
Deixe seu comentário