🌐 Idioma: 🇧🇷 Português

CNPJ Online — Validador e Gerador 2026

Valide ou gere CNPJs no formato atual (numérico) e no novo formato alfanumérico 2026. Filial configurável.

Configuração
🏭

Informe um CNPJ ou gere novos

Estrutura do CNPJ

O CNPJ tem 14 caracteres: RR.RRR.RRR/FFFF-DD

  • RR.RRR.RRR — 8 caracteres da raiz (identifica a empresa)
  • FFFF — 4 dígitos da filial (matriz = 0001)
  • DD — 2 dígitos verificadores (módulo 11)

✦ Novo Formato 2026

A partir de julho de 2026, os novos CNPJs terão os 8 primeiros caracteres da raiz alfanuméricos (letras A–Z e dígitos 0–9). Os 4 dígitos da filial e os 2 verificadores continuam numéricos. CNPJs antigos não mudam.

⚠️ CNPJs gerados são fictícios. Use apenas para testes de sistemas.

🏢 Estrutura do CNPJ

O CNPJ (Cadastro Nacional de Pessoas Jurídicas) é o número que identifica empresas, associações, fundações e outros entes jurídicos perante a Receita Federal do Brasil. Com 14 caracteres no formato XX.XXX.XXX/FFFF-DD, divide-se em três partes com funções distintas:

Formato Atual — Numérico
11raiz 1
.
22raiz 2
32raiz 3
42raiz 4
.
53raiz 5
64raiz 6
75raiz 7
/
90filial 1
100filial 2
110filial 3
121filial 4
-
13DDV 1
14DDV 2
■ Raiz (8 dígitos) — identifica a empresa ■ Filial (4 dígitos) — 0001 = matriz ■ DV (2 dígitos) — verificadores módulo 11
Novo Formato 2026 — Alfanumérico ✦
1Araiz 1
.
2Braiz 2
3Craiz 3
4Draiz 4
.
5Eraiz 5
6Fraiz 6
7Graiz 7
8Hraiz 8
/
90filial 1
100filial 2
110filial 3
121filial 4
-
13DDV 1
14DDV 2
■ Raiz alfanumérica (A–Z + 0–9) — 8 posições ■ Filial numérica (4 dígitos) ■ DV numérico (2 dígitos)

🕰️ História do CNPJ no Brasil

1946
CGC — Cadastro Geral de Contribuintes
O Ministério da Fazenda cria o CGC (Cadastro Geral de Contribuintes), predecessor do CNPJ. Identificava empresas e pessoas jurídicas para fins fiscais. O número tinha formato diferente e controles menos rigorosos — fraudes de duplicação eram relativamente comuns.
1998
CNPJ substitui o CGC — Instrução Normativa SRF 27/1998
A Receita Federal substitui o CGC pelo CNPJ, padronizando o formato de 14 dígitos com dois verificadores matemáticos (módulo 11 com pesos variáveis). O novo formato dificulta a falsificação e permite validação automática por qualquer sistema sem consultar a Receita. Todas as empresas existentes migraram seus números para o novo padrão.
2000s
CNPJ como padrão de integração entre sistemas
O CNPJ se torna o identificador universal de empresas em NFe (Nota Fiscal Eletrônica), SPED (Sistema Público de Escrituração Digital), eSocial, EFD e dezenas de sistemas do ecossistema fiscal brasileiro. Toda integração B2B no Brasil exige validação de CNPJ — tornando validadores e geradores ferramentas essenciais para desenvolvedores.
2024
Resolução DREI — aprovação do CNPJ alfanumérico
O Departamento de Registro Empresarial e Integração (DREI) e a Receita Federal publicam a resolução aprovando a mudança para CNPJ alfanumérico. O motivo: o espaço de números puramente numéricos está se esgotando com o crescimento do número de empresas registradas. A transição é planejada para não afetar empresas existentes.
Julho 2026
✦ CNPJ alfanumérico entra em vigor
A partir de julho de 2026, novos CNPJs passam a ter os 8 dígitos da raiz alfanuméricos — usando letras maiúsculas (A–Z) e números (0–9). Os 4 dígitos da filial e os 2 verificadores continuam numéricos. CNPJs emitidos antes de julho de 2026 não mudam. O algoritmo de validação é o mesmo — apenas a conversão dos caracteres para valores numéricos muda (A=10, B=11, ..., Z=35).

⚙️ Algoritmo de Validação — Formato Atual (Numérico)

O CNPJ usa módulo 11 com dois conjuntos de pesos cíclicos aplicados sobre os 12 primeiros dígitos (raiz + filial), gerando os 2 verificadores. Os pesos são descendentes e cíclicos: 5,4,3,2,9,8,7,6,5,4,3,2 para DV1 e 6,5,4,3,2,9,8,7,6,5,4,3,2 para DV2.

P1
d1
×5
P2
d2
×4
P3
d3
×3
P4
d4
×2
P5
d5
×9
P6
d6
×8
P7
d7
×7
P8
d8
×6
P9
d9
×5
P10
d10
×4
P11
d11
×3
P12
d12
×2
DV1
d13
DV2
d14
JavaScript
function validarCNPJ(cnpj) {
  cnpj = cnpj.replace(/\D/g, '');
  if (cnpj.length !== 14) return false;
  if (/^(\d)\1+$/.test(cnpj)) return false; // ex: 00000000000000

  const calcDV = (base, pesos) => {
    const soma = base.split('').reduce((s, d, i) => s + +d * pesos[i], 0);
    const r = soma % 11;
    return r < 2 ? 0 : 11 - r;
  };

  const p1 = [5,4,3,2,9,8,7,6,5,4,3,2];
  const p2 = [6,5,4,3,2,9,8,7,6,5,4,3,2];

  const dv1 = calcDV(cnpj.slice(0,12), p1);
  const dv2 = calcDV(cnpj.slice(0,13), p2);

  return +cnpj[12] === dv1 && +cnpj[13] === dv2;
}

console.log(validarCNPJ('11.222.333/0001-81')); // true
console.log(validarCNPJ('11222333000100'));    // false
Python
import re

def validar_cnpj(cnpj: str) -> bool:
    cnpj = re.sub(r'\D', '', cnpj)
    if len(cnpj) != 14 or len(set(cnpj)) == 1: return False

    def calc_dv(base, pesos):
        soma = sum(int(d) * p for d, p in zip(base, pesos))
        r = soma % 11
        return 0 if r < 2 else 11 - r

    p1 = [5,4,3,2,9,8,7,6,5,4,3,2]
    p2 = [6,5,4,3,2,9,8,7,6,5,4,3,2]

    dv1 = calc_dv(cnpj[:12], p1)
    dv2 = calc_dv(cnpj[:13], p2)
    return int(cnpj[12]) == dv1 and int(cnpj[13]) == dv2

Novo Formato CNPJ Alfanumérico 2026 NOVO

A partir de julho de 2026, novos CNPJs terão os 8 primeiros caracteres (raiz) compostos por letras maiúsculas (A–Z) e dígitos (0–9), em vez de apenas números. O algoritmo de validação é idêntico ao atual — a única diferença é que cada caractere precisa ser convertido para um valor numérico antes do cálculo: dígitos 0–9 mantêm seus valores, e letras A–Z recebem valores 10–35.

CaractereValor numéricoCaractereValor numérico
0–90–9 (mesmo valor)A10
B11C12
D13E14
F15G16
H17I18
J19K20
L21M22
N23O24
P25Q26
R27S28
T29U30
V31W32
X33Y34
Z35
JavaScript — 2026
// Converte caractere alfanumérico para valor numérico
function charParaValor(c) {
  const code = c.toUpperCase().charCodeAt(0);
  return code >= 65 ? code - 55 : +c; // A=10, B=11 ... Z=35
}

function validarCNPJ2026(cnpj) {
  // Remove formatação, mantém alfanumérico
  cnpj = cnpj.replace(/[.\-\/]/g, '').toUpperCase();
  if (cnpj.length !== 14) return false;
  // Raiz: pos 0–7 alfanumérico; filial+DV: pos 8–13 numérico
  if (!/^[A-Z0-9]{8}\d{6}$/.test(cnpj)) return false;

  const vals = cnpj.split('').map(charParaValor);

  const calcDV = (base, pesos) => {
    const soma = base.reduce((s, v, i) => s + v * pesos[i], 0);
    const r = soma % 11;
    return r < 2 ? 0 : 11 - r;
  };

  const p1 = [5,4,3,2,9,8,7,6,5,4,3,2];
  const p2 = [6,5,4,3,2,9,8,7,6,5,4,3,2];

  const dv1 = calcDV(vals.slice(0,12), p1);
  const dv2 = calcDV(vals.slice(0,13), p2);

  return vals[12] === dv1 && vals[13] === dv2;
}

console.log(validarCNPJ2026('AB.CDE.FGH/0001-XX')); // true/false (exemplo)
Python — 2026
import re

def char_para_valor(c: str) -> int:
    return ord(c) - 55 if c.isalpha() else int(c)  # A=10...Z=35

def validar_cnpj_2026(cnpj: str) -> bool:
    cnpj = re.sub(r'[.\-/]', '', cnpj).upper()
    if len(cnpj) != 14: return False
    if not re.match(r'^[A-Z0-9]{8}\d{6}$', cnpj): return False

    vals = [char_para_valor(c) for c in cnpj]

    def calc_dv(base, pesos):
        soma = sum(v * p for v, p in zip(base, pesos))
        r = soma % 11
        return 0 if r < 2 else 11 - r

    p1 = [5,4,3,2,9,8,7,6,5,4,3,2]
    p2 = [6,5,4,3,2,9,8,7,6,5,4,3,2]

    dv1 = calc_dv(vals[:12], p1)
    dv2 = calc_dv(vals[:13], p2)
    return vals[12] == dv1 and vals[13] == dv2

🔀 CNPJ vs CPF: Diferenças do Algoritmo

CaracterísticaCNPJCPF
Total de dígitos1411
Dígitos verificadores2 (posições 13 e 14)2 (posições 10 e 11)
Pesos DV15,4,3,2,9,8,7,6,5,4,3,210,9,8,7,6,5,4,3,2
Pesos DV26,5,4,3,2,9,8,7,6,5,4,3,211,10,9,8,7,6,5,4,3,2
Regra resultado < 2DV = 0DV = 0
Resultado ≥ 2DV = 11 − restoDV = 11 − resto
Alfanumérico 2026✦ Sim (raiz)Não
IdentificaPessoa jurídicaPessoa física

Perguntas Frequentes

Não. CNPJs existentes permanecem com seus números numéricos originais para sempre. A mudança alfanumérica se aplica apenas a novos cadastros feitos a partir de julho de 2026. Sistemas que já validam CNPJ numérico continuarão funcionando normalmente para empresas existentes — mas precisarão ser atualizados para aceitar o novo formato em novos cadastros.

As mudanças necessárias nos sistemas são:

  • Campo de input: aceitar letras maiúsculas A–Z além de dígitos na raiz (posições 1–8)
  • Regex de formato: mudar de /^\d{14}$/ para /^[A-Z0-9]{8}\d{6}$/ (sem formatação)
  • Função de validação: adicionar conversão de caractere para valor numérico antes do módulo 11
  • Banco de dados: campos VARCHAR(14) já suportam — não precisa mudar schema
  • Máscaras de input: atualizar para aceitar alfanumérico nas 8 primeiras posições

O algoritmo de verificação dos dígitos é idêntico — só muda o pré-processamento de conversão de caracteres.

A raiz do CNPJ são os 8 primeiros caracteres — identifica a empresa independentemente da filial. Todas as filiais de uma mesma empresa compartilham a mesma raiz, variando apenas os 4 dígitos da filial (0001, 0002, etc.).

  • Matriz: filial 0001
  • Filial 1: filial 0002
  • Filial 2: filial 0003, e assim por diante

Consultas por raiz são usadas para identificar todas as filiais de um grupo empresarial — útil em sistemas de crédito, compliance e análise fiscal.

Com 8 dígitos numéricos na raiz, o espaço de combinações é limitado a 100 milhões de raízes distintas (10⁸). O Brasil já tem mais de 55 milhões de CNPJs registrados e o crescimento acelerado de MEIs, startups e holdings está esgotando o espaço. Com 8 posições alfanuméricas (36 símbolos possíveis: 0–9 + A–Z), o espaço cresce para mais de 2,8 trilhões de combinações (36⁸) — suficiente para séculos de crescimento.

Existem APIs públicas e privadas para consulta de dados de CNPJ:

  • ReceitaWS: https://receitaws.com.br/v1/cnpj/{cnpj} — gratuita com limite de requisições
  • Brasil API: https://brasilapi.com.br/api/cnpj/v1/{cnpj} — gratuita, open source
  • Serpro (CNPJ WS): API oficial do governo, requer contrato para uso comercial
  • Receita Federal (portal): consulta manual em servicos.receita.fazenda.gov.br

As APIs públicas retornam razão social, situação cadastral, endereço, atividade principal (CNAE) e quadro societário. Para volumes altos, use as APIs com autenticação para evitar bloqueios por rate limiting.

📌 Resumo para Referência Rápida

1️⃣

14 caracteres: 8 raiz + 4 filial + 2 DV. Módulo 11 com pesos 5,4,3,2,9,8,7,6,5,4,3,2 (DV1) e 6,5,4,3,2,9,8,7,6,5,4,3,2 (DV2). Resultado < 2 → DV = 0; caso contrário DV = 11 − resto.

Novo formato julho 2026: raiz passa a ser alfanumérica (A–Z + 0–9). Conversão: A=10, B=11...Z=35. Algoritmo idêntico ao atual. CNPJs antigos não mudam.

3️⃣

Para adaptar sistemas: ajuste regex, campo de input e função de validação. Schema de banco VARCHAR(14) já suporta sem alteração.

4️⃣

LGPD: CNPJ é dado de pessoa jurídica — não é dado pessoal pela LGPD. Mesmo assim, em testes use CNPJs gerados fictícios para evitar consultas acidentais a empresas reais.

Veja também