-
-
Notifications
You must be signed in to change notification settings - Fork 107
Description
Contexto
A partir de julho de 2026, a Receita Federal começará a emitir CNPJs no novo formato alfanumérico, que aceita letras (A-Z) além de números.
Essa mudança é necessária porque os números de CNPJ estão se esgotando. Em setembro de 2024 já existiam mais de 58 milhões de empresas registradas, com cerca de 6 milhões de novas empresas por ano. A previsão é que os CNPJs numéricos se esgotem em 4 a 6 anos.
CNPJs existentes continuam válidos e o formato da máscara não muda (XX.XXX.XXX/XXXX-XX).
O que muda?
| CNPJ Atual | CNPJ Alfanumérico | |
|---|---|---|
| Caracteres permitidos | 0-9 |
0-9 e A-Z |
| Estrutura | 8 dígitos raiz + 4 ordem + 2 DV | 8 alfanum. raiz + 4 ordem + 2 DV numéricos |
| Máscara | XX.XXX.XXX/XXXX-XX |
XX.XXX.XXX/XXXX-XX (igual) |
Importante: Os dígitos verificadores (DV) continuam sendo sempre numéricos (0-9).
Como calcular o DV do CNPJ Alfanumérico
O algoritmo continua usando módulo 11 com pesos de 2 a 9, mas agora cada caractere precisa ser convertido para um valor numérico:
Caractere -> Valor para cálculo = código ASCII - 48
'0' a '9' = 0 a 9
'A' a 'Z' = 17 a 42
Exemplo prático
CNPJ sem DV: 12ABC34501DE
1º Dígito Verificador:
Caractere: 1 2 A B C 3 4 5 0 1 D E
Valor: 1 2 17 18 19 3 4 5 0 1 20 21
Peso: 5 4 3 2 9 8 7 6 5 4 3 2
Produto: 5 8 51 36 171 24 28 30 0 4 60 42
Soma = 459
Resto = 459 % 11 = 8
1º DV = 11 - 8 = 3
2º Dígito Verificador: adiciona o 1º DV e repete o processo com pesos [6,5,4,3,2,9,8,7,6,5,4,3,2]
Soma = 424
Resto = 424 % 11 = 6
2º DV = 11 - 6 = 5
Resultado: 12.ABC.345/01DE-35
Se o resto for 0 ou 1, o DV é 0.
O que precisa ser alterado
- Validação de caracteres: aceitar A-Z nas 12 primeiras posições
- Cálculo do DV: usar
ord(char) - 48em vez do valor direto - Regex: atualizar para permitir letras
- Testes: adicionar casos com CNPJs alfanuméricos
O algoritmo atualizado é retrocompatível: CNPJs numéricos continuam validando normalmente.