API de CPF para verificação de dados em processos de crédito consignado

Aprenda a usar uma API de consulta de CPF para verificar dados cadastrais em processos de crédito consignado e reduzir fraudes.

Redação CPFHub.io
Redação CPFHub.io
··7 min de leitura
API de CPF para verificação de dados em processos de crédito consignado

A API de CPF da CPFHub.io permite verificar, em tempo real, se o nome e a data de nascimento informados pelo solicitante correspondem aos dados associados ao CPF consultado. Em processos de crédito consignado, essa verificação é a primeira barreira contra fraudes com documentos roubados ou dados falsos. A integração leva menos de 30 minutos e não exige cartão de crédito para começar.

Introdução

O crédito consignado e uma das modalidades de emprestimo mais populares no Brasil, com desconto direto na folha de pagamento ou beneficio do INSS. Justamente por oferecer taxas mais baixas e aprovacao facilitada, e também um alvo frequente de fraudes -- especialmente com uso de dados cadastrais falsos ou roubados.


O problema da fraude no consignado

Fraudes em crédito consignado incluem:

  • CPF de terceiros -- Uso de documentos roubados para solicitar emprestimos.

  • Dados falsos -- Nome ou data de nascimento alterados para burlar verificações.

  • Beneficiarios fantasma -- CPFs que não correspondem a pessoas reais.

  • Falsificacao de vinculo -- Simular vinculo empregaticio ou previdenciario.

A primeira linha de defesa e verificar se os dados informados pelo solicitante correspondem aos dados reais associados ao CPF.


Pontos de verificação no fluxo de consignado

EtapaVerificação via API
Solicitação do emprestimoValidar CPF e confirmar nome
Análise de créditoConfirmar data de nascimento e genero
Formalizacao do contratoRevalidar dados antes da assinatura
Averbacao na folhaConfirmar CPF do beneficiario

Implementação: verificação na solicitação

import requests
from datetime import datetime

class VerificadorConsignado:
    def __init__(self, api_key):
    self.session = requests.Session()
    self.session.headers.update({
    'x-api-key': api_key,
    'Accept': 'application/json'
    })

    def verificar_solicitante(self, cpf, nome_informado, nascimento_informado):
    """
    Verifica os dados do solicitante contra a API.
    nascimento_informado: formato 'DD/MM/YYYY'
    """
    url = f'https://api.cpfhub.io/cpf/{cpf}'
    response = self.session.get(url, timeout=15)

    if response.status_code != 200:
    return {
    'aprovado': False,
    'motivo': f'Erro na consulta: HTTP {response.status_code}',
    'score_confianca': 0
    }

    data = response.json()

    if not data.get('success'):
    return {
    'aprovado': False,
    'motivo': 'CPF nao encontrado',
    'score_confianca': 0
    }

    pessoa = data['data']
    verificacoes = []
    pontos = 0

    # Verificacao 1: Nome
    nome_match = self._comparar_nomes(pessoa['name'], nome_informado)
    verificacoes.append({
    'campo': 'nome',
    'informado': nome_informado,
    'encontrado': pessoa['name'],
    'match': nome_match
    })
    if nome_match:
    pontos += 40

    # Verificacao 2: Data de nascimento
    nascimento_match = pessoa['birthDate'] == nascimento_informado
    verificacoes.append({
    'campo': 'nascimento',
    'informado': nascimento_informado,
    'encontrado': pessoa['birthDate'],
    'match': nascimento_match
    })
    if nascimento_match:
    pontos += 40

    # Verificacao 3: CPF valido e consultavel
    pontos += 20

    score = pontos
    aprovado = score >= 80

    return {
    'aprovado': aprovado,
    'score_confianca': score,
    'verificacoes': verificacoes,
    'dados_api': {
    'nome': pessoa['name'],
    'genero': pessoa['gender'],
    'nascimento': pessoa['birthDate']
    },
    'motivo': 'aprovado' if aprovado else 'dados_divergentes'
    }

    def _comparar_nomes(self, nome1, nome2):
    palavras1 = set(nome1.upper().split())
    palavras2 = set(nome2.upper().split())
    if not palavras1 or not palavras2:
    return False
    intersecao = palavras1 & palavras2
    return len(intersecao) / max(len(palavras1), len(palavras2)) >= 0.75

# Uso
verificador = VerificadorConsignado('SUA_CHAVE_DE_API')
resultado = verificador.verificar_solicitante(
    cpf='12345678900',
    nome_informado='Joao da Silva',
    nascimento_informado='15/06/1990'
)
print(resultado)

Fluxo completo de verificação

def processar_solicitacao_consignado(verificador, solicitacao):
    # Etapa 1: Verificar dados do solicitante
    verificacao = verificador.verificar_solicitante(
    cpf=solicitacao['cpf'],
    nome_informado=solicitacao['nome'],
    nascimento_informado=solicitacao['nascimento']
    )

    if not verificacao['aprovado']:
    return {
    'status': 'rejeitado',
    'etapa': 'verificacao_cadastral',
    'motivo': verificacao['motivo'],
    'score': verificacao['score_confianca']
    }

    # Etapa 2: Verificar idade minima (normalmente 18+)
    dados = verificacao['dados_api']
    # Extrair ano da data de nascimento
    partes = dados['nascimento'].split('/')
    ano_nascimento = int(partes[2])
    idade = datetime.now().year - ano_nascimento

    if idade < 18:
    return {
    'status': 'rejeitado',
    'etapa': 'verificacao_idade',
    'motivo': 'solicitante_menor_de_idade'
    }

    # Etapa 3: Aprovado para analise de credito
    return {
    'status': 'aprovado_para_analise',
    'score_cadastral': verificacao['score_confianca'],
    'dados_validados': verificacao['dados_api'],
    'proximo_passo': 'analise_credito'
    }

Verificação em lote de beneficiarios INSS

Instituições que processam consignado para beneficiarios do INSS podem validar a base periodicamente:

import csv
import time

def validar_base_beneficiarios(verificador, arquivo):
    resultados = {
    'total': 0,
    'validos': 0,
    'divergentes': 0,
    'nao_encontrados': 0,
    'erros': 0
    }

    with open(arquivo, 'r') as f:
    reader = csv.DictReader(f)
    for row in reader:
    resultado = verificador.verificar_solicitante(
    cpf=row['cpf'],
    nome_informado=row['nome'],
    nascimento_informado=row['nascimento']
    )

    resultados['total'] += 1

    if resultado['aprovado']:
    resultados['validos'] += 1
    elif resultado['motivo'] == 'CPF nao encontrado':
    resultados['nao_encontrados'] += 1
    elif resultado['motivo'] == 'dados_divergentes':
    resultados['divergentes'] += 1
    else:
    resultados['erros'] += 1

    time.sleep(2) # respeitar rate limit

    return resultados

Integração com sistema de originacao

Em um sistema de originacao de crédito consignado, a verificação via API pode ser integrada como um step do pipeline:

async function pipelineConsignado(solicitacao) {
    const etapas = [
    { nome: 'verificacao_cpf', fn: verificarCPF },
    { nome: 'analise_margem', fn: analisarMargem },
    { nome: 'score_credito', fn: calcularScore },
    { nome: 'aprovacao', fn: aprovar }
    ];

    let contexto = { solicitacao };

    for (const etapa of etapas) {
    const resultado = await etapa.fn(contexto);

    if (resultado.status === 'rejeitado') {
    return { aprovado: false, etapa_rejeicao: etapa.nome, ...resultado };
    }

    contexto = { ...contexto, [etapa.nome]: resultado };
    }

    return { aprovado: true, contexto };
}

async function verificarCPF(ctx) {
    const { cpf, nome } = ctx.solicitacao;

    const response = await fetch(`https://api.cpfhub.io/cpf/${cpf}`, {
    method: 'GET',
    headers: {
    'x-api-key': process.env.CPFHUB_API_KEY,
    'Accept': 'application/json'
    },
    signal: AbortSignal.timeout(15000)
    });

    const data = await response.json();

    if (!data.success) {
    return { status: 'rejeitado', motivo: 'cpf_nao_encontrado' };
    }

    // Comparar nome
    const nomeAPI = data.data.name.toUpperCase();
    const nomeInformado = nome.toUpperCase();

    if (!nomeAPI.includes(nomeInformado.split(' ')[0])) {
    return { status: 'rejeitado', motivo: 'nome_divergente' };
    }

    return { status: 'aprovado', dados: data.data };
}

Conformidade regulatória

O Banco Central e o INSS exigem verificação de identidade em operações de crédito consignado. A validação via API contribui para:

  • Resolucao CMN 4.893 -- Exige procedimentos de KYC para operações de crédito.

  • IN INSS 138 -- Regulamenta a consignacao em beneficios previdenciarios.

  • LGPD -- Tratamento de dados pessoais com base legal de obrigação regulatória.


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


Conclusão

A verificação de dados via API de CPF e uma etapa fundamental no processo de crédito consignado. Ao validar nome, data de nascimento e existencia do CPF antes de aprovar a operação, você reduz fraudes, fortalece o compliance e protege tanto a instituicao quanto o beneficiario.

Cadastre-se em cpfhub.io — 50 consultas mensais gratuitas, sem cartão de crédito — e comece hoje mesmo.

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