NovoVerificação de identidade facial

Como usar CPF para detectar compras suspeitas em cartões pré-pagos

Use validação de CPF para detectar compras suspeitas com cartões pré-pagos. Padrões de fraude, scoring de risco e integração com API.

Lucas Vieira
Lucas Vieira
··7 min de leitura
Como usar CPF para detectar compras suspeitas em cartões pré-pagos

Para detectar fraudes em cartões pré-pagos com CPF, valide o CPF do comprador antes de processar a compra e compare o nome retornado pela API com o nome do titular do cartão. Cartões pré-pagos não têm verificação de nome pelo emissor, tornando essa comparação a única barreira eficaz contra uso fraudulento. O Banco Central do Brasil regula a emissão de cartões pré-pagos e estabelece diretrizes de controle para transações suspeitas, o que reforça a responsabilidade do lojista em adotar camadas de validação próprias.

Cartões pré-pagos se tornaram uma ferramenta financeira popular no Brasil, especialmente entre a população desbancarizada e entre consumidores que buscam controle de gastos. No entanto, a mesma facilidade de obtenção e uso que os torna acessíveis também os transforma em vetor de fraude. Diferente de cartões de crédito tradicionais, pré-pagos podem ser adquiridos com verificação mínima de identidade, tornando-os atrativos para fraudadores.

A validação de CPF é uma camada de segurança essencial para detectar compras suspeitas realizadas com cartões pré-pagos.


Por que cartões pré-pagos são alvos de fraude

Características que facilitam o abuso

  • Aquisição simplificada -- muitos cartões pré-pagos não exigem verificação de identidade na compra.
  • Anonimato relativo -- o vínculo entre o cartão e o comprador é mais fraco que em cartões bancários.
  • Descartabilidade -- após o uso, o cartão pode ser simplesmente abandonado.
  • Recarga com dinheiro -- permite inserir fundos de origem difícil de rastrear.

Cenários de fraude comuns

  • Teste de cartões -- fraudadores usam pré-pagos com pequenas quantias para testar se números de cartão roubados funcionam.
  • Compras com identidade falsa -- combinam cartão pré-pago com CPF de terceiros.
  • Lavagem de dinheiro -- convertem recursos ilícitos em produtos que são revendidos.
  • Abuso de promoções -- usam múltiplos cartões pré-pagos para explorar ofertas de primeiro pedido.

Cruzamento de CPF com dados do cartão

A lógica de verificação

Quando um comprador usa um cartão pré-pago, o e-commerce deve verificar se o CPF informado no checkout é consistente com o perfil da transação.

import requests
from datetime import datetime

API_URL = "https://api.cpfhub.io/cpf/"
API_KEY = "SUA_API_KEY_AQUI"

def analisar_transacao_pre_pago(cpf: str, nome_cartao: str, valor: float,
    ip: str, historico_compras: list) -> dict:
    score_risco = 0
    alertas = []

    # 1. Valida CPF na API
    try:
    response = requests.get(
    f"{API_URL}{cpf.replace('.', '').replace('-', '')}",
    headers={
    "x-api-key": API_KEY,
    "Accept": "application/json"
    },
    timeout=10
    )
    data = response.json()

    if not data.get("success"):
    score_risco += 35
    alertas.append("CPF não encontrado na base")
    else:
    cpf_data = data["data"]

    # 2. Verifica se nome no cartão confere com o CPF
    nome_api = cpf_data["nameUpper"]
    nome_cartao_upper = nome_cartao.upper().strip()

    if nome_api != nome_cartao_upper:
    score_risco += 25
    alertas.append(f"Nome no cartão ({nome_cartao}) difere do CPF ({cpf_data['name']})")

    # 3. Verifica idade do titular
    idade = datetime.now().year - int(cpf_data["year"])
    if idade < 18:
    score_risco += 30
    alertas.append("Titular do CPF é menor de idade")

    except requests.Timeout:
    score_risco += 10
    alertas.append("Timeout na validação do CPF")
    except requests.RequestException:
    score_risco += 10
    alertas.append("Erro na validação do CPF")

    # 4. Analisa padrão de compras
    if not historico_compras:
    score_risco += 15
    alertas.append("Primeira compra do CPF na plataforma")

    if valor > 1000 and not historico_compras:
    score_risco += 20
    alertas.append("Compra de alto valor sem histórico")

    # 5. Verifica se o CPF já teve transações recusadas
    recusas = sum(1 for c in historico_compras if c.get("status") == "recusada")
    if recusas >= 2:
    score_risco += 25
    alertas.append(f"{recusas} transações recusadas anteriormente")

    return {
    "score_risco": min(score_risco, 100),
    "classificacao": classificar_risco(score_risco),
    "alertas": alertas,
    "acao_recomendada": definir_acao(score_risco)
    }

def classificar_risco(score: int) -> str:
    if score >= 60:
    return "alto"
    elif score >= 30:
    return "medio"
    return "baixo"

def definir_acao(score: int) -> str:
    if score >= 60:
    return "bloquear_e_revisar"
    elif score >= 30:
    return "solicitar_verificacao_adicional"
    return "aprovar"

Padrões de detecção avançados

Velocidade de transações

Múltiplas compras do mesmo CPF em curto intervalo podem indicar teste de cartões:

def detectar_teste_cartao(cpf: str, transacoes_recentes: list) -> dict:
    # Filtra transações das últimas 2 horas
    duas_horas_atras = datetime.now() - timedelta(hours=2)
    recentes = [t for t in transacoes_recentes
    if t["timestamp"] > duas_horas_atras and t["cpf"] == cpf]

    if len(recentes) >= 5:
    return {
    "alerta": True,
    "tipo": "teste_cartao",
    "transacoes": len(recentes),
    "acao": "bloquear_temporariamente"
    }

    # Verifica padrão de valores crescentes (teste de limites)
    valores = [t["valor"] for t in recentes]
    if len(valores) >= 3 and valores == sorted(valores):
    return {
    "alerta": True,
    "tipo": "teste_limite",
    "valores": valores,
    "acao": "revisar_manualmente"
    }

    return {"alerta": False}

Geolocalização inconsistente

Se o CPF é de um estado e o IP de outro, pode indicar uso fraudulento:

def verificar_geolocalizacao(cpf_data: dict, ip_location: dict) -> dict:
    # Comparação simplificada por estado
    # Em produção, usar base de CEP ou geolocalização mais precisa
    if ip_location.get("state") and cpf_data.get("state"):
    if ip_location["state"] != cpf_data["state"]:
    return {
    "alerta": True,
    "motivo": f"IP em {ip_location['state']}, CPF em {cpf_data['state']}"
    }
    return {"alerta": False}

Teste da API via cURL

curl --max-time 10 -X GET "https://api.cpfhub.io/cpf/12345678901" \
    -H "x-api-key: SUA_API_KEY_AQUI" \
    -H "Accept: application/json"

Resposta:

{
    "success": true,
    "data": {
    "cpf": "12345678901",
    "name": "João da Silva",
    "nameUpper": "JOAO DA SILVA",
    "gender": "M",
    "birthDate": "01/01/1990",
    "day": "01",
    "month": "01",
    "year": "1990"
    }
}

Ações de mitigação

Para transações de risco alto

  • Bloquear a transação imediatamente.
  • Enviar para análise manual da equipe antifraude.
  • Registrar o CPF em lista de observação.
  • Notificar o usuário sobre a análise de segurança.

Para transações de risco médio

  • Solicitar verificação adicional (selfie, SMS, e-mail).
  • Aplicar hold no envio por 24-48 horas.
  • Monitorar próximas transações do mesmo CPF.

Para transações de risco baixo

  • Aprovar normalmente.
  • Registrar para análise estatística posterior.

Perguntas frequentes

Por que cartões pré-pagos são mais vulneráveis a fraudes?

Cartões pré-pagos podem ser adquiridos anonimamente ou com dados mínimos de identificação. Diferentemente de cartões de crédito convencionais, não há verificação de crédito ou checagem rigorosa de identidade na emissão. Isso os torna atraentes para fraudadores que precisam de meios de pagamento desvinculados de sua identidade real.

A validação de CPF funciona para compras com cartão pré-pago?

Sim. A validação ocorre no e-commerce, não no emissor do cartão. O lojista consulta o CPF do comprador na API e compara o nome retornado com o nome informado no cadastro. Divergências indicam que o comprador não é quem diz ser.

Como limitar o risco de cartões pré-pagos sem bloquear todos eles?

Configure regras baseadas em risco: para compras acima de determinado valor com cartão pré-pago, exija validação de CPF obrigatória. Para valores baixos, o risco pode ser aceito como custo operacional. O objetivo é proteger o volume de alto valor sem criar fricção desnecessária.

Vale registrar o CPF associado a cada compra com cartão pré-pago?

Sim. O registro cria um histórico que permite identificar padrões de abuso: mesmo CPF com múltiplos cartões pré-pagos, ou múltiplos CPFs originando do mesmo dispositivo são sinais de fraude organizada.


Conclusão

Cartões pré-pagos são uma realidade do comércio brasileiro e não devem ser simplesmente bloqueados -- isso excluiria milhões de consumidores legítimos. A abordagem correta é implementar verificação de CPF no checkout para cruzar dados do titular com o perfil da transação, combinada com análise de padrões comportamentais para identificar anomalias.

A API do CPFHub.io retorna nome, gênero e data de nascimento do titular em ~150 ms, permitindo que o e-commerce tome decisões em tempo real sem comprometer a experiência do comprador. Cadastre-se em cpfhub.io e comece com 50 consultas gratuitas por mês.

CPFHub.io

Pronto para integrar a API?

50 créditos gratuitos para testar agora. Sem cartão de crédito. Acesso imediato à documentação.

WhatsApp