Skip to content

Suporte ao novo CNPJ Alfanumérico #685

@morais90

Description

@morais90

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

  1. Validação de caracteres: aceitar A-Z nas 12 primeiras posições
  2. Cálculo do DV: usar ord(char) - 48 em vez do valor direto
  3. Regex: atualizar para permitir letras
  4. Testes: adicionar casos com CNPJs alfanuméricos

O algoritmo atualizado é retrocompatível: CNPJs numéricos continuam validando normalmente.

Referências oficiais

Metadata

Metadata

Assignees

Labels

featurepriority: highMajor impact or urgent deliverable. Should be addressed next.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions