Chave de acesso da NF-e em homologação, bloco a bloco
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
NFena frente da chave, como vem no atributoIddo 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
tpAmb2, 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.
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
Leia também
NIT, NIS, PIS e PASEP: qual a diferença e qual número usar
NIT é o número de inscrição do trabalhador na Previdência Social (INSS). Quem já tem PIS, PASEP ou NIS usa esse mesmo número como NIT e não ganha o…
14/11/2026 Massa de testeCPF e CNPJ válidos para teste: de onde tirar sem usar dado real
Para testar com CPF e CNPJ válidos, use números gerados por cálculo, que passam na conta do dígito verificador mas não saem de cadastro nenhum, em…
14/11/2026Veja também
Atualizado em 14/11/2026.