# Como verificar se um CPF é válido sem pagar nada

> Aprenda métodos gratuitos para verificar se um CPF é válido, desde a validação algorítmica até consultas via API com plano gratuito.

**Publicado:** 24/04/2024
**Autor:** Redação CPFHub.io
**URL:** https://cpfhub.io/blog/como-verificar-se-um-cpf-e-valido-sem-pagar-nada

---


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**](https://www.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](https://www.gov.br/receitafederal).

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:

```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.

```javascript
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**](https://www.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](https://www.cpfhub.io/), gere sua chave de API no painel e faça a primeira consulta:

```bash
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:

```json
{
 "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.

```python
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**](https://www.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-docbr` e `pycpfcnpj`
* **JavaScript/Node.js** -- `cpf-cnpj-validator` e `@fnando/cpf`
* **PHP** -- `respect/validation` e `geekcom/validator-docs`
* **Java** -- `caelum-stella` e `cpf-validator`
* **Ruby** -- `cpf_cnpj` e `validates_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](https://www.gov.br/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.

### Leia também

- [Diferença entre validação de CPF e consulta de CPF: quando usar cada uma](https://cpfhub.io/blog/diferenca-entre-validacao-de-cpf-e-consulta-de-cpf-quando-usar-cada-uma)
- [API de CPF grátis para desenvolvedores: como começar em 5 minutos](https://cpfhub.io/blog/api-cpf-gratis-desenvolvedores-comecar-5-minutos)
- [Como consultar CPF na Receita Federal pelo site oficial](https://cpfhub.io/blog/como-consultar-cpf-na-receita-federal-pelo-site-oficial)
- [APIs de CPF: como avaliar o custo-benefício antes de contratar?](https://cpfhub.io/blog/apis-de-cpf-como-avaliar-o-custo-beneficio-antes-de-contratar)

---

## 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](https://www.cpfhub.io/) e comece com 50 consultas gratuitas por mês.

