Consulta em Tempo Real
Consulta o CPF na Receita Federal no momento da chamada e retorna nome, situação cadastral, código de controle e um comprovante da consulta.
Esta rota é independente da consulta simples (GET /cpf/{cpf}), que responde a partir da base da CPFHub.io. A consulta em tempo real sempre consulta a Receita Federal. As duas usam a mesma API Key.
Endpoint
https://api.cpfhub.io/cpf/realtimeAutenticação
Envie sua API Key no header x-api-key, a mesma da consulta simples. Não é preciso criar outra conta, outra chave ou outro plano. Veja Autenticação.
Sem o header, ou com uma chave inválida ou inativa, a API responde 401 com error como string:
{
"success": false,
"error": "API Key não fornecida"
}Parâmetros
Headers
| Header | Obrigatório | Descrição |
|---|---|---|
x-api-key | Sim | Sua API Key do CPFHub.io |
Content-Type | Sim | application/json |
Body
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
cpf | string | Sim | CPF com ou sem formatação. Aceita 12345678909 ou 123.456.789-09. |
birthDate | string | Sim | Data de nascimento do titular, no formato DD/MM/AAAA ou DDMMAAAA. Ano entre 1900 e o ano atual. |
Exemplos de requisição
curl -X POST "https://api.cpfhub.io/cpf/realtime" \
-H "x-api-key: SUA_API_KEY" \
-H "content-type: application/json" \
-d '{
"cpf": "12345678909",
"birthDate": "15/06/1990"
}'Resposta de sucesso
HTTP 200 OK
{
"success": true,
"data": {
"cpf": "12345678909",
"name": "FULANO DE TAL",
"birthDate": "15/06/1990",
"situation": "REGULAR",
"emissionDate": "02/10/2026",
"emissionTime": "14:15:16",
"controlCode": "ABCD.1234.EFGH.5678",
"validationUrl": "https://servicos.receita.fazenda.gov.br/Servicos/CPF/ca/ResultadoAut.asp?cp=12345678909&cc=ABCD1234EFGH5678&de=02102026&he=141516&dv=09&em=01",
"validationHtmlUrl": "https://api.cpfhub.io/cpf/proof/12345678909/1790950516000"
}
}Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
success | boolean | true se a consulta foi bem-sucedida |
data.cpf | string | CPF consultado: 11 dígitos, sem máscara |
data.name | string | Nome do titular como consta na Receita Federal, em maiúsculas |
data.birthDate | string | Data de nascimento no formato DD/MM/AAAA |
data.situation | string | Situação cadastral como a Receita Federal informa. Veja a tabela abaixo. |
data.emissionDate | string | Data de emissão do comprovante na Receita Federal (DD/MM/AAAA). Opcional. |
data.emissionTime | string | Hora de emissão do comprovante (HH:MM:SS). Opcional. |
data.controlCode | string | Código de controle do comprovante, em geral no formato XXXX.XXXX.XXXX.XXXX. Opcional. |
data.validationUrl | string | Link de conferência no site da Receita Federal: o mesmo destino do QR code do comprovante. Prova a autenticidade sem depender da CPFHub.io. Opcional. |
data.validationHtmlUrl | string | Comprovante da consulta guardado pela CPFHub.io (página HTML), com QR code que leva ao validationUrl. Fica disponível para arquivo e auditoria. Opcional. |
Os campos marcados como opcionais podem não aparecer na resposta: emissionDate, emissionTime, controlCode e validationUrl dependem do que a Receita Federal devolve, e validationHtmlUrl depende da geração do comprovante. Trate a ausência deles no seu código.
Situação cadastral
O campo situation traz a situação cadastral como a Receita Federal informa, em maiúsculas. Só REGULAR indica CPF sem pendências.
| Situação | Significado |
|---|---|
REGULAR | CPF em ordem, sem pendências |
PENDENTE DE REGULARIZAÇÃO | Falta entregar declaração ou atualizar o cadastro |
SUSPENSA | Cadastro incorreto ou incompleto |
CANCELADA | Inscrição encerrada por decisão administrativa ou judicial, ou por multiplicidade |
NULA | Inscrição anulada por fraude |
TITULAR FALECIDO | Óbito registrado no cadastro |
Data de nascimento divergente
Se a data de nascimento não bate com o cadastro, ou se a Receita Federal recusa a consulta por outro motivo, a API responde 422 com a mensagem da própria Receita e não consome crédito:
{
"success": false,
"data": null,
"error": {
"message": "Data de nascimento informada está divergente da constante na base de dados da Secretaria da Receita Federal do Brasil."
}
}Créditos
Cada consulta em tempo real bem-sucedida consome 1,5 crédito do seu plano. Alguns planos têm custo próprio: o saldo e o custo aparecem no dashboard e em GET /quota.
Só há cobrança quando a Receita Federal responde e a resposta é interpretada. Data divergente (422), Receita fora do ar (502) e indisponibilidade temporária (503) não consomem crédito.
Quando o saldo não cobre o custo da consulta, em planos sem cobrança de excedente (overage), a API responde 403 com error como string, igual à consulta simples:
{
"success": false,
"error": "Limite de créditos excedido"
}Latência
A resposta depende da Receita Federal, então leva segundos, não milissegundos. Use um timeout de pelo menos 60 segundos no seu cliente HTTP. Se o seu fluxo não pode esperar, faça a chamada de forma assíncrona ou use a consulta simples no caminho crítico.
Erros temporários
Respostas 502 e 503 indicam falha passageira na consulta à Receita Federal. Não consomem crédito e podem ser repetidas depois de alguns segundos. Exemplo:
{
"success": false,
"data": null,
"error": {
"message": "Falha ao consultar a Receita Federal."
}
}Códigos de status
| Status | Descrição |
|---|---|
200 OK | Consulta feita na Receita Federal (veja situation) |
400 Bad Request | CPF sem 11 dígitos, ou data de nascimento ausente ou em formato inválido |
401 Unauthorized | API Key ausente, inválida ou inativa |
403 Forbidden | Créditos insuficientes sem overage ("Limite de créditos excedido"), ou conta inativa ou bloqueada |
422 Unprocessable Entity | Dígito verificador inválido, ou a Receita Federal recusou a consulta (por exemplo, data de nascimento divergente) |
502 Bad Gateway | Falha ao consultar a Receita Federal ou ao interpretar a resposta. Tente novamente. |
503 Service Unavailable | Consulta temporariamente indisponível. Tente novamente em instantes. |
Mensagens de 502 e 503:
| Status | error.message |
|---|---|
502 | Falha ao consultar a Receita Federal. |
502 | Falha ao interpretar a resposta da Receita Federal. |
503 | Falha ao registrar validação |
Outras mensagens de indisponibilidade passageira podem aparecer em 502 e 503. Trate pelo status HTTP e repita a consulta após alguns segundos.
Mensagens de 400 e 422 de validação:
| Status | error.message |
|---|---|
400 | CPF inválido. Deve conter 11 dígitos. |
400 | Data de nascimento inválida. Use o formato DD/MM/YYYY ou DDMMYYYY |
422 | CPF inválido. Dígito verificador incorreto. |
Quando usar cada consulta
| Consulta simples | Consulta em tempo real | |
|---|---|---|
| Endpoint | GET /cpf/{cpf} | POST /cpf/realtime |
| Você envia | Só o CPF | CPF e data de nascimento |
| Fonte | Base da CPFHub.io | Receita Federal, na hora |
| Latência | Milissegundos | Segundos |
| Gênero | Sim | Não |
| Situação cadastral | Não | Sim |
| Comprovante | Não | Sim |
| Custo por consulta | 1 crédito | 1,5 crédito |
| Lote | Sim (POST /cpf/bulk) | Não |
| Indicada para | Cadastro, checkout, verificação de idade | Admissão, locação, crédito, contrato, auditoria |
Atualizado em 2 de outubro de 2026