Válido, existente, regular: três coisas diferentes
Antes de gerar ou validar qualquer número, separe o que cada operação realmente prova. A validação de dígito verificador é local e barata: ela só confere se os dois últimos dígitos fecham a conta. Saber se o documento existe exige a base da Receita Federal. Saber se ele está regular, ativo, suspenso, baixado, é uma consulta cadastral, com regras próprias de acesso. São três perguntas distintas, e a primeira nunca responde as outras duas.
Número válido
- Os dígitos verificadores fecham pelo algoritmo módulo 11.
- Prova apenas consistência matemática, no seu próprio computador.
- Um gerador produz milhões deles em segundos.
Documento existente
- Foi emitido e está atribuído a uma pessoa ou empresa.
- Só a Receita Federal confirma; não dá para deduzir do número.
Cadastro regular
- Situação (ativo, suspenso, baixado), nome/razão social, atividade.
- Exige fonte autorizada e finalidade legítima de consulta.
O abismo entre "válido" e "verdadeiro" é o assunto central deste guia. Um gerador de CPF e um gerador de CNPJ vivem inteiramente do lado esquerdo: fabricam números matematicamente consistentes para preencher formulários de teste e semear bancos de homologação. A consulta de CNPJ vive do lado direito, e só funciona para empresas, porque o CNPJ é público, o CPF, por ser dado pessoal, é protegido. Entender a fronteira evita tanto o bug ("por que o cadastro aceitou esse CPF que não existe?") quanto o abuso ("gerei um válido, então posso usá-lo").
O dígito verificador é um checksum módulo 11
O dígito verificador não é hash nem criptografia, se a diferença entre esses conceitos ainda te confunde, o guia de hashing, criptografia e encoding fecha isso. Ele é um checksum: um número extra, derivado dos anteriores, cuja única função é detectar erro de digitação e transposição. A escolha do módulo 11 não é arbitrária. Por ser primo, o 11 captura mais tipos de erro do que um módulo 10: pega qualquer troca de um dígito e, ao usar pesos crescentes, pega também a maioria das transposições de dígitos vizinhos, o clássico "digitei 21 no lugar de 12". É o mesmo princípio do dígito de controle do ISBN-10 e de vários números bancários.
S = Σ (dᵢ × pᵢ) → r = S mod 11 → DV = (r < 2) ? 0 : 11 − r- dᵢ
- o i-ésimo dígito da base (da esquerda para a direita)
- pᵢ
- o peso daquela posição (ver tabela abaixo)
- S
- a soma de todos os produtos dígito × peso
- r
- o resto da divisão de S por 11
- DV
- o dígito verificador resultante (0 a 9)
O segundo dígito verificador usa exatamente o mesmo procedimento, com uma diferença: ele inclui o primeiro DV já calculado na base e desloca os pesos uma casa (o CPF passa de 10..2 para 11..2; o CNPJ, de 5,4,3,2,9..2 para 6,5,4,3,2,9..2). Por isso os dois dígitos são interdependentes: alterar o primeiro muda o segundo. Os pesos abaixo batem exatamente com os do validador de CPF/CNPJ desta plataforma.
| Documento | Base | Pesos do 1º DV | Pesos do 2º DV |
|---|---|---|---|
| CPF | 9 dígitos | 10 9 8 7 6 5 4 3 2 | 11 10 9 8 7 6 5 4 3 2 |
| CNPJ | 12 posições | 5 4 3 2 9 8 7 6 5 4 3 2 | 6 5 4 3 2 9 8 7 6 5 4 3 2 |
Repare no padrão do CNPJ: os pesos são a sequência 2 a 9 lida da direita para a esquerda, reiniciando em 2 depois do 9. O CPF é mais simples ainda: uma contagem decrescente que começa em 10 (ou 11, no segundo dígito). Essa regularidade é o que permite escrever o cálculo em poucas linhas, e o que torna a extensão para letras, que veremos adiante, quase indolor.
Exemplo trabalhado: um CPF calculado do zero
Vamos calcular os dois dígitos verificadores de uma base didática: 111.444.777. É um número usado só para demonstrar a conta, não representa ninguém. Multiplicamos cada dígito pelo seu peso, somamos, tiramos o resto por 11 e aplicamos a regra.
CPF base: 1 1 1 4 4 4 7 7 7 (os 9 primeiros dígitos)
1o digito verificador , pesos 10 9 8 7 6 5 4 3 2
1x10 + 1x9 + 1x8 + 4x7 + 4x6 + 4x5 + 7x4 + 7x3 + 7x2
= 10 + 9 + 8 + 28 + 24 + 20 + 28 + 21 + 14 = 162
162 mod 11 = 8 -> 8 >= 2 -> DV1 = 11 - 8 = 3
2o digito verificador , pesos 11 10 9 8 7 6 5 4 3 2 (inclui o DV1)
base agora: 1 1 1 4 4 4 7 7 7 3
1x11 + 1x10 + 1x9 + 4x8 + 4x7 + 4x6 + 7x5 + 7x4 + 7x3 + 3x2
= 11 + 10 + 9 + 32 + 28 + 24 + 35 + 28 + 21 + 6 = 204
204 mod 11 = 6 -> 6 >= 2 -> DV2 = 11 - 6 = 5
CPF completo: 111.444.777-35 (fecha o modulo 11)Há um detalhe escondido no nono dígito, o último da base, aqui o 7. Ele indica a região fiscal onde o CPF foi emitido, segundo a divisão da Receita Federal em dez superintendências regionais. Não é onde a pessoa nasceu nem onde mora hoje: é a região do endereço informado no primeiro cadastro. No nosso exemplo, o 7 corresponde a ES e RJ.
| 9º dígito | Região fiscal | Estados |
|---|---|---|
| 1 | 1ª | DF, GO, MT, MS, TO |
| 2 | 2ª | AC, AM, AP, PA, RO, RR |
| 3 | 3ª | CE, MA, PI |
| 4 | 4ª | AL, PB, PE, RN |
| 5 | 5ª | BA, SE |
| 6 | 6ª | MG |
| 7 | 7ª | ES, RJ |
| 8 | 8ª | SP |
| 9 | 9ª | PR, SC |
| 0 | 10ª | RS |
Ou seja: o CPF carrega uma pista fraca de origem, mas nada além disso. Ele não codifica data de nascimento, sexo ou qualquer atributo pessoal, só a região fiscal e os dois dígitos de controle. Quem valida formulários costuma reforçar a checagem do dígito com uma máscara de formato via expressões regulares, garantindo que o texto tem o formato certo antes mesmo de a aritmética rodar.
O CNPJ alfanumérico: a mudança de 2026
Este é o ponto mais atual do tema. O CNPJ numérico tem capacidade finita, e a Receita Federal projeta o esgotamento das combinações. A resposta foi a Instrução Normativa RFB nº 2.229, de 15 de outubro de 2024, que instituiu o CNPJ alfanumérico. O formato não muda de tamanho nem de máscara: continuam 14 posições exibidas como XX.XXX.XXX/XXXX-XX. O que muda é o alfabeto das posições: as 8 primeiras (a raiz) e as 4 seguintes (a ordem do estabelecimento) passam a admitir letras maiúsculas de A a Z além dos algarismos. Os dois últimos dígitos, os verificadores, permanecem estritamente numéricos.
- 1965–1968Nasce o CPF
A Lei nº 4.862/1965 cria o registro das pessoas físicas; o Decreto-Lei nº 401/1968 o transforma no Cadastro de Pessoas Físicas, com os 11 dígitos que usamos até hoje.
- 1998CGC vira CNPJ
A Instrução Normativa SRF nº 27/1998 substitui o antigo Cadastro Geral de Contribuintes (CGC) pelo CNPJ, mantendo os números existentes e o formato de 14 dígitos.
- 15 out 2024IN RFB nº 2.229 institui o CNPJ alfanumérico
A norma define o novo alfabeto (letras nas 12 primeiras posições, DV numérico) e o cálculo do dígito por valor ASCII. CNPJs já existentes não mudam.
- 2026Entrada em produção
A regra de validação que aceita CNPJ alfanumérico entra em produção nos sistemas fiscais em 6 de julho de 2026, e a Receita passa a emitir os novos números a partir de 31 de julho de 2026.
A pergunta de todo desenvolvedor é: como calcular o DV se a base agora tem letras? A resposta é elegante. Em vez de tratar cada posição como o algarismo que ela representa, trata-se cada caractere pelo seu valor na tabela ASCII menos 48. Os algarismos de 0 a 9 têm código ASCII de 48 a 57, então "0" continua valendo 0 e "9" continua valendo 9, nada muda para os CNPJs antigos. As letras de A a Z têm código de 65 a 90, então "A" vale 17, "B" vale 18, e assim por diante até "Z" valer 42. Com os caracteres convertidos em números, o cálculo é idêntico ao numérico: os mesmos pesos, o mesmo módulo 11.
- Isole as 12 posições da baseA raiz (8) e a ordem (4), que podem conter A–Z e 0–9. Os dois DVs ficam de fora do cálculo, pois são o que você quer descobrir.
- Converta cada caractere para númeroUse o código ASCII do caractere menos 48. Algarismos viram eles mesmos (0–9); letras viram 17 (A) até 42 (Z).
- Multiplique pelos pesos e someOs mesmos pesos do CNPJ numérico: 5,4,3,2,9,8,7,6,5,4,3,2 para o 1º DV. Some todos os produtos.
- Aplique o módulo 11Calcule o resto da soma por 11. Se for menor que 2, o DV é 0; caso contrário, o DV é 11 menos o resto.
- Repita para o segundo DVAnexe o 1º DV (já numérico) à base, formando 13 posições, e refaça com os pesos 6,5,4,3,2,9,8,7,6,5,4,3,2. Os dois DVs sempre saem numéricos.
CNPJ base (12 posicoes): 1 2 A B C 3 4 5 0 1 D E
Passo 1 , cada caractere -> valor ASCII menos 48
1->1 2->2 A->17 B->18 C->19 3->3
4->4 5->5 0->0 1->1 D->20 E->21
1o DV , pesos 5 4 3 2 9 8 7 6 5 4 3 2
1x5 + 2x4 + 17x3 + 18x2 + 19x9 + 3x8
+ 4x7 + 5x6 + 0x5 + 1x4 + 20x3 + 21x2
= 5 + 8 + 51 + 36 + 171 + 24 + 28 + 30 + 0 + 4 + 60 + 42
= 459
459 mod 11 = 8 -> DV1 = 11 - 8 = 3
2o DV , pesos 6 5 4 3 2 9 8 7 6 5 4 3 2 (inclui DV1 = 3)
1x6 + 2x5 + 17x4 + 18x3 + 19x2 + 3x9 + 4x8
+ 5x7 + 0x6 + 1x5 + 20x4 + 21x3 + 3x2
= 6 + 10 + 68 + 54 + 38 + 27 + 32 + 35 + 0 + 5 + 80 + 63 + 6
= 424
424 mod 11 = 6 -> DV2 = 11 - 6 = 5
CNPJ completo: 12.ABC.345/01DE-35O que a validação de dígito não prova
Voltamos ao começo, agora com a matemática na mão. O validador responde uma única pergunta, "os dígitos fecham?", e nada além dela. Dois casos-limite deixam isso concreto: um número válido pode não corresponder a documento nenhum, e um número obviamente falso pode, ainda assim, passar no módulo 11. Abra os dois pontos abaixo.
Válido não é existente, e existente não é regular
O dígito verificador é calculado a partir dos próprios números, ele não consulta base nenhuma. Logo, um gerador pode fabricar um CPF perfeitamente válido que jamais foi atribuído a ninguém, e um CPF real e ativo tem a mesma aparência de um sintético. A única forma de saber se existe é a Receita Federal; a única forma de saber a situação cadastral é uma consulta autorizada. "Válido" mora na sua máquina; "existente" e "regular" moram no servidor da Receita.
Por isso um formulário que só valida o dígito aceita, sem pestanejar, um CPF de teste que não existe. Isso não é bug: é o limite do que a validação local consegue afirmar. Se o seu sistema precisa de existência real, some validação de dígito (barata, instantânea) com consulta oficial (cara, sujeita a base legal), nunca troque uma pela outra.
Por que 111.111.111-11 passa no módulo 11 (e mesmo assim é rejeitado)
Faça a conta com todos os dígitos iguais a 1. A soma dos pesos 10..2 é 54, então S = 1 × 54 = 54; 54 mod 11 = 10; como 10 é maior que 1, DV1 = 11 − 10 = 1. Repita para o segundo dígito (pesos 11..2, soma 65): S = 65; 65 mod 11 = 10; DV2 = 1. Os dois verificadores dão 1, exatamente os dígitos da sequência. Não é coincidência: qualquer sequência de um só algarismo repetido produz um verificador igual a esse mesmo algarismo, porque a soma dos pesos reduzida ao módulo 11 devolve o próprio dígito. Ou seja, 000.000.000-00, 222.222.222-22 e todas as repetições "fecham" a conta.
Como esses números são matematicamente válidos mas obviamente inúteis, tanto a Receita quanto qualquer validador sério os descartam por uma regra extra, anterior ao cálculo: sequências com todos os dígitos iguais são inválidas por convenção. O validador desta plataforma faz exatamente isso, rejeita a repetição antes de checar o dígito.
Uso legítimo, LGPD e dados de terceiros
Gerar CPF e CNPJ sintéticos para teste é uma prática técnica legítima e comum: preencher formulários de homologação, semear bancos de dados, escrever fixtures de testes automatizados, documentar uma API. Como esses números não pertencem a ninguém, não há dado pessoal envolvido, é o mesmo espírito de usar um UUID ou ULID como identificador descartável. O problema nunca é gerar; é o que se faz com um número que, por acaso, coincide com o de uma pessoa real.
- Prefira dados sintéticos em testes automatizados, documentação, demonstrações e homologação.
- Nunca use um número gerado para simular a identidade de outra pessoa ou burlar validação de terceiros.
- Para dados reais, use fonte oficial da Receita e uma base legal da LGPD.
- Lembre que consulta de CNPJ é pública; consulta de CPF é restrita, porque CPF é dado pessoal.
- Ao migrar sistemas para 2026, aceite letras nas 12 primeiras posições do CNPJ e mantenha os DVs numéricos.
Perguntas frequentes
Um CPF gerado é de uma pessoa real?
Como funciona o cálculo do DV do CNPJ alfanumérico?
Quando o CNPJ alfanumérico começa a valer?
Por que 000.000.000-00 e as repetições são inválidos?
O que o nono dígito do CPF significa?
Posso validar CNPJ com o mesmo método do CPF?
O dígito verificador de CPF e CNPJ é um checksum módulo 11 com pesos: prova consistência matemática, não existência nem regularidade. Válido é uma coisa; verdadeiro e regular são outras, que só a Receita confirma. A novidade de 2026 é o CNPJ alfanumérico, letras nas 12 primeiras posições, DVs numéricos, cálculo pelo valor ASCII menos 48, que exige adaptar bancos, máscaras e validadores. Gerar números sintéticos para teste é legítimo; usar o CPF real de terceiro não é (LGPD).
Fontes e referências
- Receita Federal, CNPJ terá letras e números a partir de julho de 2026
- Receita Federal, Implantação do CNPJ Alfanumérico a partir de 31 de julho de 2026
- Serpro, Cálculo dos dígitos verificadores do CNPJ alfanumérico (PDF)
- Serpro, Código de referência do DV do CNPJ alfanumérico (GitHub)
- Receita Federal, Meu CPF
- Receita Federal, 1968: Instituição do Cadastro de Pessoas Físicas
- Lei nº 13.709/2018 (LGPD), Planalto