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.

Abre em nova aba

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.javaou 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 validCalccom 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 formatodo 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.

RECENTES

Claude Sonnet 4.5: Mais Avançado para Programação e Automação

A Anthropic acaba de lançar o Claude Sonnet 4.5,...

AP2 do Google: Desenvolva Pagamentos para agentes de IA

O Google lançou o Agent Payments Protocol (AP2), um...

Curso gratuito de GitHub Copilot para devs e estudantes

A Microsoft abriu as inscrições para o primeiro Bootcamp...

Santander e a Alura oferecem 60.000 bolsas em carreira de tecnologia

Quer dar um salto na sua carreira? O Santander Imersão Digital está...

Google Tradutor desafia o Duolingo com novas ferramentas de aprendizagem de idiomas

O Google está lançando um novo recurso experimental com...

A peça que faltava para agentes de IA autônomos.

Este artigo foi originalmente publicado em: https://www.linkedin.com/newsletters/ezine-dev-ramos-da-inform%25C3%25A1tica-6947960536550526976/ A inteligência...
Newsletter semanal no LinkedIn
EZine Dev Ramos da Informática
Grandes dicas em JavaScript, Node, React, Next, Banco de Dados & IA.
Assinar grátis
Abre em nova aba
spot_img