Validador de Chave de Acesso NFS-e Nacional
Valide a autenticidade estrutural, município emissor, inscrição federal e dígito verificador da Chave NFS-e Nacional de 50 dígitos.
Sobre a Validação da Chave NFS-e Nacional
A validação inspeciona a sequência numérica de 50 caracteres (ou 53 se prefixada com 'NFS'), o código IBGE municipal, a conformidade do CPF ou CNPJ embutido e a precisão do dígito verificador Módulo 11.
Inconsistências na chave de acesso inviabilizam a escrituração fiscal no SPED e impedem a integração com os sistemas de gestão municipal (Sefin).
Anatomia & Estrutura da Chave NFS-e Nacional (50 Dígitos)
Estrutura oficial padronizada pelo Manual de Orientação do Contribuinte (MOC) da NFS-e Nacional:
| Posição | Campo | Tamanho | Significado & Regra | Exemplo |
|---|---|---|---|---|
| 01 a 07 | cMun | 7 dígitos | Código IBGE do município de incidência do ISS | 3550308 (SP) |
| 08 | tpAmb | 1 dígito | Ambiente gerador (1=Próprio do Município, 2=Nacional) | 2 |
| 09 | tpInsc | 1 dígito | Tipo de inscrição (1=CPF, 2=CNPJ) | 2 |
| 10 a 23 | Insc | 14 caracteres | Inscrição federal (CPF com 3 zeros à esquerda ou CNPJ) | 00000000000191 |
| 24 a 36 | nNFSe | 13 dígitos | Número sequencial da NFS-e no Ambiente Nacional | 0000000000001 |
| 37 a 40 | AAMM | 4 dígitos | Ano e mês de emissão do documento fiscal | 2609 |
| 41 a 49 | cNFSe | 9 dígitos | Código numérico aleatório de segurança | 123456789 |
| 50 | cDV | 1 dígito | Dígito verificador calculado via Módulo 11 | 0 |
Algoritmo de Cálculo do Dígito Verificador (Módulo 11)
Cálculo oficial efetuado pela Receita Federal e municípios sobre as primeiras 49 posições:
S = Σ(d_i * weight_i) | DV = rem < 2 ? 0 : 11 - rem
- 1. Percorrer os caracteres da posição 49 até a 1 (da direita para a esquerda).
- 2. Converter caracteres para valor numérico (ASCII - 48).
- 3. Multiplicar cada valor pelo peso correspondente no ciclo [2, 3, 4, 5, 6, 7, 8, 9, 2, 3...].
- 4. Somar todos os produtos e calcular o resto da divisão inteira por 11.
- 5. Se o resto for 0 ou 1, o DV é 0; caso contrário, o DV é 11 menos o resto.