Pular para o conteúdo

Chave de acesso da NF-e: gerar, validar e decompor

Cole uma chave de 44 posições para ver cada campo e conferir o dígito, ou gere chaves fictícias para testar o seu sistema.

Para conferir o documento de verdade: Portal Nacional da NF-e (abre em nova aba)

Validar e decompor a chave de acesso

Confere no seu navegador. Nada do que você digita ou cola é enviado.

São 44 posições, com ou sem espaços. O prefixo "NFe" do XML também é aceito.
Validar em lote: cole uma coluna da planilha
Ctrl+Enter também valida. Os inválidos aparecem primeiro, com o motivo.
Números fictícios, apenas para teste de software. Eles são sorteados no seu navegador e seguem a regra do dígito verificador, mas não vêm de nenhum cadastro. Usar documento falso para enganar alguém é crime.

A chave de acesso da NF-e tem 44 posições: UF, ano e mês de emissão, CNPJ do emitente, modelo, série, número da nota, tipo de emissão, código numérico e um dígito verificador calculado por módulo 11. Esta página separa esses campos, confere o dígito e gera chaves fictícias para teste. Ela não busca a nota em nenhum cadastro: para ver uma NF-e de verdade, use o Portal Nacional da NF-e (abre em nova aba).

Como usar

  1. Para separar os campos e validar (aba "Validar e decompor"): cole a chave, com ou sem espaços. A página mostra cada campo, diz se o dígito verificador confere e aponta o que estiver fora do esperado, como UF inexistente ou mês 13.
  2. Para gerar: escolha a UF, o mês de emissão, o modelo (55 ou 65) e, se quiser, o tipo de CNPJ do emitente (numérico ou alfanumérico), a série e o número. O que ficar em branco é sorteado. O CNPJ do emitente é sempre sorteado: o campo só escolhe se ele vem com ou sem letras.
  3. Para o lote: informe a quantidade, de 1 a 10.000, e baixe em lista, CSV, CSV (Excel), JSON ou SQL.

Os campos da chave de acesso

A chave não é um número aleatório. Ela junta, sempre na mesma ordem, dados que já estão na nota. O exemplo fictício abaixo é 3526 1111 2223 3300 0181 5500 1000 0001 2311 2345 6787.

Campos da chave de acesso da NF-e, com as posições e o valor no exemplo
CampoPosiçõesTamanhoNo exemploO que é
cUF 1 e 2 2 35 Código da UF do emitente (35 é São Paulo)
AAMM 3 a 6 4 2611 Ano e mês de emissão (novembro de 2026)
CNPJ 7 a 20 14 11222333000181 CNPJ do emitente
mod 21 e 22 2 55 Modelo: 55 para NF-e, 65 para NFC-e
serie 23 a 25 3 001 Série da nota
nNF 26 a 34 9 000000123 Número da nota
tpEmis 35 1 1 Tipo de emissão (1 é a emissão normal)
cNF 36 a 43 8 12345678 Código numérico gerado pelo emitente
cDV 44 1 7 Dígito verificador

A composição da chave está no Manual de Orientação do Contribuinte, publicado no Portal Nacional da NF-e. Série e número entram com zeros à esquerda, por isso a chave tem sempre 44 posições.

Códigos de UF usados na chave

As duas primeiras posições são o código do IBGE para o estado do emitente.

Código de cada UF nas duas primeiras posições da chave
CódigoUFCódigoUFCódigoUFCódigoUF
11 RO 21 MA 28 SE 42 SC
12 AC 22 PI 29 BA 43 RS
13 AM 23 CE 31 MG 50 MS
14 RR 24 RN 32 ES 51 MT
15 PA 25 PB 33 RJ 52 GO
16 AP 26 PE 35 SP 53 DF
17 TO 27 AL 41 PR sem valor sem valor
Algoritmo

Como o dígito verificador é calculado

O dígito é um módulo 11 sobre as 43 primeiras posições. Comece pela direita e multiplique cada posição pelos pesos 2, 3, 4, 5, 6, 7, 8 e 9. Depois do 9, volte ao 2 e continue até a primeira posição. Some os produtos e pegue o resto da divisão por 11. Se o resto for 0 ou 1, o dígito é 0. Senão, é 11 menos o resto.

No exemplo, a soma dos 43 produtos é 488. O resto de 488 por 11 é 4, e 11 − 4 = 7. Por isso a chave termina em 7. Cole a chave no painel para ver a conta posição por posição.

O dígito cobre a chave inteira. Trocar qualquer campo, como o número da nota ou o mês, muda o resultado. É por isso que não dá para "consertar" uma chave editando um pedaço à mão.

Conta feita com o número 3526 1111 2223 3300 0181 5500 1000 0001 2311 2345 6787. Gere ou valide outro acima e a conta muda junto.

Dígito verificador

Cálculo do dígito verificador, posições 1 a 11: valor, peso e produto de cada caractere
Caractere35261111222
Posição1234567891011
Valor (ASCII − 48)35261111222
Peso43298765432
Produto12154548765864
Cálculo do dígito verificador, posições 12 a 22: valor, peso e produto de cada caractere
Caractere33300018155
Posição1213141516171819202122
Valor (ASCII − 48)33300018155
Peso98765432987
Produto27242100031694035
Cálculo do dígito verificador, posições 23 a 33: valor, peso e produto de cada caractere
Caractere00100000012
Posição2324252627282930313233
Valor (ASCII − 48)00100000012
Peso65432987654
Produto00400000058
Cálculo do dígito verificador, posições 34 a 43: valor, peso e produto de cada caractere
Caractere3112345678
Posição34353637383940414243
Valor (ASCII − 48)3112345678
Peso3298765432
Produto92916212425242116
soma 488÷ 11 →resto 4→DV = 7

Resto 4 é maior que 1, então DV = 11 − 4 = 7.

Chave com CNPJ alfanumérico

Com o CNPJ alfanumérico, as posições 7 a 20 da chave podem ter letras. A Nota Técnica Conjunta 2025.001, dos documentos fiscais eletrônicos, trata dessa mudança. A conta do dígito é a mesma, com um passo a mais: cada caractere entra pelo código ASCII menos 48. Os números continuam valendo de 0 a 9, e as letras valem de 17 (A) a 42 (Z).

Exemplo fictício com o emitente 12.ABC.345/01DE-35: as 43 primeiras posições são 35261112ABC34501DE3555001000000123112345678, a soma dá 828, o resto é 3 e o dígito é 8.

  • Guarde a chave como texto de 44 caracteres. Ela nunca coube em coluna numérica, e agora nem só de dígitos é.
  • Troque a regex ^[0-9]{44}$ por uma que aceite letras maiúsculas nas posições do CNPJ.
  • Confira leitores de código de barras e campos de busca que filtram tudo que não é número.

O que a validação confere

  • Tamanho: 44 posições, depois de tirar os espaços.
  • Dígito verificador da chave.
  • Código de UF existente.
  • Mês entre 01 e 12.
  • Modelo 55 ou 65.
  • Letras só nas posições do CNPJ do emitente (posições 7 a 18).

A validação não confere os dígitos verificadores do CNPJ que está dentro da chave (há séries especiais de emitente), não diz se a nota existe, se foi autorizada ou cancelada, nem quem é o destinatário. Isso só o portal oficial mostra, e as chaves geradas aqui não aparecem nele.

Onde usar chaves fictícias

Sistemas que recebem nota de fornecedor, conferem entrada de mercadoria, importam XML ou guardam o DANFE têm um campo de chave. Para testar leitura, máscara, busca e armazenamento, você precisa de chaves bem formadas que não sejam de notas reais de clientes.

Para um cenário fiscal completo, use o mesmo CNPJ do gerador de CNPJ e uma inscrição estadual da mesma UF. Para testar a autorização de uma nota, o caminho é outro: o ambiente de homologação da Sefaz.

Cuidados legais

As chaves são montadas no seu navegador com dados sorteados e não correspondem a nenhuma nota autorizada. Elas servem para testar software.

Nota fiscal é documento fiscal. Usar uma chave inventada para simular uma compra, justificar uma despesa ou enganar alguém pode configurar crime, como falsidade ideológica (art. 299 do Código Penal).

Código

Código pronto para o seu projeto

// Dígito verificador a partir das 43 primeiras posições.
// charCodeAt - 48 serve para dígitos e para as letras do CNPJ alfanumérico.
function dvChave(chave43) {
  let soma = 0;
  let peso = 2;
  for (let i = 42; i >= 0; i--) {
    soma += (chave43.charCodeAt(i) - 48) * peso;
    peso = peso === 9 ? 2 : peso + 1;
  }
  const resto = soma % 11;
  return resto < 2 ? 0 : 11 - resto;
}

// Separa os campos e diz se o dígito confere.
function decomporChave(entrada) {
  const c = String(entrada).replace(/\s/g, '').toUpperCase();
  if (!/^\d{6}[0-9A-Z]{12}\d{26}$/.test(c)) return null;
  return {
    cUF: c.slice(0, 2),
    ano: '20' + c.slice(2, 4),
    mes: c.slice(4, 6),
    cnpj: c.slice(6, 20),
    modelo: c.slice(20, 22),
    serie: c.slice(22, 25),
    numero: c.slice(25, 34),
    tipoEmissao: c.slice(34, 35),
    codigoNumerico: c.slice(35, 43),
    dv: c.slice(43),
    dvConfere: dvChave(c.slice(0, 43)) === Number(c[43]),
  };
}

decomporChave('3526 1111 2223 3300 0181 5500 1000 0001 2311 2345 6787').dvConfere; // true
decomporChave('35261112ABC34501DE35550010000001231123456788').cnpj; // '12ABC34501DE35'
Dúvidas

Perguntas frequentes

O que é a chave de acesso da NF-e?

É um código de 44 posições que identifica uma nota fiscal eletrônica. Ele reúne a UF, o ano e o mês de emissão, o CNPJ do emitente, o modelo, a série, o número da nota, o tipo de emissão, um código numérico e um dígito verificador.

Onde ver os dados de uma nota de verdade pela chave?

Só no Portal Nacional da NF-e ou no site da Sefaz do estado. Aqui você confere o dígito e separa os campos da chave; a página não busca a nota em nenhum cadastro.

A chave gerada aqui é de uma nota de verdade?

Não. Ela é montada com dados sorteados e só segue a regra de formação. Não existe nota autorizada com essa chave, e o portal oficial não a encontra. Serve para teste de software.

Como calcular o dígito verificador da chave de acesso?

Multiplique as 43 primeiras posições, da direita para a esquerda, pelos pesos 2 a 9, repetindo a sequência. Some e pegue o resto da divisão por 11. Resto 0 ou 1 dá dígito 0. Nos outros casos, o dígito é 11 menos o resto.

Como descobrir o CNPJ do emitente pela chave?

O CNPJ do emitente fica nas posições 7 a 20 da chave. Cole a chave no painel e a página mostra o campo já separado.

A chave de acesso pode ter letras?

Pode, nas posições do CNPJ, quando o emitente tem CNPJ alfanumérico. As outras posições continuam numéricas, e o dígito verificador é calculado com cada caractere valendo o código ASCII menos 48.

Blog

Leia também

Ferramentas

Veja também

Atualizado em 14/11/2026.