# Como Marketplaces Podem Evitar Golpes com APIs Gratuitas de CPF

> Descubra como marketplaces podem usar APIs gratuitas de CPF para prevenir fraudes no cadastro de vendedores e compradores.

**Publicado:** 23/01/2025
**Autor:** Redação CPFHub.io
**URL:** https://cpfhub.io/blog/marketplaces-evitar-golpes-apis-gratuitas-cpf

---


Marketplaces podem evitar golpes com APIs gratuitas de CPF validando a identidade de vendedores e compradores no cadastro: a consulta confirma que o CPF existe, que o nome declarado corresponde ao titular e que o documento não está sendo reutilizado em múltiplas contas — bloqueando as fraudes mais comuns sem custo de licenciamento.

## Introdução

Marketplaces são alvos frequentes de golpes digitais. Vendedores fraudulentos criam contas com CPFs falsos para aplicar golpes em compradores, enquanto compradores mal-intencionados usam identidades falsas para realizar chargebacks. A validação de CPF é a primeira camada de defesa contra esses cenários, e uma **API gratuita de CPF** permite implementá-la sem custo, especialmente em marketplaces em fase inicial que ainda não têm receita para investir em soluções pagas.

## Tipos de golpes mais comuns em marketplaces

Cada tipo de golpe explora uma fraqueza diferente no processo de cadastro e verificação de identidade.

| Tipo de golpe | Como funciona | Impacto |
|--------------|---------------|---------|
| **Vendedor fantasma** | Cria conta com CPF falso, anuncia produto, recebe pagamento e desaparece | Perda financeira do comprador |
| **Conta múltipla** | Mesmo fraudador cria várias contas com CPFs diferentes para contornar banimento | Reincidência de fraudes |
| **CPF de terceiro** | Usa CPF de outra pessoa para criar conta e cometer fraudes | Vítima inocente prejudicada |
| **Chargeback fraudulento** | Compra com identidade falsa e contesta o pagamento | Perda para vendedor e marketplace |
| **Lavagem de reputação** | Cria contas novas após ter conta anterior banida por má conduta | Erosão da confiança |

- **Vendedor fantasma** -- o golpe mais comum, facilitado quando não há verificação de identidade
- **CPF de terceiro** -- além da fraude, coloca o marketplace em risco de violação da LGPD
- **Conta múltipla** -- sem validação, nada impede que um fraudador banido retorne com novo cadastro

---

## Como a validação de CPF combate cada golpe

A API de CPF atua em diferentes momentos do fluxo para bloquear tentativas de fraude.

```python
import requests
import os
from datetime import datetime

class AntifraudeMarketplace:
 def __init__(self):
 self.api_key = os.environ.get("CPFHUB_API_KEY", "")
 self.base_url = "https://api.cpfhub.io/cpf"
 self.cpfs_cadastrados = {} # Em produção, usar banco de dados

 def validar_novo_cadastro(self, cpf: str, nome_informado: str) -> dict:
 cpf_limpo = "".join(c for c in cpf if c.isdigit())

 # Verificação 1: CPF já cadastrado no marketplace
 if cpf_limpo in self.cpfs_cadastrados:
 return {
 "aprovado": False,
 "motivo": "CPF já cadastrado em outra conta",
 "risco": "alto"
 }

 # Verificação 2: Consultar CPF na API
 try:
 response = requests.get(
 f"{self.base_url}/{cpf_limpo}",
 headers={"x-api-key": self.api_key},
 timeout=10
 )

 if response.status_code != 200:
 return {
 "aprovado": False,
 "motivo": "CPF não encontrado na base de dados",
 "risco": "alto"
 }

 dados = response.json()
 if not dados.get("success"):
 return {
 "aprovado": False,
 "motivo": "CPF inválido",
 "risco": "alto"
 }

 nome_api = dados["data"]["name"].upper()
 nome_input = nome_informado.upper()

 # Verificação 3: Nome corresponde
 correspondencia = self._calcular_similaridade(nome_api, nome_input)

 if correspondencia < 0.6:
 return {
 "aprovado": False,
 "motivo": "Nome informado não corresponde ao CPF",
 "risco": "alto",
 "detalhe": f"Esperado: {nome_api}"
 }

 # Verificação 4: Idade mínima
 ano_nascimento = int(dados["data"]["year"])
 idade = datetime.now().year - ano_nascimento
 if idade < 18:
 return {
 "aprovado": False,
 "motivo": "Titular do CPF é menor de idade",
 "risco": "medio"
 }

 self.cpfs_cadastrados[cpf_limpo] = {
 "nome": nome_api,
 "data_cadastro": datetime.now().isoformat()
 }

 return {
 "aprovado": True,
 "nome_confirmado": dados["data"]["name"],
 "risco": "baixo"
 }

 except Exception as e:
 return {
 "aprovado": None,
 "motivo": f"Erro na verificação: {str(e)}",
 "risco": "medio"
 }

 def _calcular_similaridade(self, s1: str, s2: str) -> float:
 palavras_s1 = set(s1.split())
 palavras_s2 = set(s2.split())
 if not palavras_s1 or not palavras_s2:
 return 0.0
 intersecao = palavras_s1 & palavras_s2
 uniao = palavras_s1 | palavras_s2
 return len(intersecao) / len(uniao)
```

| Verificação | Golpe combatido | Eficácia |
|------------|----------------|----------|
| CPF já cadastrado | Conta múltipla | Alta |
| CPF existe na base | Vendedor fantasma com CPF falso | Alta |
| Nome corresponde | CPF de terceiro | Média-alta |
| Idade mínima | Cadastro com CPF de menor | Alta |

- **Verificação em camadas** -- cada etapa filtra um tipo diferente de tentativa de fraude
- **Similaridade de nome** -- tolerante a variações de acentuação e abreviações
- **Registro de CPFs** -- impede que o mesmo CPF seja usado em múltiplas contas

---

## Implementando verificação no fluxo de onboarding

A validação deve ser integrada ao fluxo de cadastro de vendedores, que exige maior rigor.

```python
class OnboardingVendedor:
 def __init__(self):
 self.antifraude = AntifraudeMarketplace()

 def iniciar_cadastro(self, dados: dict) -> dict:
 etapas = {
 "cpf": self._validar_cpf,
 "dados_pessoais": self._validar_dados,
 "endereco": self._validar_endereco,
 }

 resultados = {}
 for etapa, validador in etapas.items():
 resultado = validador(dados)
 resultados[etapa] = resultado
 if resultado.get("bloqueante"):
 return {
 "status": "rejeitado",
 "etapa_falha": etapa,
 "resultados": resultados
 }

 return {"status": "aprovado", "resultados": resultados}

 def _validar_cpf(self, dados: dict) -> dict:
 resultado = self.antifraude.validar_novo_cadastro(
 cpf=dados.get("cpf", ""),
 nome_informado=dados.get("nome", "")
 )

 return {
 "aprovado": resultado["aprovado"] is True,
 "bloqueante": resultado["aprovado"] is False,
 "risco": resultado.get("risco", "desconhecido"),
 "detalhes": resultado.get("motivo", "")
 }

 def _validar_dados(self, dados: dict) -> dict:
 campos_obrigatorios = ["nome", "email", "telefone"]
 ausentes = [c for c in campos_obrigatorios if not dados.get(c)]
 return {
 "aprovado": len(ausentes) == 0,
 "bloqueante": len(ausentes) > 0,
 "detalhes": f"Campos ausentes: {', '.join(ausentes)}" if ausentes else ""
 }

 def _validar_endereco(self, dados: dict) -> dict:
 return {
 "aprovado": bool(dados.get("cep")),
 "bloqueante": False,
 "detalhes": "" if dados.get("cep") else "CEP não informado"
 }
```

- **Validação em etapas** -- cada etapa pode ser bloqueante ou apenas gerar um alerta
- **Fail fast** -- se o CPF é inválido, não há razão para continuar com as demais verificações
- **Flexibilidade** -- compradores podem ter validação mais leve, vendedores mais rigorosa

---

## Métricas e monitoramento de fraudes

Acompanhar as métricas de validação ajuda a identificar padrões de ataque e ajustar as regras.

| Métrica | O que indica | Ação se anormal |
|---------|-------------|----------------|
| Taxa de CPFs inválidos | % de cadastros com CPF falso | Aumentar verificação |
| Taxa de nome divergente | % de CPFs com nome diferente | Revisar tolerância |
| CPFs duplicados/dia | Tentativas de conta múltipla | Bloquear IP |
| Horário das tentativas | Padrão de horário dos golpistas | Regras por horário |
| Origem geográfica | Concentração suspeita de cadastros | Rate limit por região |

```python
class MetricasAntifraude:
 def __init__(self):
 self.contadores = {
 "total_validacoes": 0,
 "cpf_invalido": 0,
 "nome_divergente": 0,
 "cpf_duplicado": 0,
 "aprovados": 0,
 }

 def registrar(self, resultado: dict):
 self.contadores["total_validacoes"] += 1

 if resultado.get("aprovado") is True:
 self.contadores["aprovados"] += 1
 elif "não encontrado" in resultado.get("motivo", ""):
 self.contadores["cpf_invalido"] += 1
 elif "não corresponde" in resultado.get("motivo", ""):
 self.contadores["nome_divergente"] += 1
 elif "já cadastrado" in resultado.get("motivo", ""):
 self.contadores["cpf_duplicado"] += 1

 def relatorio(self) -> dict:
 total = max(self.contadores["total_validacoes"], 1)
 return {
 "taxa_aprovacao": f"{self.contadores['aprovados'] / total:.1%}",
 "taxa_cpf_invalido": f"{self.contadores['cpf_invalido'] / total:.1%}",
 "taxa_nome_divergente": f"{self.contadores['nome_divergente'] / total:.1%}",
 "taxa_duplicado": f"{self.contadores['cpf_duplicado'] / total:.1%}",
 }
```

- **Monitoramento contínuo** -- métricas diárias ajudam a detectar ondas de tentativas de fraude
- **Ajuste dinâmico** -- se a taxa de fraude sobe, a tolerância da similaridade pode ser reduzida
- **Relatórios** -- dados quantitativos justificam investimento em camadas adicionais de proteção

---

## Perguntas frequentes

### O que é necessário para implementar validação de CPF em um marketplace?
Uma chamada GET para `https://api.cpfhub.io/cpf/{CPF}` com o header `x-api-key` retorna nome, data de nascimento e gênero do titular. Com esses dados, o marketplace consegue comparar o nome declarado pelo vendedor, verificar maioridade e detectar CPFs duplicados — tudo em tempo real durante o cadastro, com latência média de ~900ms.

### Como a API reage quando o limite gratuito é atingido?
A API da CPFHub.io nunca bloqueia consultas nem retorna erro por volume excedido. Ao ultrapassar as 50 consultas mensais do plano gratuito, cada consulta adicional é cobrada automaticamente a R$0,15. O marketplace continua operando sem interrupção; o controle de custo fica no painel em [app.cpfhub.io/settings/billing](https://app.cpfhub.io/settings/billing).

### Como garantir conformidade com a LGPD ao validar CPF no marketplace?
Colete o CPF exclusivamente para verificação de identidade, registre a finalidade nos termos de uso e armazene apenas o mínimo necessário. A [ANPD](https://www.gov.br/anpd) orienta que dados de identificação devem ser tratados com o princípio da necessidade. Não compartilhe dados de CPF com fornecedores que não tenham base legal para recebê-los.

### Validação de CPF é suficiente para bloquear 100% das fraudes em marketplaces?
Não — é a camada mais acessível e de maior impacto imediato, mas deve ser combinada com análise de comportamento, verificação de e-mail e monitoramento de transações. CPFs sintéticos numericamente válidos podem passar na verificação algorítmica, mas a consulta à API confirma se o número pertence a uma pessoa real, eliminando a grande maioria das tentativas.

### Leia também

- [Golpe do CPF clonado em compras online: como detectar e prevenir](https://cpfhub.io/blog/golpe-cpf-clonado-compras-online-detectar-prevenir)
- [Como evitar chargebacks usando validação de CPF no checkout](https://cpfhub.io/blog/como-evitar-chargebacks-usando-validacao-de-cpf-no-checkout)
- [Como identificar fraudes no cadastro de clientes usando APIs](https://cpfhub.io/blog/como-identificar-fraudes-no-cadastro-de-clientes-usando-apis)
- [Tendências de fraude digital: novos vetores de ataque e como validação de CPF protege](https://cpfhub.io/blog/tendencias-de-fraude-digital-novos-vetores-de-ataque-e-como-validacao-de-cpf-protege)

---

## Conclusão

APIs gratuitas de CPF são uma ferramenta acessível e eficaz para marketplaces combaterem golpes desde o primeiro dia de operação. A validação em camadas, verificando existência do CPF, correspondência de nome, idade mínima e unicidade no marketplace, bloqueia a grande maioria das tentativas de fraude sem custo de licenciamento. Cadastre-se em [cpfhub.io](https://www.cpfhub.io/) — 50 consultas mensais gratuitas, sem cartão de crédito — e ative a validação de CPF no onboarding de vendedores ainda hoje.

