Como funcionará o CNPJ alfanumérico a partir de julho de 2026?

Novo modelo do CNPJ vai entrar em vigor em 2026 e apenas para novas empresas registradas. Entenda as mudanças e códigos em Java, Python, Javascript e TypeScript.

Compartilhe:

CNPJ é a sigla para Cadastro Nacional de Pessoas Jurídicas e trata-se de um número registrado pela Receita Federal durante a abertura de uma empresa.

Em poucas palavras, o CNPJ trata-se de um documento básico de identificação que todo negócio precisa ter antes mesmo de iniciar as suas atividades no mercado.

O documento funciona basicamente como um CPF para empresas, que permite que o governo, outras empresas ou até mesmo pessoas físicas, possam identificar a empresa durante as suas atividades e acessar informações,

Mudanças no CNPJ 

Acontece que o CNPJ vai mudar a partir de julho de 2026 e passará a ser alfanumérico, contendo letras e números Até então com formato apenas numérico, esse código passará a ser composto por uma combinação de letras e números a partir de julho de 2026.

O Serpro, em parceria com a RFB, disponibiliza, na pasta cnpj-alfanumerico.zip, códigos de validação do dígito verificador do CNPJ desenvolvidos nas linguagens Java, Python e TypeScript.

Além disso, o documento CalculoDVCNPJAlfanumerico.pdf oferece uma explicação detalhada sobre o cálculo do dígito verificador, permitindo sua implementação em outras linguagens de programação. Basta acessar os links.

Onde localizar os códigos de validação no ZIP

Você deve acessar o repositório (provavelmente hospedado pelo Serpro ou GitHub próprio), dentro dele encontrará:

  • validate_cnpj.java ou similar (Java)
  • validate_cnpj.py (Python)
  • validateCnpj.ts (TypeScript)
  • PDF explicando o cálculo do dígito verificador

A mudança no CNPJ foi anunciada oficialmente pela Receita Federal. O objetivo do CNPJ alfanumérico, como o novo formato vem sendo chamado, é aumentar a capacidade de geração de novas inscrições deste documento.

O formato atual, que continuará válido para cadastros já existentes, o CNPJ é formado por 14 dígitos. Como explica o Serpro (Serviço Federal de Processamento de Dados), os oito primeiros dígitos servem para identificar a pessoa jurídica (como uma empresa).

Os quatro dígitos seguintes correspondem ao número de ordem e servem para identificar os estabelecimentos da organização, como matriz ou filiais. Os últimos dois dígitos servem para validar toda a sequência por meio de um cálculo específico chamado de “módulo 11”.

Como será o CNPJ alfanumérico?

O CNPJ alfanumérico continuará sendo composto por 14 caracteres, mas qualquer um dos 12 primeiros dígitos poderá ser um número ou uma letra maiúscula. Apenas os dois últimos dígitos permanecerão sendo somente numéricos para cumprir a função de verificação de toda a sequência.

Segundo o Serpro, o novo formato permitirá o registro de mais de 1 quadrilhão de organizações, com cada uma delas podendo registrar mais de 1 milhão de filiais.

Por outro lado, sistemas de gestão empresarial e tantos outros terão que ser adaptados para o novo formato do CNPJ. O Serpro explica que esse trabalho envolverá três processos principais:

  • adaptação para “receber” e “ler” o CNPJ alfanumérico;
  • adaptação nos bancos de dados para armazenar o novo formato;
  • incorporação da nova rotina para o cálculo dos dígitos verificadores.

Dessa forma, a implementação do CNPJ alfanumérico visa garantir a continuidade das políticas públicas e assegurar a disponibilidade de números de identificação, sem causar impactos técnicos significativos para a sociedade brasileira.

Mais para desenvolvedores

Exemplos simplificados (adaptados a partir dos códigos oficiais)

Java

javaCopiarEditarprivate static final Pattern PATTERN = Pattern.compile("[0-9A-Z]{2}\\.[0-9A-Z]{3}\\.[0-9A-Z]{3}/[0-9A-Z]{4}-[0-9]{2}");
int[] weights = {6,5,4,3,2,9,8,7,6,5,4,3,2};

boolean isValid(String cnpj) {
  if (!PATTERN.matcher(cnpj).matches()) return false;
  String s = cnpj.replaceAll("[\\./-]", "");
  String core = s.substring(0, 12);
  int dv1 = calcDv(core, 1);
  int dv2 = calcDv(core + dv1, 0);
  return s.charAt(12)-'0' == dv1 && s.charAt(13)-'0' == dv2;
}
int calcDv(String s, int shift) { ... }  // módulo 11 adaptado via ASCII-48

O cálculo do dígito usa multiplicadores fixos e a regra resultado = (11 – (soma % 11)), se ≥2; senão zero, aplicando a tabela ASCII-48 para letras serpro.gov.brdomvsit.com.br+11welyab.dev+11serpro.gov.br+11techshake.com+7tecnoblog.net+7serpro.gov.br+7.

Python

Baseado em repositórios no GitHub (ex.: TigoP e JCLucieto):

pythonCopiarEditarimport re
class NovoCNPJ:
    PATTERN = re.compile(r"[0-9A-Z]{2}\.[0-9A-Z]{3}\.[0-9A-Z]{3}/[0-9A-Z]{4}-[0-9]{2}")
    def __init__(self, cnpj): ...
    def normalize(self):
        self.raw = re.sub(r"[^\dA-Z]", "", self.cnpj)
    def to_values(self):
        return [(ord(ch)-48) for ch in self.raw[:12]]
    def calc_dv(self, values, shift):
        ...
    def validate(self):
        ...

Esses projetos também fazem normalização, cálculo e validação completa github.com.

TypeScript

Provavelmente semelhante ao GitHub “CNpjAlfaNumerico” ou gist:

tsCopiarEditarconst regex = /^[0-9A-Z]{14}$/;
function validCnpj(cnpj: string): boolean {
  if (!regex.test(cnpj)) return false;
  const nums = cnpj.split("").map(ch => {
    const code = ch.charCodeAt(0) - 48;
    return code;
  });
  // mesmo cálculo com weights e módulo 11...
}

Alguns gists usam a função validCalc com loop e fator que reinicia em 9 techshake.com+13gist.github.com+13github.com+13.


🧪 Exemplos de regex para validação de formato

Aqui estão expressões regulares para validar o formato do CNPJ alfanumérico (14 caracteres, letras maiúsculas nos 12 primeiros e números nos 2 finais), suportando com e sem formatação:

RegexPermiteComentário
^[0-9A-Z]{12}[0-9]{2}$Sem pontos, barras ou hífenApenas caracteres diretos
^[0-9A-Z]{2}\.[0-9A-Z]{3}\.[0-9A-Z]{3}/[0-9A-Z]{4}-[0-9]{2}$Com máscara clássicaRequer pontuação correta
^[0-9A-Z]{2}\.?[0-9A-Z]{3}\.?[0-9A-Z]{3}/?[0-9A-Z]{4}-?[0-9]{2}$Com máscara opcionalFlexível com ou sem formatação

Combine esses regexes com o algoritmo módulo 11 adaptado para uma validação completa: formato + dígito verificador.

Compartilhe:

Ramos da Informática
Ramos da Informáticahttps://ramosdainformatica.com.br
Ramos da Informática é um hub de comunidade sobre linguagens de programação, banco de dados, DevOps, Internet das Coisas, tecnologia da indústria 4.0, Cyber Segurança e Startups.
spot_img

Carreira no exterior

🔥 Ativa

Vagas remotas no exterior + inglês diário

Comunidade #JNG: vagas frescas, mentoria e prática de entrevista.

💼
1000+ vagas/dia
🗣️
Inglês Seg-Sex
👥
Mentoria semanal
24h
Suporte
100%
Remoto
🚀 Entrar na Comunidade
🔒 Seguro e confiável
Últimas Vagas • Mentoria ao Vivo 7 Dias

De $50 para R$1 Milhão
e sua Carreira em Dólar

Mentoria exclusiva com Luiz Hota onde você aprende fazendo, disputa R$1.000.000 + carro zero e lucra já no 1º dia — mesmo começando do zero!

Apenas 12x de
R$24,92
ou R$299 à vista
GARANTIR MINHA VAGA AGORA