Pular para o conteúdo
Fiscal

Chave de acesso da NF-e em homologação, bloco a bloco

Publicado em · Atualizado em · 6 min de leitura · Equipe Gerador Brasil

A chave de acesso da NF-e tem 44 posições e é igual em homologação e em produção: nada nela indica o ambiente, que vai no campo tpAmb da nota. Em homologação a Sefaz recalcula a chave e rejeita a nota se o dígito, o código numérico ou o campo Id não baterem. Uma chave sorteada serve para testar o seu sistema, não para a Sefaz.

A chave de acesso da NF-e tem 44 posições e, em homologação, é montada do mesmo jeito que em produção. O ambiente não aparece na chave: ele é informado no campo tpAmb da nota. O que muda em homologação é o que a Sefaz faz com a chave que você mandou: ela recalcula, compara e rejeita se algo não fechar.

Para separar os campos de uma chave e conferir o dígito, use a ferramenta que decompõe a chave de 44 posições. Este texto trata de outra coisa: o que acontece com a chave no ambiente de testes.

A chave de homologação é diferente da de produção?

Não. Os nove blocos são os mesmos, e nenhum guarda o ambiente. Quem diz se a nota é de teste é o campo tpAmb: 1 é produção e 2 é homologação.

Se o tpAmb não bate com o ambiente do serviço que recebeu a nota, a Sefaz rejeita com o código 252 (“Ambiente informado diverge do Ambiente de recebimento”). É o erro de quem aponta o sistema para o endereço de homologação e esquece de trocar o parâmetro.

Quais são os blocos e o que conferir em cada um?

Exemplo fictício, gerado pelo site: 3526 1155 6585 0500 0130 5500 1000 0012 3416 4484 6613.

Bloco Posições No exemplo O que conferir no seu sistema
UF 1 a 2 35 Código do IBGE da UF do emitente (35 é SP)
Ano e mês 3 a 6 2611 Mês de 01 a 12; é o mês de emissão
CNPJ do emitente 7 a 20 55658505000130 Texto de 14 posições, e não número
Modelo 21 a 22 55 55 para NF-e, 65 para NFC-e
Série 23 a 25 001 Com zeros à esquerda
Número 26 a 34 000001234 Com zeros à esquerda
Tipo de emissão 35 1 1 é a emissão normal
Código numérico (cNF) 36 a 43 64484661 Não pode ser repetido, crescente nem igual ao número
Dígito verificador 44 3 Módulo 11 sobre as 43 posições anteriores

O CNPJ do exemplo foi gerado pelo gerador de CNPJ e é fictício. Os zeros à esquerda de série e número existem para a chave ter sempre 44 posições.

Como o dígito da chave é calculado?

Por módulo 11, com pesos de 2 a 9 da direita para a esquerda, recomeçando em 2 depois do 9. Resto 0 ou 1 dá dígito 0; nos outros casos, o dígito é 11 menos o resto. A teoria do módulo 11 está em outro texto do blog.

No exemplo, as 43 primeiras posições dão soma 646. O resto de 646 por 11 é 8, e o dígito é 11 − 8 = 3. O código abaixo foi executado no Node e confirma a conta.

const valor = (c) => c.charCodeAt(0) - 48; // 0-9 valem eles mesmos; A = 17
function dvChave(base43) {
  let soma = 0;
  [...base43].reverse().forEach((c, i) => {
    soma += valor(c) * (2 + (i % 8)); // pesos 2 a 9, da direita para a esquerda
  });
  const resto = soma % 11;
  return { soma, resto, dv: resto < 2 ? 0 : 11 - resto };
}

const chave = '35261155658505000130550010000012341644846613';
const calculo = dvChave(chave.slice(0, 43));
console.log(calculo, String(calculo.dv) === chave[43]);
// { soma: 646, resto: 8, dv: 3 } true

// Mesma chave com o mês trocado de 11 para 12, sem recalcular o dígito
const adulterada = chave.slice(0, 4) + '12' + chave.slice(6);
console.log(String(dvChave(adulterada.slice(0, 43)).dv) === adulterada[43]);
// false

// 44 dígitos não cabem em Number
console.log(Number(chave), String(Number(chave)) === chave);
// 3.5261155658505e+43 false

A última linha é um aviso: chave guardada como número perde dígitos. Use texto.

Que rejeições a chave provoca em homologação?

As regras abaixo vêm da tabela de regras de validação do MOC publicada pela Sefaz-PR. A tabela tem outras linhas, e os textos mudam entre versões do manual, então confira a versão em vigor antes de tratar um código em produção.

Código O que a Sefaz verificou Causa comum em teste
502 O campo Id não corresponde à concatenação dos campos da nota Chave montada num passo e campos alterados depois
253 O dígito verificador da chave composta é inválido Dígito digitado à mão ou calculado com pesos errados
897 O código numérico (cNF) tem sequência repetida ou crescente, ou é igual ao número da nota cNF 00000001, 12345678 ou cópia do número
598 Em tpAmb 2, o nome do destinatário não é o texto exigido para homologação Nome real do cliente no destinatário
252 O tpAmb da nota diverge do ambiente do serviço Parâmetro de ambiente trocado só em parte do sistema

O texto exigido pela regra do código 598 é NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL, sem acento nem cedilha. A regra não se aplica ao tipo de emissão 3.

O que muda com o CNPJ alfanumérico?

As 12 primeiras posições do CNPJ na chave (posições 7 a 18) passam a aceitar letras de A a Z, e as duas últimas continuam numéricas. Na conta do dígito da chave, cada caractere vale o código ASCII menos 48, como no próprio CNPJ com letras. O padrão da chave fica [0-9]{6}[A-Z0-9]{12}[0-9]{26}, segundo a Nota Técnica Conjunta 2025.001.

Se o seu código de parse usa \d{44} ou converte a chave para número, ele quebra na primeira nota de um emitente com letras. A função dvChave acima já trata letras, porque usa charCodeAt. O gerador do site tem a opção de CNPJ alfanumérico no emitente.

O que a chave sorteada faz e não faz em homologação?

Faz: alimenta o teste do seu sistema. Dá para testar o parse dos blocos, a validação do dígito, a coluna de 44 posições, a importação de XML e a conciliação entre nota e cadastro.

Não faz: ser autorizada. A chave de uma nota é montada pelo emitente a partir dos dados da própria nota e vai dentro de um XML assinado. Uma chave sorteada não corresponde a nota alguma e não aparece em consulta nenhuma. Para ver uma nota real, o caminho é a consulta do Portal Nacional da NF-e.

O que testar no seu sistema antes de ir para homologação?

  • Coluna de texto com 44 posições, sem conversão para número.
  • Aceitar NFe na frente da chave, como vem no atributo Id do XML, e tirar o prefixo antes de calcular.
  • Série e número com zeros à esquerda, sem perdê-los na exportação.
  • Chave com letra nas posições do CNPJ.
  • Chave com dígito errado, mês 13 ou UF inexistente, para ver se o seu sistema barra antes da Sefaz.
  • O texto do destinatário em tpAmb 2, sem acento.

Para gerar chaves com UF, mês, modelo e emitente à sua escolha, e conferir o dígito de cada uma, abra a página da chave de acesso. As chaves são sorteadas no navegador e servem apenas para testar software.

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.
Dúvidas

Perguntas frequentes

A chave de acesso muda em homologação?

Não. A composição é a mesma de produção, com 44 posições. O ambiente é informado no campo tpAmb da nota (1 para produção, 2 para homologação), e a Sefaz rejeita a nota quando ele diverge do ambiente do serviço que a recebeu.

Qual rejeição aparece quando o dígito verificador da chave está errado?

A 253, com a mensagem de dígito verificador da chave de acesso composta inválido. Se o campo Id não corresponde à concatenação dos campos da nota, a rejeição é a 502.

Uma chave gerada por um site passa em homologação?

Ela passa na conta do dígito, mas não corresponde a nota nenhuma. Quem monta a chave é o emitente, com os dados reais da nota assinada. Use a chave sorteada para testar parser, validação e importação do seu sistema.

Fontes

Blog

Leia também

Ferramenta

Veja também

Atualizado em 14/11/2026.