Gere e valide CPFs e CNPJs individuais ou em lote para testes de software, cadastros e homologação de sistemas.
// Validador de CPF em JavaScript / TypeScript (ES6)
function validarCPF(cpf) {
const clean = cpf.replace(/\D/g, '');
if (clean.length !== 11 || /^(\d){10}$/.test(clean)) return false;
let soma = 0, resto;
for (let i = 1; i <= 9; i++) soma += parseInt(clean.substring(i - 1, i)) * (11 - i);
resto = (soma * 10) % 11;
if (resto === 10 || resto === 11) resto = 0;
if (resto !== parseInt(clean.substring(9, 10))) return false;
soma = 0;
for (let i = 1; i <= 10; i++) soma += parseInt(clean.substring(i - 1, i)) * (12 - i);
resto = (soma * 10) % 11;
if (resto === 10 || resto === 11) resto = 0;
if (resto !== parseInt(clean.substring(10, 11))) return false;
return true;
}# Validador de CPF em Python 3
import re
def validar_cpf(cpf: str) -> bool:
clean = re.sub(r'\D', '', cpf)
if len(clean) != 11 or clean == clean[0] * 11:
return False
for i in range(9, 11):
soma = sum(int(clean[num]) * ((i + 1) - num) for num in range(0, i))
digito = ((soma * 10) % 11) % 10
if digito != int(clean[i]):
return False
return True<?php
// Validador de CPF em PHP 8+
function validarCPF(string $cpf): bool {
$cpf = preg_replace('/[^0-9]/', '', $cpf);
if (strlen($cpf) !== 11 || preg_match('/(\d){10}/', $cpf)) {
return false;
}
for ($t = 9; $t < 11; $t++) {
$d = 0;
for ($c = 0; $c < $t; $c++) {
$d += $cpf[$c] * (($t + 1) - $c);
}
$d = ((10 * $d) % 11) % 10;
if ($cpf[$c] != $d) {
return false;
}
}
return true;
}=SE(E(EXT.TEXTO(A1;10;1)*1=SE(MOD(SOMA(EXT.TEXTO(A1;1;1)*10;EXT.TEXTO(A1;2;1)*9;EXT.TEXTO(A1;3;1)*8;EXT.TEXTO(A1;4;1)*7;EXT.TEXTO(A1;5;1)*6;EXT.TEXTO(A1;6;1)*5;EXT.TEXTO(A1;7;1)*4;EXT.TEXTO(A1;8;1)*3;EXT.TEXTO(A1;9;1)*2)*10;11)=10;0;MOD(SOMA(EXT.TEXTO(A1;1;1)*10;EXT.TEXTO(A1;2;1)*9;EXT.TEXTO(A1;3;1)*8;EXT.TEXTO(A1;4;1)*7;EXT.TEXTO(A1;5;1)*6;EXT.TEXTO(A1;6;1)*5;EXT.TEXTO(A1;7;1)*4;EXT.TEXTO(A1;8;1)*3;EXT.TEXTO(A1;9;1)*2)*10;11));EXT.TEXTO(A1;11;1)*1=SE(MOD(SOMA(EXT.TEXTO(A1;1;1)*11;EXT.TEXTO(A1;2;1)*10;EXT.TEXTO(A1;3;1)*9;EXT.TEXTO(A1;4;1)*8;EXT.TEXTO(A1;5;1)*7;EXT.TEXTO(A1;6;1)*6;EXT.TEXTO(A1;7;1)*5;EXT.TEXTO(A1;8;1)*4;EXT.TEXTO(A1;9;1)*3;EXT.TEXTO(A1;10;1)*2)*10;11)=10;0;MOD(SOMA(EXT.TEXTO(A1;1;1)*11;EXT.TEXTO(A1;2;1)*10;EXT.TEXTO(A1;3;1)*9;EXT.TEXTO(A1;4;1)*8;EXT.TEXTO(A1;5;1)*7;EXT.TEXTO(A1;6;1)*6;EXT.TEXTO(A1;7;1)*5;EXT.TEXTO(A1;8;1)*4;EXT.TEXTO(A1;9;1)*3;EXT.TEXTO(A1;10;1)*2)*10;11)));"VÁLIDO";"INVÁLIDO")Como Funciona o Cálculo do Dígito Verificador do CPF (Algoritmo Módulo 11)
O Cadastro de Pessoas Físicas (CPF) é composto por 11 dígitos numéricos no formato ABC.DEF.GHI-JK. Os 9 primeiros dígitos representam o número base e a região fiscal, enquanto os 2 últimos dígitos (J e K) são os dígitos verificadores (DV) calculados pelo algoritmo de Módulo 11.
1. Cálculo do Primeiro Dígito Verificador (J)
Multiplica-se cada um dos 9 primeiros números por pesos decrescentes de 10 a 2. Em seguida, soma-se todos os resultados e calcula-se o resto da divisão por 11:
- Soma:
(A×10) + (B×9) + (C×8) + (D×7) + (E×6) + (F×5) + (G×4) + (H×3) + (I×2) - Resto:
Soma % 11 - Regra do Dígito J: Se o resto for menor que 2, o dígito é 0. Caso contrário, o dígito é
11 - Resto.
2. Tabela de Regiões Fiscais do Brasil (O 9º Dígito do CPF)
O 9º dígito do CPF identifica diretamente em qual estado ou Região Fiscal da Receita Federal o documento foi emitido:
| 9º Dígito | Estados e Região Fiscal |
|---|---|
| 1 | Distrito Federal, Goiás, Mato Grosso, Mato Grosso do Sul e Tocantins |
| 2 | Acre, Amazonas, Amapá, Pará, Rondônia e Roraima |
| 3 | Ceará, Maranhão e Piauí |
| 4 | Alagoas, Paraíba, Pernambuco e Rio Grande do Norte |
| 5 | Bahia e Sergipe |
| 6 | Minas Gerais |
| 7 | Espírito Santo e Rio de Janeiro |
| 8 | São Paulo |
| 9 | Paraná e Santa Catarina |
| 0 | Rio Grande do Sul |
O Novo CNPJ Alfanumérico da Receita Federal: O que Mudou em 2026?
Para evitar o esgotamento do padrão numérico de 14 dígitos devido ao crescimento acelerado de empresas e MEIs no Brasil, a Receita Federal implementou a transição oficial para o CNPJ Alfanumérico.
Principais Regras do Novo Padrão Alfanumérico:
- Mantém 14 posições: O tamanho total e a máscara visual continuam no formato
XX.XXX.XXX/XXXX-XX. - Letras de A a Z: As 12 primeiras posições (raiz e filial) agora aceitam letras maiúsculas e números.
- Dígitos Verificadores Numéricos: Os 2 últimos dígitos após o traço (
-XX) continuam sendo estritamente numéricos (0 a 9). - Cálculo do Módulo 11 via Tabela ASCII: O valor de cada caractere alfanumérico para a multiplicação é obtido subtraindo 48 do seu código ASCII (ex:
'0' = 0,'9' = 9,'A' = 17,'Z' = 42).
🔗 Ferramentas Relacionadas: Conversor de JSON para Excel e CSV | Comparador de Listas e Colunas Excel | Calculadora de Sub-redes IPv4