Para verificar se um CPF é válido sem pagar nada, há dois caminhos: a validação algorítmica dos dígitos verificadores — que pode ser feita localmente em qualquer linguagem de programação, sem chamada externa — e a consulta via API com plano gratuito, que confirma a existência do CPF e retorna nome e data de nascimento do titular. A CPFHub.io oferece 50 consultas por mês no plano gratuito, sem cartão de crédito.
Introdução
Validar um CPF é uma necessidade recorrente em praticamente qualquer aplicação que lida com cadastros de pessoas físicas no Brasil. Seja em um e-commerce, uma fintech, uma plataforma de serviços ou um sistema interno de gestão, garantir que o CPF informado pelo usuário é válido é o primeiro passo para evitar fraudes, erros cadastrais e problemas com a Receita Federal.
A boa notícia é que existem formas de realizar essa validação sem custo algum. Desde a verificação algorítmica dos dígitos verificadores até consultas via APIs com planos gratuitos, desenvolvedores têm diversas opções à disposição.
Nível 1: validação algorítmica dos dígitos verificadores
O método mais básico e amplamente utilizado para verificar um CPF é a validação dos dígitos verificadores. Todo CPF brasileiro possui 11 dígitos, sendo os dois últimos calculados a partir dos nove primeiros por meio de um algoritmo específico definido pela Receita Federal.
Como funciona o algoritmo
O CPF segue o formato XXX.XXX.XXX-DD, onde DD são os dígitos verificadores. O cálculo envolve duas etapas de multiplicação e soma ponderada.
Veja uma implementação em Python:
def validar_cpf(cpf: str) -> bool:
cpf = ''.join(filter(str.isdigit, cpf))
if len(cpf) != 11:
return False
# Rejeitar CPFs com todos os dígitos iguais
if cpf == cpf[0] * 11:
return False
# Calcular primeiro dígito verificador
soma = sum(int(cpf[i]) * (10 - i) for i in range(9))
resto = soma % 11
digito1 = 0 if resto < 2 else 11 - resto
if int(cpf[9]) != digito1:
return False
# Calcular segundo dígito verificador
soma = sum(int(cpf[i]) * (11 - i) for i in range(10))
resto = soma % 11
digito2 = 0 if resto < 2 else 11 - resto
if int(cpf[10]) != digito2:
return False
return True
# Teste
print(validar_cpf('123.456.789-09')) # True ou False conforme o CPF
Limitações da validação algorítmica
Embora eficiente para detectar erros de digitação, a validação algorítmica possui limitações importantes:
-
Não confirma existência -- Um CPF pode ser matematicamente válido sem estar registrado na Receita Federal.
-
Não verifica titularidade -- Não há como saber a quem pertence o CPF apenas com o algoritmo.
-
Não detecta fraudes -- CPFs cancelados, suspensos ou pertencentes a pessoas falecidas passam na validação algorítmica.
-
Não retorna dados cadastrais -- Nome, data de nascimento e gênero não são acessíveis por esse método.
Nível 2: validação via regex e formatação
Antes mesmo de aplicar o algoritmo de dígitos verificadores, é útil validar o formato do CPF. Isso ajuda a rejeitar rapidamente entradas inválidas sem processamento adicional.
function formatoValido(cpf) {
// Aceita com ou sem formatação
const regex = /^(\d{3}\.?\d{3}\.?\d{3}-?\d{2})$/;
return regex.test(cpf);
}
function limparCpf(cpf) {
return cpf.replace(/\D/g, '');
}
// Exemplo de uso
const cpfInput = '123.456.789-09';
if (formatoValido(cpfInput)) {
const cpfLimpo = limparCpf(cpfInput);
console.log('CPF limpo:', cpfLimpo); // 12345678909
}
Essa etapa é especialmente útil em formulários web, onde a máscara de entrada pode não estar configurada corretamente e o usuário pode informar o CPF em formatos variados.
Nível 3: consulta via API gratuita
Para ir além da validação algorítmica e confirmar que um CPF realmente existe e obter dados cadastrais do titular, é necessário consultar uma API especializada. A CPFHub.io oferece plano gratuito com 50 consultas mensais, sem cartão de crédito, permitindo validar a existência do CPF e obter nome e data de nascimento do titular.
Como consultar gratuitamente
O processo é simples: crie uma conta gratuita em cpfhub.io, gere sua chave de API no painel e faça a primeira consulta:
curl -X GET https://api.cpfhub.io/cpf/12345678900 \
-H "x-api-key: SUA_CHAVE_DE_API" \
-H "Accept: application/json"
A resposta inclui dados cadastrais do titular:
{
"success": true,
"data": {
"cpf": "12345678900",
"name": "João da Silva",
"nameUpper": "JOAO DA SILVA",
"gender": "M",
"birthDate": "15/06/1990",
"day": 15,
"month": 6,
"year": 1990
}
}
O que o plano gratuito oferece
| Recurso | Plano Gratuito |
|---|---|
| Consultas por mês | 50 |
| Custo mensal | R$ 0,00 |
| API REST | Sim |
| Exemplos de integração | Sim |
| Dashboard de histórico | Sim |
| SLA | 80% |
| Cartão de crédito necessário | Não |
Combinando os métodos: estratégia em camadas
A abordagem mais inteligente é combinar os três níveis de validação em uma estratégia em camadas, otimizando o uso das consultas gratuitas disponíveis.
Camada 1: formato e regex
Antes de qualquer processamento, valide o formato do CPF. Essa etapa é instantânea e não consome recursos.
Camada 2: algoritmo de dígitos verificadores
Aplique o algoritmo de validação para descartar CPFs matematicamente inválidos. Isso elimina a grande maioria dos erros de digitação.
Camada 3: consulta à API
Somente CPFs que passarem nas duas primeiras camadas devem ser consultados via API. Isso economiza suas consultas gratuitas e garante que cada chamada à API seja relevante.
import requests
def validar_cpf_completo(cpf: str, api_key: str) -> dict:
cpf_limpo = ''.join(filter(str.isdigit, cpf))
# Camada 1: formato
if len(cpf_limpo) != 11:
return {'valido': False, 'motivo': 'Formato inválido'}
# Camada 2: dígitos verificadores
if not validar_digitos(cpf_limpo):
return {'valido': False, 'motivo': 'Dígitos verificadores inválidos'}
# Camada 3: consulta à API
url = f'https://api.cpfhub.io/cpf/{cpf_limpo}'
headers = {
'x-api-key': api_key,
'Accept': 'application/json'
}
response = requests.get(url, headers=headers, timeout=10)
data = response.json()
if data.get('success'):
return {
'valido': True,
'nome': data['data']['name'],
'nascimento': data['data']['birthDate']
}
else:
return {'valido': False, 'motivo': 'CPF não encontrado na base'}
Quando o plano gratuito não é suficiente
O plano gratuito da CPFHub.io cobre bem projetos em fase de teste e sistemas internos com baixo volume. Para os cenários abaixo, considere o plano Pro:
-
E-commerces com volume moderado de pedidos -- Mesmo lojas pequenas podem ultrapassar 50 transações por mês.
-
Processos de onboarding contínuo -- Plataformas que cadastram novos usuários diariamente precisam de um volume maior.
-
Aplicações em produção com SLA -- O plano gratuito oferece SLA de 80%, o que pode não ser adequado para sistemas críticos.
Nesses casos, o plano Pro (R$ 149/mês com 1.000 consultas incluídas e SLA de 99%) ou o plano Corporativo (sob consulta, com SLA de 99,9%) são alternativas que mantêm o custo acessível.
Ferramentas e bibliotecas de validação de CPF
Diversas linguagens de programação contam com bibliotecas que implementam a validação algorítmica de CPF. Algumas das mais populares incluem:
- Python --
validate-docbrepycpfcnpj - JavaScript/Node.js --
cpf-cnpj-validatore@fnando/cpf - PHP --
respect/validationegeekcom/validator-docs - Java --
caelum-stellaecpf-validator - Ruby --
cpf_cnpjevalidates_cpf_cnpj
Essas bibliotecas implementam apenas a validação algorítmica. Para obter dados cadastrais e confirmar a existência do CPF, é necessário utilizar uma API como a da CPFHub.io.
Perguntas frequentes
O que é necessário para implementar validação de CPF neste contexto?
A validação de CPF exige uma chamada à API com o número do documento e a chave de autenticação. A CPFHub.io retorna o status do CPF, nome do titular e data de nascimento em menos de 200ms, permitindo a verificação em tempo real durante o cadastro ou transação.
A API CPFHub.io funciona para todos os volumes de consulta?
Sim. O plano gratuito oferece 50 consultas por mês sem cartão de crédito — ideal para testes e projetos pequenos. Para volumes maiores, o plano Pro inclui 1.000 consultas mensais por R$149. Se o limite for ultrapassado, a API não bloqueia: cobra R$0,15 por consulta adicional.
Como garantir conformidade com a LGPD ao usar uma API de CPF?
Use o CPF apenas para a finalidade declarada ao titular, armazene apenas o necessário (não guarde o CPF cru se um token bastar), implemente controle de acesso aos logs de consulta e documente a base legal para o tratamento. A ANPD orienta que dados de identificação devem ser tratados com o princípio da necessidade.
Quanto tempo leva para integrar a API CPFHub.io?
A integração básica leva menos de 30 minutos: crie uma conta em cpfhub.io, gere a API key no painel e faça uma chamada GET para https://api.cpfhub.io/cpf/{CPF} com o header x-api-key. A documentação inclui exemplos em Python, Node.js, PHP, Java e outras linguagens.
Conclusão
Verificar se um CPF é válido sem pagar nada é perfeitamente viável, desde que você compreenda as diferenças entre os métodos disponíveis. A validação algorítmica é gratuita e ilimitada, mas confirma apenas que os dígitos verificadores estão corretos. Para verificar a existência real do CPF e obter dados cadastrais do titular, uma API de consulta é indispensável.
A estratégia mais eficiente combina validação algorítmica local com consultas à API, economizando chamadas e garantindo resultados confiáveis. Com o plano gratuito da CPFHub.io, você tem 50 consultas mensais para testar, prototipar e validar sua integração sem nenhum investimento.
Crie uma conta em cpfhub.io e comece com 50 consultas gratuitas por mês.
CPFHub.io
Pronto para integrar a API?
50 consultas gratuitas para testar agora. Sem cartão de crédito. Acesso imediato à documentação.
Sobre a redação
Redação CPFHub.io
Time editorial especializado em APIs de CPF, identidade digital e compliance no mercado brasileiro. Produzimos guias técnicos, análises regulatórias e tutoriais sobre LGPD e KYC para desenvolvedores e líderes de produto.



