Guia · 2026-10-09T00:00:00.000Z
CNPJ alfanumérico sem mistério
Como o dígito do CNPJ passou a usar ASCII menos 48, por que o número antigo continua válido e o que ajustar na regex.
O CNPJ deixou de ser “catorze dígitos” no sentido estrito. A raiz e a ordem do estabelecimento podem misturar letras maiúsculas e números; os dois verificadores continuam numéricos. O gerador de CNPJ calcula os dois mundos com a mesma função, porque foi assim que a Receita desenhou a transição.
O valor de cada caractere é o código ASCII menos 48. O zero continua valendo 0, o nove continua valendo 9, e a letra A passa a valer 17. B vale 18, C vale 19. Não é uma tabela arbitrária: é o jeito de fazer o CNPJ antigo produzir o mesmo dígito de sempre, sem um segundo algoritmo legado.
Os pesos não mudaram. No primeiro dígito: 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2. Soma, resto da divisão por 11, dígito 0 se o resto for 0 ou 1, senão 11 menos o resto. No segundo dígito a fila ganha um peso 6 na frente. O exemplo público 12.ABC.345/01DE-35 fecha em 3 e 5. Vale colar esse valor no validador antes de confiar na sua implementação.
O número 11.222.333/0001-81 continua válido. Se a sua função nova rejeita CNPJ só de dígitos, ela não está “mais rigorosa”: está errada. A compatibilidade é o ponto da regra.
O que quebra em sistema antigo é a regex e a coluna. Uma expressão como \d{14} ou um bigint no banco recusa letra. A forma que acompanha a documentação é doze alfanuméricos e dois dígitos: [A-Z0-9]{12}[0-9]{2}, depois a conta. Grave a versão sem máscara. Ponto, barra e hífen são apresentação.
Há ainda o rejeito de caractere repetido. Uma raiz de doze zeros com dígitos que fechem a conta não é inscrição. Trate isso antes de chamar a Receita, senão você gasta um erro de rede para um caso local.
Gerar letra no botão “alfanumérico” só faz sentido quando o sistema sob teste já aceita o formato. Se o homolog ainda está no numérico, deixe a caixa desmarcada. Misturar os dois sem avisar o time de QA produz bug falso: a tela está certa em recusar, e o gerador é que adiantou o calendário.
Para o resto da higiene de fixture — não commitar dado de cliente ao lado do exemplo, não usar o CNPJ de teste numa nota, não publicar print como se fosse cartão — o guia dados fictícios em testes junta as regras que o dígito sozinho não cobre.