Como validar CPF em programas de afiliados para evitar auto-compra fraudulenta

Saiba como usar validação de CPF via API para detectar e prevenir auto-compra fraudulenta em programas de afiliados e marketing de performance.

Redação CPFHub.io
Redação CPFHub.io
··8 min de leitura
Como validar CPF em programas de afiliados para evitar auto-compra fraudulenta

Validar o CPF do comprador contra o CPF do afiliado em cada transação é a forma mais direta de detectar auto-compra fraudulenta em programas de afiliados: a API do CPFHub.io retorna nome, data de nascimento e outros dados do titular, permitindo cruzar identidades em tempo real e bloquear ou reter comissões antes que o pagamento seja liberado.

Introdução

Programas de afiliados são uma estratégia poderosa de aquisição de clientes. O modelo funciona bem quando afiliados genuínos promovem produtos e recebem comissões por vendas reais. O problema surge quando afiliados manipulam o sistema realizando auto-compras -- comprando os produtos que eles mesmos promovem para receber a comissão sem gerar demanda real. Essa prática corrói a margem do negócio e distorce métricas de performance.

A validação de CPF é uma técnica eficaz para detectar auto-compra, pois permite cruzar a identidade do afiliado com a identidade do comprador.


O que é auto-compra em programas de afiliados

A auto-compra ocorre quando um afiliado realiza compras usando seu próprio link de afiliação para receber a comissão. Em variações mais sofisticadas, o afiliado pode:

  • Usar dados de familiares -- Comprar com CPF do cônjuge, filhos ou pais para dificultar a detecção.

  • Criar múltiplas contas -- Registrar-se como afiliado e como comprador com identidades diferentes.

  • Comprar e devolver -- Efetuar a compra para receber a comissão e depois solicitar o reembolso do produto.

  • Usar CPFs de terceiros -- Adquirir ou utilizar dados de pessoas sem relação para mascarar a operação.

O impacto financeiro vai além da comissão paga indevidamente: inclui custos de processamento de pagamento, logística de envio e devolução, e o desgaste operacional de lidar com transações fraudulentas.


Como a validação de CPF detecta auto-compra

O princípio é simples: ao cadastrar um afiliado, o programa coleta e válida seu CPF. Quando uma compra é realizada pelo link desse afiliado, o sistema válida o CPF do comprador e verifica se há relação entre os dois.

Verificações possíveis

  • CPF idêntico -- O CPF do comprador é o mesmo do afiliado. Caso mais simples de detectar.

  • Mesmo sobrenome e endereço -- Pode indicar compra por familiar.

  • Nome parcialmente coincidente -- Variações do mesmo nome podem indicar tentativa de camuflagem.

  • Padrão de compras -- Um afiliado cujos compradores têm CPFs com dados semelhantes (mesmo sobrenome, faixas etárias próximas) pode estar usando dados de familiares.


Implementação com Node.js

O exemplo abaixo mostra como criar um middleware de validação que compara o CPF do afiliado com o CPF do comprador em cada transação:

const express = require('express');
const app = express();
app.use(express.json());

const CPFHUB_API_KEY = 'SUA_CHAVE_DE_API';

async function consultarCpf(cpf) {
    const controller = new AbortController();
    const timeoutId = setTimeout(() => controller.abort(), 10000);

    try {
    const response = await fetch(
    `https://api.cpfhub.io/cpf/${cpf}`,
    {
    method: 'GET',
    headers: {
    'x-api-key': CPFHUB_API_KEY,
    'Accept': 'application/json'
    },
    signal: controller.signal
    }
    );
    clearTimeout(timeoutId);
    return await response.json();
    } catch (error) {
    clearTimeout(timeoutId);
    throw error;
    }
}

function extrairSobrenome(nomeCompleto) {
    const partes = nomeCompleto.toUpperCase().trim().split(' ');
    return partes.length > 1 ? partes[partes.length - 1] : '';
}

async function verificarAutoCompra(cpfAfiliado, cpfComprador) {
    const alertas = [];
    let risco = 'BAIXO';

    // 1. CPF identico
    if (cpfAfiliado === cpfComprador) {
    return {
    risco: 'CRITICO',
    alertas: ['CPF do comprador e identico ao CPF do afiliado'],
    acao: 'BLOQUEAR_COMISSAO'
    };
    }

    // 2. Consultar ambos os CPFs
    const [dadosAfiliado, dadosComprador] = await Promise.all([
    consultarCpf(cpfAfiliado),
    consultarCpf(cpfComprador)
    ]);

    if (!dadosAfiliado.success || !dadosComprador.success) {
    alertas.push('Falha na validacao de um dos CPFs');
    risco = 'ALTO';
    return { risco, alertas, acao: 'REVISAR' };
    }

    const nomeAfiliado = dadosAfiliado.data.nameUpper;
    const nomeComprador = dadosComprador.data.nameUpper;

    // 3. Verificar sobrenome comum
    const sobrenomeAfiliado = extrairSobrenome(nomeAfiliado);
    const sobrenomeComprador = extrairSobrenome(nomeComprador);

    if (sobrenomeAfiliado && sobrenomeAfiliado === sobrenomeComprador) {
    alertas.push(
    `Mesmo sobrenome: afiliado="${nomeAfiliado}", `
    + `comprador="${nomeComprador}"`
    );
    risco = 'MEDIO';
    }

    // 4. Verificar proximidade de idade (possivel familiar)
    const idadeAfiliado = new Date().getFullYear() - dadosAfiliado.data.year;
    const idadeComprador = new Date().getFullYear() - dadosComprador.data.year;
    const diffIdade = Math.abs(idadeAfiliado - idadeComprador);

    if (diffIdade <= 5 && sobrenomeAfiliado === sobrenomeComprador) {
    alertas.push('Possivel familiar: sobrenome igual e idades proximas');
    risco = 'ALTO';
    }

    // 5. Decisao
    let acao;
    if (risco === 'ALTO') {
    acao = 'RETER_COMISSAO';
    } else if (risco === 'MEDIO') {
    acao = 'REVISAR';
    } else {
    acao = 'LIBERAR_COMISSAO';
    }

    return { risco, alertas, acao };
}

app.post('/api/vendas/validar-comissao', async (req, res) => {
    const { cpf_afiliado, cpf_comprador, valor_comissao } = req.body;

    try {
    const resultado = await verificarAutoCompra(
    cpf_afiliado,
    cpf_comprador
    );

    res.json({
    validacao: resultado,
    comissao: valor_comissao,
    liberada: resultado.acao === 'LIBERAR_COMISSAO'
    });
    } catch (error) {
    res.status(500).json({ erro: 'Erro na validacao' });
    }
});

app.listen(3000);

Regras de decisão para comissões

Situação detectadaRiscoAção recomendada
CPF do comprador igual ao do afiliadoCríticoBloquear comissão e notificar compliance
Mesmo sobrenome e idades próximasAltoReter comissão para análise manual
Apenas mesmo sobrenomeMédioRevisar manualmente antes de liberar
Nenhuma relação detectadaBaixoLiberar comissão normalmente

Estratégias complementares

Período de quarentena

Não libere comissões imediatamente. Estabeleça um período de quarentena (por exemplo, 30 dias) para que devoluções e chargebacks possam ser processados antes do pagamento ao afiliado. Essa prática reduz o incentivo para compra-e-devolução.

Limite de comissões por CPF de comprador

Se o mesmo CPF de comprador aparece com frequência nos pedidos de um afiliado, isso indica uma base de compradores restrita ou artificial. Estabeleça limites de comissão por CPF único de comprador.

Monitoramento de taxa de devolução

Afiliados com taxas de devolução significativamente acima da média são candidatos a análise aprofundada. A auto-compra frequentemente resulta em devoluções após o recebimento da comissão.

Validação de CPF no cadastro do afiliado

Antes mesmo de ativar um afiliado, valide seu CPF via API:

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

Confirme que o nome retornado corresponde ao nome informado. Isso garante que a identidade do afiliado é real e facilita as verificações futuras contra auto-compra.


Métricas de monitoramento

Para medir a eficácia do sistema, acompanhe:

  • Taxa de bloqueio de comissões -- Percentual de comissões retidas ou bloqueadas.

  • Taxa de confirmação após revisão -- Quantas comissões retidas se mostraram legítimas após análise.

  • Economia mensal -- Valor total de comissões indevidas evitadas.

  • Taxa de devolução por afiliado -- Comparar com a média da plataforma.


Perguntas frequentes

Por que a validação de CPF é mais eficaz do que cookies ou fingerprint para detectar auto-compra?

Cookies e fingerprints são facilmente contornados com navegadores diferentes, VPNs ou dispositivos alternativos. O CPF é um identificador vinculado à identidade civil do afiliado e do comprador — impossível de falsificar sem documentação falsa. Cruzar os dados cadastrais retornados pela API (nome, sobrenome, data de nascimento) permite identificar relações familiares e identidades compartilhadas que nenhuma técnica baseada em sessão consegue detectar.

A API do CPFHub.io pode ser chamada em paralelo para os dois CPFs sem risco de bloqueio?

Sim. Como demonstrado no código com Promise.all(), as duas consultas rodam em paralelo sem problema. A API do CPFHub.io não bloqueia requisições ao atingir o limite do plano — ela cobra R$0,15 por consulta adicional. O plano gratuito oferece 50 consultas/mês para testes, e o plano Pro inclui 1.000 consultas mensais por R$149.

Quais campos da resposta da API são mais úteis para detecção de auto-compra?

Os campos nameUpper (nome em maiúsculas, ideal para comparações) e year (ano de nascimento, para inferir parentesco por faixa etária) são os mais relevantes. O campo name serve para exibição ao operador durante revisão manual. Combinando sobrenome extraído de nameUpper com a diferença de year entre afiliado e comprador, é possível sinalizar automaticamente possíveis relações familiares.

Como comunicar ao afiliado que a comissão foi retida sem revelar o método de detecção?

Informe que a comissão está em período de revisão conforme as políticas do programa, sem especificar que o cruzamento de CPF foi o gatilho. Preserve os dados de auditoria internamente — incluindo os resultados da consulta à API — para embasar eventual contestação. A ANPD orienta que o uso de dados pessoais para fins de prevenção à fraude deve constar na política de privacidade e nos termos do programa de afiliados.


Conclusão

A auto-compra fraudulenta em programas de afiliados é um problema que pode comprometer seriamente a rentabilidade de operações de marketing de performance. A validação de CPF permite identificar relações entre afiliados e compradores que seriam impossíveis de detectar apenas com dados de sessão ou cookies.

Cadastre-se em cpfhub.io — 50 consultas mensais gratuitas, sem cartão de crédito — e comece a cruzar CPFs de afiliados e compradores em cada transação para proteger as comissões que você realmente deve pagar.

CPFHub.io

Pronto para integrar a API?

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

Redação CPFHub.io

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.

WhatsAppFale conosco via WhatsApp