Sobre esta API
Dados cadastrais de uma pessoa física a partir do CPF: nome, nome social, data de nascimento, gênero e a situação do CPF na Receita Federal, com data de inscrição e ano de óbito quando houver.
Envie um JSON com cpf, com ou sem pontuação, e, se tiver, birth_date (AAAA-MM-DD): ela é conferida em data_nascimento_confere e amplia a cobertura da consulta. Campo que o cadastro não informa volta null.
CPF sem cadastro na Receita volta com found: false e é cobrado: a consulta foi feita. Sem birth_date, CPF que só pode ser conferido com ela volta 400 (birth_date_required), e CPF com dígito verificador inválido, 422: nenhum dos dois é cobrado.
Cadastro de Pessoas Físicas (CPF) · Atualização: tempo real
Requisição
POST /api/v1/cpf/lookupAutenticação HTTP Basic: public_key:secret_key em Base64. Guarde a chave secreta no servidor.
| Cabeçalho | Descrição |
|---|---|
AuthorizationObrigatório | Chave de API em Basic: public_key:secret_key em Base64. |
X-Project-IdOpcional | Projeto que recebe a chamada. Sem ele, vale o projeto padrão da conta. |
Idempotency-KeyOpcional | Repetir a mesma chave em até 24 horas devolve a resposta anterior, sem executar nem cobrar de novo. |
Parâmetros
| Campo | Tipo e local | Descrição |
|---|---|---|
cpfObrigatório | stringbody | Com ou sem pontuação. O dígito verificador é conferido antes da consulta. Exemplo: |
birth_dateOpcional | stringbody | Data de nascimento no formato AAAA-MM-DD.Exemplo: |
curl --request POST 'https://api.apifordevs.com/api/v1/cpf/lookup' \
--user "afd_live_pk_...:$AFD_SECRET_KEY" \
--header "X-Project-Id: $AFD_PROJECT_ID" \
--header 'Content-Type: application/json' \
--data '{"cpf":"52998224725","birth_date":"1990-03-15"}'
import os
import requests
response = requests.request(
"POST",
"https://api.apifordevs.com/api/v1/cpf/lookup",
auth=("afd_live_pk_...", os.environ["AFD_SECRET_KEY"]),
headers={"X-Project-Id": os.environ["AFD_PROJECT_ID"]},
json={"cpf": "52998224725", "birth_date": "1990-03-15"},
timeout=30,
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://api.apifordevs.com/api/v1/cpf/lookup", {
method: "POST",
headers: {
Authorization: "Basic " + Buffer.from(
"afd_live_pk_...:" + process.env.AFD_SECRET_KEY
).toString("base64"),
"X-Project-Id": process.env.AFD_PROJECT_ID,
"Content-Type": "application/json",
},
body: JSON.stringify({"cpf":"52998224725","birth_date":"1990-03-15"}),
signal: AbortSignal.timeout(30000),
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
console.log(await response.json());
Campos de resposta
Campos e tipos publicados no catálogo desta API.
- Encontrado
foundboolean - CPF
cpfstring - Nome
nomestring - Nome social
nome_socialstring - Data de nascimento
data_nascimentostring - Gênero
generostring MouF, quando informado.- Situação cadastral
situacao_cadastralstring - Situação do CPF na Receita Federal, quando informada:
REGULAR,SUSPENSA,PENDENTE DE REGULARIZAÇÃO,TITULAR FALECIDO,CANCELADA POR MULTIPLICIDADE,CANCELADA DE OFÍCIOouNULA. - Data de inscrição
data_inscricaostring - Ano de óbito
ano_obitointeger - Data de nascimento confere
data_nascimento_confereboolean - Se a
birth_dateenviada confere com o cadastro. Nulo quando ela não é enviada.
Exemplo de resposta
{
"success": true,
"code": 200,
"code_message": "A requisição foi processada com sucesso.",
"errors": [],
"header": null,
"data_count": 1,
"data": [
{
"found": true,
"cpf": "52998224725",
"nome": "MARIA DA SILVA SANTOS",
"nome_social": null,
"data_nascimento": "1990-03-15",
"genero": "F",
"situacao_cadastral": "REGULAR",
"data_inscricao": "2008-06-10",
"ano_obito": null,
"data_nascimento_confere": true
}
]
}
Respostas e cobrança
| HTTP | Descrição | Cobrança |
|---|---|---|
200 | Sucesso. CPF sem cadastro na Receita também é 200, com found: false, e é cobrado. | Sujeita à cobrança |
400
| O CPF só pode ser conferido com a data de nascimento: envie birth_date. Não é cobrada. | Sem cobrança |
401
| Credencial ausente, inválida ou revogada. | Sem cobrança |
402
| Saldo insuficiente ou limite de gasto diário atingido. | Sem cobrança |
403
| E-mail da conta não verificado, chave sem escopo para o serviço, IP fora da allowlist do projeto ou chave de teste sem dev_mode=true. | Sem cobrança |
409
| Requisição com a mesma Idempotency-Key ainda em andamento. | Sem cobrança |
422
| CPF com dígito verificador inválido ou data de nascimento fora do formato. Não é cobrada. | Sem cobrança |
429
| Limite de requisições por minuto da chave atingido. | Sem cobrança |
500
| Falha interna. | Sem cobrança |
503
| Serviço desativado (service_unavailable), ou a consulta do CPF não respondeu a tempo (upstream_error). Não é cobrada; com upstream_error, pode ser repetida. | Sem cobrança |
Casos de uso
Onboarding e KYC
Conferir o nome e a data de nascimento informados contra o CPF antes de abrir a conta, sem pedir documento a mais.
Antifraude em crédito
Barrar CPF suspenso, cancelado ou de titular falecido antes de aprovar crédito, financiamento ou parcelamento.
Preenchimento de cadastro
Completar o nome a partir do CPF digitado, sem o usuário redigitar.
Notas de integração
- O CPF vai no corpo, nunca na URL: é dado pessoal e não deve ficar em log de acesso.
- Consulte CPF de terceiros só com finalidade e base legal, como pede a LGPD.