CPFHub.io

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

POSThttps://api.cpfhub.io/cpf/realtime

Autenticaçã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:

JSON
{
  "success": false,
  "error": "API Key não fornecida"
}

Parâmetros

Headers

HeaderObrigatórioDescrição
x-api-keySimSua API Key do CPFHub.io
Content-TypeSimapplication/json

Body

CampoTipoObrigatórioDescrição
cpfstringSimCPF com ou sem formatação. Aceita 12345678909 ou 123.456.789-09.
birthDatestringSimData 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

JSON
{
  "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

CampoTipoDescrição
successbooleantrue se a consulta foi bem-sucedida
data.cpfstringCPF consultado: 11 dígitos, sem máscara
data.namestringNome do titular como consta na Receita Federal, em maiúsculas
data.birthDatestringData de nascimento no formato DD/MM/AAAA
data.situationstringSituação cadastral como a Receita Federal informa. Veja a tabela abaixo.
data.emissionDatestringData de emissão do comprovante na Receita Federal (DD/MM/AAAA). Opcional.
data.emissionTimestringHora de emissão do comprovante (HH:MM:SS). Opcional.
data.controlCodestringCódigo de controle do comprovante, em geral no formato XXXX.XXXX.XXXX.XXXX. Opcional.
data.validationUrlstringLink 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.validationHtmlUrlstringComprovante 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çãoSignificado
REGULARCPF em ordem, sem pendências
PENDENTE DE REGULARIZAÇÃOFalta entregar declaração ou atualizar o cadastro
SUSPENSACadastro incorreto ou incompleto
CANCELADAInscrição encerrada por decisão administrativa ou judicial, ou por multiplicidade
NULAInscriçã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:

JSON
{
  "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:

JSON
{
  "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:

JSON
{
  "success": false,
  "data": null,
  "error": {
    "message": "Falha ao consultar a Receita Federal."
  }
}

Códigos de status

StatusDescrição
200 OKConsulta feita na Receita Federal (veja situation)
400 Bad RequestCPF sem 11 dígitos, ou data de nascimento ausente ou em formato inválido
401 UnauthorizedAPI Key ausente, inválida ou inativa
403 ForbiddenCréditos insuficientes sem overage ("Limite de créditos excedido"), ou conta inativa ou bloqueada
422 Unprocessable EntityDígito verificador inválido, ou a Receita Federal recusou a consulta (por exemplo, data de nascimento divergente)
502 Bad GatewayFalha ao consultar a Receita Federal ou ao interpretar a resposta. Tente novamente.
503 Service UnavailableConsulta temporariamente indisponível. Tente novamente em instantes.

Mensagens de 502 e 503:

Statuserror.message
502Falha ao consultar a Receita Federal.
502Falha ao interpretar a resposta da Receita Federal.
503Falha 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:

Statuserror.message
400CPF inválido. Deve conter 11 dígitos.
400Data de nascimento inválida. Use o formato DD/MM/YYYY ou DDMMYYYY
422CPF inválido. Dígito verificador incorreto.

Quando usar cada consulta

Consulta simplesConsulta em tempo real
EndpointGET /cpf/{cpf}POST /cpf/realtime
Você enviaSó o CPFCPF e data de nascimento
FonteBase da CPFHub.ioReceita Federal, na hora
LatênciaMilissegundosSegundos
GêneroSimNão
Situação cadastralNãoSim
ComprovanteNãoSim
Custo por consulta1 crédito1,5 crédito
LoteSim (POST /cpf/bulk)Não
Indicada paraCadastro, checkout, verificação de idadeAdmissão, locação, crédito, contrato, auditoria

Atualizado em 2 de outubro de 2026