Acha no código o CNPJ tratado só como número: regex \d{14}, replace(/\D/g), parseInt no DV, coluna BIGINT. CNPJ alfanumérico (IN RFB nº 2.229/2024) desde julho de 2026. Roda inteiro no seu navegador — nada é enviado.
Mesmo motor da extensão do VS Code, byte a byte.
Esta pagina e a peca que ja funciona. O pacote completo inclui tudo o que segue.
Acha regex \d{14}, replace(/\D/g), parseInt no DV e coluna BIGINT antes que recusem o CNPJ alfanumérico (IN RFB nº 2.229/2024)
Comprar a versão completa — $29· ReadyStack
Números reais desta ferramenta, linha por linha.

6 linhas de um cadastro de fornecedor em TypeScript recusam o CNPJ 12.ABC.345/01DE-35. Se você é dev de ERP, e-commerce, fintech ou emissor de NF-e no Brasil, procure as mesmas 6 no seu código hoje.
O motivo é a IN RFB nº 2.229/2024. A Receita Federal atribui CNPJ alfanumérico a partir de julho de 2026, exclusivamente a novas inscrições. Quem já tem CNPJ continua com o número de sempre. Por isso o problema não aparece nos testes antigos nem nos clientes atuais: ele aparece quando a primeira empresa recém-aberta tenta se cadastrar, pagar ou receber uma nota, e o formulário responde "CNPJ inválido".
O formato novo mantém 14 caracteres. As 12 primeiras posições (raiz de 8 e ordem de 4) aceitam letras maiúsculas e números. As 2 últimas, o dígito verificador, continuam numéricas. O cálculo do DV continua sendo módulo 11 com pesos de 2 a 9, mas cada caractere passa a valer o código ASCII menos 48: os dígitos continuam valendo 0 a 9, a letra A vale 17, a B vale 18 e assim por diante.
Eu escrevi um cadastro típico, do jeito que ele era escrito até 2025, e passei o lint nele. Estas são as 6 linhas marcadas, cada uma com a correção:
cnpj: number na interface. Um tipo numérico não guarda letra e ainda perde zeros à esquerda. Correção: cnpj: string./^\d{14}$/. O regex clássico aceita só dígitos. Correção: /^[A-Z0-9]{12}\d{2}$/, depois de normalizar para maiúsculas..replace(/\D/g, ''). Esta é a mais traiçoeira: a limpeza apaga tudo que não é dígito, e 12ABC34501DE35 vira 123450135. Mesmo que você troque o regex, as letras já sumiram antes da validação. Correção: .replace(/[^A-Z0-9]/gi, '').toUpperCase().parseInt(limpo.charAt(i)) no laço do DV. Para uma letra o resultado é NaN, e o DV sai errado. Correção: limpo.charCodeAt(i) - 48.cnpj BIGINT na migration. O INSERT de um CNPJ alfanumérico falha no banco, não no formulário, e o erro chega como 500. Correção: CHAR(14) ou VARCHAR(14).12.ABC.345/01DE-53. O DV correto do exemplo oficial da Receita é 35. Um teste com DV inventado passa num validador errado e esconde o problema.A versão corrigida do mesmo arquivo dá 0 achados.
Por que não resolver com um chatbot? Ele corrige bem o trecho que você cola. Mas a coluna BIGINT mora na migration, o teste com DV errado mora na pasta de testes, e o replace(/\D/g) pode estar num helper de outro módulo. O lint lê cada arquivo com as mesmas 11 regras: regex de 14 dígitos, regex da máscara formatada, limpeza que apaga letras, conversão para número, DV dígito a dígito, teste "só dígitos", tipo numérico, coluna numérica, campo de formulário numérico, máscara 99.999.999/9999-99 e CNPJ literal com DV errado. Ele funciona em JavaScript, TypeScript, Python, Java, C#, PHP e SQL.
A ferramenta no navegador é grátis e roda local: cole o arquivo e veja cada linha que recusa um CNPJ alfanumérico, com a correção. A extensão do VS Code faz o mesmo no arquivo aberto, no painel Problems. A versão completa varre o workspace inteiro de uma vez e exporta um relatório Markdown por arquivo para anexar ao PR da migração.
Comece pelo cadastro e pelo checkout de pagamento: são os dois lugares onde a empresa nova chega primeiro.
Lê código JavaScript, TypeScript, Python, Java, C#, PHP e SQL e marca cada linha que trata o CNPJ como número: regex \d{14}, replace(/\D/g), parseInt no cálculo do DV, tipo number, coluna BIGINT, máscara 99.999.999/9999-99 e CNPJ de teste com DV errado. São 11 regras, cada uma com a correção para o CNPJ alfanumérico da IN RFB nº 2.229/2024.
Para devs de ERP, e-commerce, fintech, emissores de NF-e e sistemas de cadastro no Brasil que validam, guardam ou mascaram CNPJ. Desde julho de 2026 a Receita emite CNPJ alfanumérico para novas inscrições, então um cadastro escrito só para dígitos recusa exatamente as empresas recém-abertas, que são clientes novos.
Um chatbot corrige o trecho que você cola, mas não acha a coluna BIGINT na migration nem o teste com DV errado em outro arquivo. Trocar só o regex deixa o replace(/\D/g) apagando as letras antes. O lint lê cada arquivo com as 11 regras e recalcula o DV de cada CNPJ literal, como o exemplo oficial 12.ABC.345/01DE-35.
Grátis: verifica o arquivo aberto (ou o código colado no navegador) com as 11 regras e mostra cada linha que recusa um CNPJ alfanumérico, com a correção. Versão completa ($29, pagamento único): varre o workspace inteiro de uma vez e exporta um relatório Markdown por arquivo para anexar ao PR ou à auditoria de migração.
A versão grátis resolve um arquivo por vez sem limite. A versão completa custa $29 uma vez, com uma chave de licença por pessoa ou assento de equipe, sem assinatura. A alternativa é buscar cnpj arquivo por arquivo e conferir cada DV à mão com o algoritmo da Receita: módulo 11, pesos 2 a 9, letra = ASCII − 48.
Um chat de IA genérico responde com dados de treino com data de corte, não lê o seu repositório e não indica a versão da norma. CNPJ Alfanumérico Lint — validação de CNPJ no código verifica o arquivo aberto com 11 regras de um conjunto datado de 2026-09-27 e aponta a linha exata com a correção. Para uma declaração, uma auditoria ou um cliente você precisa desse resultado datado nos seus próprios arquivos.
Uma pergunta, respondida por quem a construiu. Email só se quiser a resposta por correio.