← ClaudeAtlas

migrar-cnpj-alfanumericolisted

GUIA de migração para CNPJ alfanumérico (vigor jul/2026) — checklist de banco, regex, máscaras, exemplos em TS e Python. Para VALIDAR de fato, use a skill core `validar-cpf-cnpj` (que já cobre alfanumérico).
roldaobatista/roldao-method · ★ 0 · AI & Automation · score 74
Install: claude install-skill roldaobatista/roldao-method
# migrar-cnpj-alfanumerico > **Para apenas validar um CNPJ alfanumérico**, use a skill core `validar-cpf-cnpj` — ela já cobre o caso. Este guia é para **planejar a migração** do seu sistema antes de jul/2026 (schema do banco, regex, máscaras de input, integrações). A partir de **julho/2026**, novos CNPJs podem ter letras nos 12 primeiros caracteres (A-Z, exceto I e O pra evitar confusão visual). Os 2 últimos dígitos (DV) permanecem **numéricos**. ## Por que isso importa - Sistemas com `VARCHAR(14)` e regex `[0-9]{14}` **vão quebrar** ao receber CNPJ com letra. - Algoritmo de DV precisa converter cada caractere alfanumérico pra valor numérico antes do módulo 11. - Coluna do banco continua `VARCHAR(14)` — **não converter pra `BIGINT`**. ## Formato - **Total**: 14 caracteres. - **Caracteres 1-12**: alfanuméricos (0-9, A-H, J-N, P-Z). Excluídos: I, O. - **Caracteres 13-14**: dígitos verificadores numéricos (0-9). ## Mapeamento alfanumérico → valor numérico Conforme **IN RFB 2.229/2024**, o valor de cada caractere é o **código ASCII menos 48** (`ord(c) - 48`) — **não** uma tabela A=10. Isso mantém `'0'..'9'` → `0..9` e gera, para letras: ``` 0=0 .. 9=9 A=17, B=18, C=19, D=20, E=21, F=22, G=23, H=24, I=25, J=26, K=27, L=28, M=29, N=30, O=31, P=32, Q=33, R=34, S=35, T=36, U=37, V=38, W=39, X=40, Y=41, Z=42 ``` > ⚠️ **I e O não fazem parte da tabela de valores** — eles entram no cálculo normalmente via `ord-48` se aparecerem. A exclusão de I/O vale apenas para a **geração**