CNPJ alfanumérico

Desde 31/07/2026, novas inscrições no CNPJ saem em formato alfanumérico, conforme a Instrução Normativa RFB nº 2.229/2024.

O que muda

  • As 12 primeiras posições passam a aceitar letras maiúsculas além de dígitos.
  • Os 2 dígitos verificadores continuam numéricos.
  • O total segue em 14 caracteres, e a máscara não muda: 12.ABC.345/01DE-35.
  • CNPJs existentes continuam válidos e inalterados. A mudança só vale para inscrições novas.

A API aceita os dois formatos, assim como o validador e o gerador.

Dígito verificador

O algoritmo continua sendo módulo 11 com os mesmos pesos. Muda apenas como cada caractere vira número: código ASCII menos 48.

CaractereASCIIValor
0480
9579
A6517
Z9042

Para dígitos o valor continua sendo o próprio número, então um CNPJ numérico dá o mesmo resultado do algoritmo antigo.

Pesos: 5,4,3,2,9,8,7,6,5,4,3,2 para o primeiro dígito, sobre as 12 posições; 6,5,4,3,2,9,8,7,6,5,4,3,2 para o segundo, sobre 13. Somam-se os produtos, toma-se o resto da divisão por 11, e o dígito é 0 se o resto for menor que 2, ou 11 - resto caso contrário.

const valorDe = (c) => c.charCodeAt(0) - 48;

const digito = (chars, pesos) => {
	const soma = chars.split('').reduce((total, c, i) => total + valorDe(c) * pesos[i], 0);
	const resto = soma % 11;
	return resto < 2 ? 0 : 11 - resto;
};

const base = '12ABC34501DE';
const dv1 = digito(base, [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]);
const dv2 = digito(base + dv1, [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]);
// 12ABC34501DE35

O validador mostra esse cálculo posição por posição.