API de Consulta de crédito

As mesmas consultas de crédito do painel da CredPro, por CPF ou CNPJ, a preço de atacado: BACEN SCR com score, Serasa/SPC/SCPC, Boa Vista, QUOD, dados cadastrais, protestos (CENPROT), CADIN, cheques sem fundo, processos judiciais, renda presumida, situação do CPF na Receita, risco de empresa e as Análises de Crédito Completas (pessoa física e empresa). Resultado em JSON já organizado e em PDF.

📊
Consulta de créditoCobra a soma dos itens na criação. Item que volta com erro do birô é estornado automaticamente. Documento inválido, item incompatível e saldo insuficiente não cobram.
a partir de R$ 0,30por item — preço de atacado
GET/v1/credito/itens POST/v1/credito GET/v1/credito/{id} GET/v1/credito/{id}/pdf
Uso responsável. Consultas de crédito envolvem dados pessoais (LGPD). Consulte apenas com finalidade legítima (análise de crédito, prevenção à fraude) e consentimento ou base legal do consultado, e não repasse os dados a terceiros. O parceiro é o responsável pelo uso que faz das informações.

🧾 Catálogo e preços — GET /v1/credito/itens

Lista os itens disponíveis com o preço que será cobrado (atacado). Cada item diz o que aceita em documento (cpf, cnpj ou cpf_ou_cnpj) e se exige algo mais em campos_extras (hoje só cep, na renda presumida). Este endpoint é a fonte da verdade: o catálogo cresce e os preços podem mudar.

GET /v1/credito/itens
Authorization: Bearer SUA_CHAVE_AQUI

{
  "itens": [
    {"codigo": "ic_bacen", "nome": "Relatório BACEN — SCR e Score", "preco": 6.00, "documento": "cpf", "campos_extras": [], "inclui": null, "descricao": "..."},
    {"codigo": "cenprot", "nome": "Protestos Nacionais (CENPROT)", "preco": 0.70, "documento": "cpf_ou_cnpj", "campos_extras": [], "inclui": null, "descricao": "..."},
    {"codigo": "renda_presumida", "nome": "Renda presumida", "preco": 1.80, "documento": "cpf", "campos_extras": ["cep"], "inclui": null, "descricao": "..."},
    {"codigo": "analise_credito_completa", "nome": "Análise de Crédito Completa", "preco": 30.00, "documento": "cpf", "campos_extras": [],
     "inclui": ["cpf_receita", "credcadastral", "boavista", "ic_bacen", "serasa_premium", "quod", "renda_presumida", "cenprot", "cadin", "ccf", "processos"], "descricao": "..."}
  ],
  "saldo_reais": 132.48,
  "sandbox": false
}
CódigoO que trazAceitaPreço (atacado)
cpf_receitaSituação do CPF na Receita Federal, nome, nascimento, filiação, documentosCPFR$ 0,30
cenprotProtestos em cartórios de todo o país (CENPROT): quantidade, cartórios, títulosCPF ou CNPJR$ 0,70
cadinDívidas com órgãos federais (CADIN)CPF ou CNPJR$ 1,10
ccfCheques sem fundo (CCF BACEN): banco, agência, quantidade, motivoCPF ou CNPJR$ 1,10
credcadastralDados cadastrais + score + pendências (SCPC Basic)CPFR$ 1,80
renda_presumidaRenda estimada, poder de compra, patrimônio estimado, classe socialCPF + cepR$ 1,80
processosProcessos judiciais: ativos e arquivados, tribunal, classe, valor, partesCPF ou CNPJR$ 3,60
boavistaBoa Vista: score, pendências, protestos, participações em empresasCPF ou CNPJR$ 5,00
risco_cnpjRisco de empresa (Define Risco): score, pendências, protestos, cadastro da empresa, comportamento de pagamento em 12 meses, consultasCNPJR$ 5,00
ic_bacenRelatório BACEN SCR: score, operações por modalidade, vencido/a vencer/prejuízo, alertasCPFR$ 6,00
quodBirô QUOD: cadastro, pendências, protestos, alertas, contatos, veículos no nome, consultas recentesCPF ou CNPJR$ 6,00
serasa_premiumSerasa + SPC + SCPC (Pefin): score, pendências, protestos, alertas, participaçõesCPFR$ 6,50
analise_credito_empresaBundle: risco_cnpj + cadin + ccf + processosCNPJR$ 14,00
analise_credito_completaBundle com 11 itens (veja inclui): tudo o que existe para pessoa física num pedido sóCPFR$ 30,00
Preços. A tabela acima é a de 17/09/2026; o valor vigente é sempre o de GET /v1/credito/itens. Consultas são cobradas do mesmo saldo em reais das outras APIs.

🚀 Criar consulta — POST /v1/credito

Um documento, um ou mais itens. A soma dos itens é debitada na hora e a consulta entra em processamento (202): os birôs respondem em segundos, alguns em até ~2 minutos. Acompanhe em GET /v1/credito/{id}.

POST /v1/credito
Authorization: Bearer SUA_CHAVE_AQUI
Content-Type: application/json

{
  "documento": "123.456.789-01",
  "itens": ["serasa_premium", "ic_bacen", "cenprot"]
}

HTTP 202
{
  "consulta_id": 2210,
  "status": "processando",
  "documento": "12345678901",
  "itens": ["serasa_premium", "ic_bacen", "cenprot"],
  "valor_cobrado": 13.20,
  "saldo_reais": 119.28,
  "consulte_em": "/v1/credito/2210",
  "sandbox": false
}
CampoTipoObrigatórioObservação
documentostringsimCPF (11 dígitos) ou CNPJ (14), com ou sem pontuação. Cada item aceita CPF, CNPJ ou os dois — veja documento no catálogo.
itenslista de códigossimCódigos de GET /v1/credito/itens. Repetidos são ignorados.
cepstringse o item exigir8 dígitos, para renda_presumida. Pode ser omitido quando um birô do mesmo pedido (serasa_premium, credcadastral, quod, boavista ou a Análise Completa) traz o endereço.
SituaçãoHTTPCobra?
Consulta criada e em processamento202✅ soma dos itens
Item respondeu com erro do birô (fora do ar, documento sem base)— (aparece em resultados[].erro)↩️ estornado no fim do processamento (bundle só se nenhum sub-item respondeu)
Documento inválido / item desconhecido / item só CPF com CNPJ (ou vice-versa) / CEP faltando422 documento_invalido, item_invalido, documento_incompativel, cep_obrigatorio❌ Não
Saldo insuficiente402 saldo_insuficiente (traz necessario)❌ Não
Limite por minuto atingido429 limite_taxa❌ Não

📬 Consultar resultado — GET /v1/credito/{id}

Faça polling a cada 3–5 s até status virar concluido. Diferente das pesquisas veiculares, aqui dados vem normalizado: os birôs (Serasa, SCPC, QUOD, Boa Vista, Define Risco) usam o mesmo formato entre si, então você escreve um render só. Quando um item não responde, erro vem preenchido e o valor dele já foi estornado.

GET /v1/credito/2210
Authorization: Bearer SUA_CHAVE_AQUI

{
  "consulta_id": 2210,
  "status": "concluido",
  "documento": "12345678901",
  "itens": ["serasa_premium", "ic_bacen", "cenprot"],
  "valor_cobrado": 13.20,
  "criado_em": "2026-09-17 19:02:11",
  "resultados": [
    {"item": "serasa_premium", "erro": null, "dados": {
      "identificacao": {"nome": "FULANO DE TAL", "cpf": "12345678901", "situacao_cpf": "REGULAR", "nascimento": "15/08/1985", "cidade": "SAO PAULO", "uf": "SP", "cep": "01310100", "...": "..."},
      "score": {"valor": "310", "classificacao": "E", "probabilidade": "38.5", "texto": "ALTO RISCO", "tipo": "SCORE PF"},
      "painel": [{"ocorrencia": "Pendências Financeiras", "total": 2, "valor": "R$ 2.263,30"}, {"ocorrencia": "Protestos", "total": 1, "valor": "R$ 1.250,00"}],
      "debitos": {"total": 2, "valor_total": 2263.3, "lista": [{"data": "12/03/2026", "informante": "BANCO X", "valor": 1850.4, "contrato": "0001234567", "origem": "FINANCIAMENTO"}]},
      "protestos": {"total": 1, "valor_total": 1250.0, "lista": [{"data": "20/01/2026", "valor": 1250.0, "cartorio": "1º TABELIONATO", "cidade": "SAO PAULO", "uf": "SP"}]},
      "empresas": [], "alertas": [], "contatos": {"telefones": [], "enderecos": [], "emails": []}, "veiculos": [], "consultas_recentes": [], "perfil": {},
      "fonte_nome": "Serasa + SPC + SCPC (Pefin)"}},
    {"item": "ic_bacen", "erro": null, "dados": {"score": {"pontuacao": "280", "faixa": "ALTO RISCO"}, "resumo": {"qtd_operacoes": "2", "qtd_instituicoes": "2", "...": "..."},
      "consolidado": {"credito_avencer": "18.200,00", "credito_vencido": "1.900,00", "prejuizo": "0,00", "limite_credito": "3.000,00", "...": "..."},
      "operacoes": [{"modalidade": "FINANCIAMENTOS", "sub_modalidade": "AQUISICAO DE BENS - VEICULOS AUTOMOTORES", "total": "7.600,00", "vencimentos": [{"descricao": "VENCIDO DE 31 A 60 DIAS", "valor": "1.900,00", "restritivo": true}]}],
      "alertas": {"quantidade": "1", "ocorrencias": [{"TITULO": "OPERACAO VENCIDA"}]}}},
    {"item": "cenprot", "erro": null, "dados": {"qtd_titulos": 1, "status": "com_protesto", "titulos": [{"nome": "1º TABELIONATO DE PROTESTO", "cidade": "SAO PAULO", "uf": "SP", "qtdTitulos": 1}]}}
  ],
  "pdf": "/v1/credito/2210/pdf",
  "sandbox": false
}
Onde olhar em cada item. Birôs (serasa_premium, credcadastral, quod, boavista, risco_cnpj): score.valor (pode vir vazio quando o birô não pontua), painel[] (resumo por tipo de ocorrência), debitos.lista[], protestos.lista[], empresas[]. O risco_cnpj acrescenta empresa, consultas e comportamento. BACEN: score.pontuacao/faixa, consolidado.credito_vencido e prejuizo, operacoes[].vencimentos[].restritivo. CENPROT: status (com_protesto | sem_protesto) e qtd_titulos. CADIN e CCF: quantidade e ocorrencias[]. Processos: ativos, acoes[] (com status, valor, partes[]) e arquivadas[]. CPF na Receita: situacao (REGULAR, SUSPENSA, CANCELADA…). Renda presumida: renda_estimada, poder_de_compra, classe_social. Todo item traz fonte_nome com o nome do birô para exibição.

📄 PDF — GET /v1/credito/{id}/pdf

Depois de concluido, devolve o mesmo relatório em PDF que o lojista baixa no painel: cabeçalho, quadro de avisos (uma linha por item, verde/vermelho) e uma seção por birô — velocímetro de score, painel de ocorrências, tabelas de pendências e protestos, relatório SCR. Sem cobrança extra. Resposta é o arquivo (application/pdf).

🧪 Sandbox

Com a chave de teste (cpk_test_…) os mesmos endpoints devolvem resultados fictícios no mesmo formato, sem cobrar e sem chegar nos birôs. Regra: documento terminado em 9 devolve um consultado "com restrições" (score 310, 2 pendências, protesto, CADIN, cheque sem fundo, processo ativo, operação vencida no BACEN); qualquer outro devolve tudo limpo. Use CNPJ para os itens de empresa. Regras gerais do sandbox →

💻 Exemplos de código

cURL
Python
Node.js
curl -X POST https://cred-pro.com/v1/credito \
  -H "Authorization: Bearer SUA_CHAVE_AQUI" \
  -H "Content-Type: application/json" \
  -d '{"documento": "12345678901", "itens": ["serasa_premium", "ic_bacen", "cenprot"]}'

# depois, até status = concluido:
curl https://cred-pro.com/v1/credito/2210 -H "Authorization: Bearer SUA_CHAVE_AQUI"

# PDF:
curl -o credito.pdf https://cred-pro.com/v1/credito/2210/pdf -H "Authorization: Bearer SUA_CHAVE_AQUI"
import requests, time

CHAVE = "SUA_CHAVE_AQUI"
H = {"Authorization": f"Bearer {CHAVE}"}

r = requests.post("https://cred-pro.com/v1/credito", headers=H, timeout=30,
                  json={"documento": "12345678901", "itens": ["serasa_premium", "ic_bacen", "cenprot"]})
if r.status_code != 202:
    raise SystemExit(f"erro {r.status_code}: {r.json()['detail']['erro']}")
cid = r.json()["consulta_id"]
print("cobrado:", r.json()["valor_cobrado"])

while True:
    p = requests.get(f"https://cred-pro.com/v1/credito/{cid}", headers=H, timeout=30).json()
    if p["status"] in ("concluido", "erro"):
        break
    time.sleep(4)

for res in p["resultados"]:
    print(res["item"], "erro:" if res["erro"] else "ok", res["erro"] or "")
serasa = next(x for x in p["resultados"] if x["item"] == "serasa_premium")["dados"]
print("score:", serasa["score"]["valor"], "| pendências:", serasa["debitos"]["total"], "| protestos:", serasa["protestos"]["total"])

pdf = requests.get(f"https://cred-pro.com/v1/credito/{cid}/pdf", headers=H, timeout=60)
open(f"credito_{cid}.pdf", "wb").write(pdf.content)
const CHAVE = "SUA_CHAVE_AQUI";
const H = { Authorization: `Bearer ${CHAVE}`, "Content-Type": "application/json" };

const r = await fetch("https://cred-pro.com/v1/credito", {
  method: "POST", headers: H,
  body: JSON.stringify({ documento: "12345678901", itens: ["serasa_premium", "ic_bacen", "cenprot"] }),
});
const criado = await r.json();
if (r.status !== 202) throw new Error(JSON.stringify(criado.detail.erro));

let p;
do {
  await new Promise(s => setTimeout(s, 4000));
  p = await (await fetch(`https://cred-pro.com/v1/credito/${criado.consulta_id}`, { headers: H })).json();
} while (!["concluido", "erro"].includes(p.status));

for (const res of p.resultados) console.log(res.item, res.erro ? `erro: ${res.erro}` : "ok");
const serasa = p.resultados.find(x => x.item === "serasa_premium").dados;
console.log("score:", serasa.score.valor, "| pendências:", serasa.debitos.total, "| protestos:", serasa.protestos.total);
Combinando. Cheque o cliente aqui, o carro nas pesquisas veiculares e feche com a simulação bancária — o fluxo completo de uma loja, na sua plataforma.