Golpistas exploram a falta de verificação em cadastros para criar contas falsas, realizar compras fraudulentas e contratar serviços em nome de terceiros. A validação de dados em tempo real com API de CPF confirma, no momento do preenchimento, que o nome e a data de nascimento informados correspondem ao titular do documento. Segundo o CERT.br, fraudes de identidade estão entre as principais categorias de incidentes reportados no Brasil, e a verificação na origem é a defesa mais eficiente.
O que é validação em tempo real
Validação em tempo real significa verificar os dados do cliente no momento em que ele os informa, antes de qualquer processamento. A API é chamada durante o preenchimento do formulário, não depois.
| Validação offline | Validação em tempo real |
|---|---|
| Verifica depois do cadastro | Verifica durante o cadastro |
| Fraude já está no sistema | Fraude é bloqueada antes de entrar |
| Revisão manual posterior | Decisão automática imediata |
| Demora horas/dias | ~900ms |
Dados que podem ser cruzados
curl -X GET https://api.cpfhub.io/cpf/12345678900 \
-H "x-api-key: SUA_CHAVE_DE_API" \
-H "Accept: application/json"
{
"success": true,
"data": {
"cpf": "12345678900",
"name": "João da Silva",
"nameUpper": "JOÃO DA SILVA",
"gender": "M",
"birthDate": "15/06/1990",
"day": 15,
"month": 6,
"year": 1990
}
}
| Dado informado | Dado da API | Verificação |
|---|---|---|
| Nome completo | name / nameUpper | Similaridade >= 85% |
| Data de nascimento | birthDate | Correspondência exata |
| Gênero | gender | Consistência |
Implementação
import requests
from difflib import SequenceMatcher
from datetime import datetime
def validar_cliente_tempo_real(cpf: str, nome: str, nascimento: str) -> dict:
# Consultar API
url = f'https://api.cpfhub.io/cpf/{cpf}'
headers = {
'x-api-key': 'SUA_CHAVE_DE_API',
'Accept': 'application/json'
}
response = requests.get(url, headers=headers, timeout=10)
resultado = response.json()
if not resultado.get('success'):
return {'valido': False, 'motivo': 'CPF nao encontrado', 'risco': 'ALTO'}
dados = resultado['data']
alertas = []
# Verificar nome
similaridade = SequenceMatcher(
None, nome.upper().strip(), dados['nameUpper']
).ratio()
if similaridade < 0.70:
alertas.append(f'Nome muito divergente ({similaridade:.0%})')
elif similaridade < 0.85:
alertas.append(f'Nome parcialmente divergente ({similaridade:.0%})')
# Verificar nascimento
if nascimento != dados['birthDate']:
alertas.append('Data de nascimento divergente')
# Verificar idade minima
idade = datetime.now().year - dados['year']
if idade < 18:
alertas.append('Menor de 18 anos')
# Decisao
if len(alertas) == 0:
return {'valido': True, 'nome_confirmado': dados['name'], 'risco': 'BAIXO'}
elif any('muito divergente' in a or 'Menor' in a for a in alertas):
return {'valido': False, 'alertas': alertas, 'risco': 'ALTO'}
else:
return {'valido': False, 'alertas': alertas, 'risco': 'MEDIO'}
Cenários de uso
Cadastro de clientes
Validar no momento do cadastro previne contas falsas desde o início.
Checkout de e-commerce
Validar antes de processar o pagamento previne compras fraudulentas.
Onboarding de fintechs
KYC em tempo real atende exigências regulatórias sem fricção.
Contratação de serviços
Validar a identidade do contratante antes de ativar o serviço.
Golpes que a validação em tempo real previne
-
Identidade falsa -- CPF não existe na base.
-
CPF de terceiros -- Nome diverge do titular real.
-
Menor de idade -- Data de nascimento revela idade insuficiente.
-
Contas duplicadas -- Mesmo CPF já cadastrado.
-
Dados fabricados -- Combinações inconsistentes de nome e nascimento.
Perguntas frequentes
Qual percentual de similaridade de nome devo usar como limiar de aprovação?
O limiar recomendado é 85% para aprovação automática e abaixo de 70% para bloqueio imediato. Entre 70% e 85%, trate como risco médio e adicione uma etapa de revisão ou solicite um documento adicional. Esses valores cobrem variações comuns como abreviações, nomes compostos e acentuação inconsistente.
A validação em tempo real impacta a experiência do usuário?
Com latência de ~900ms, o impacto é imperceptível quando há um indicador visual de carregamento. O ganho em segurança e a redução de chargebacks justificam amplamente o tempo de resposta. A validação acontece em segundo plano enquanto o usuário ainda está preenchendo outros campos do formulário.
Como tratar casos em que o CPF existe mas o nome diverge muito?
Apresente uma mensagem genérica de erro sem revelar o motivo específico da divergência — informar que "o nome não corresponde ao CPF" pode ser explorado por fraudadores. Registre o evento no log com os dados completos para análise posterior pela equipe de segurança.
A ANPD exige alguma documentação específica para validação de CPF em tempo real?
A ANPD orienta que o tratamento de dados pessoais deve ter base legal documentada e finalidade específica declarada. Para validação de identidade em cadastros, a base legal mais comum é a execução de contrato ou o legítimo interesse do controlador em prevenir fraudes. Mantenha um registro de impacto à proteção de dados (RIPD) atualizado.
Conclusão
Validar dados em tempo real com API de CPF é a defesa mais eficiente contra golpes digitais. Com ~900ms de resposta, a CPFHub.io
Cadastre-se em cpfhub.io
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.



