Debitado do seu saldo a cada chamada cobrada. Autenticação pelo header X-API-Key. Veja como obter a chave.
Consulta o andamento do pedido de restituição do Imposto de Renda Pessoa Física direto no portal oficial da Receita Federal, e devolve o resultado do processamento da declaração — a restituir, a pagar ou sem declaração no exercício. Quando há restituição liberada, traz o lote, a data de disponibilidade e o banco/agência do crédito.
Você não precisa saber a data de nascimento do contribuinte. Informe apenas o CPF: a data exigida pela Receita é resolvida automaticamente a partir dele.
CPF do contribuinte (11 dígitos). Aceita com ou sem pontuação; o dígito verificador é conferido.
000.000.000-00
exercicioopcional
texto
Ano-exercício da declaração, com 4 dígitos (ex.: '2025'). Sem ele, consultamos o exercício CORRENTE, que é o que a maioria dos consulentes quer.
2025
data_nascimentoopcional
texto
OPCIONAL (DD/MM/AAAA). Não é preciso informar: sem ela, a data é resolvida pelo próprio CPF. Se você já tem a data em cadastro, envie-a — pula uma etapa de enriquecimento e deixa a consulta mais rápida.
01/01/1990
Resposta
Desfecho:status traz a frase pronta (ex.: "Restituição creditada."); resultado traz o código da própria Receita (iar = imposto a restituir, iap = imposto a pagar, indeterminado = sem declaração processada).
Declaração:existeDeclaracao diz se há declaração processada no exercício, possuiRestituicao se há restituição liberada, emFilaRestituicao se ela está na fila dos próximos lotes, e situacao/observacoes trazem os textos da fonte já limpos de HTML.
Crédito: o objeto restituicao traz lote, dataDisponibilidade e situacaoRestituicao; dadosBancarios traz banco, agencia, conta e chavePix do depósito. valorRestituicaoOriginal e valorRestituicaoCorrigido vêm quando a fonte os informa.
Imposto a pagar:debitoAutomatico.situacao informa a situação do débito automático.
Os três sub-objetos (restituicao, dadosBancarios, debitoAutomatico) estão sempre presentes: quando a Receita não tem o dado, seus campos vêm em null — nunca null no lugar do objeto e nunca chave ausente.
Resultado negativo: contribuinte sem declaração processada no exercício vem como existeDeclaracao: false com o status explicando — é resposta legítima, não erro.
{
"type": "object",
"properties": {
"status": {
"type": [
"string",
"null"
],
"description": "Frase-resumo do desfecho, pronta para exibir (ex.: 'Restituição creditada.', 'Declaração processada: imposto a pagar (sem restituição).', 'Nada consta: não há declaração processada para o CPF e exercício informados.')."
},
"situacao": {
"type": [
"string",
"null"
],
"description": "Texto da fonte descrevendo a situação da declaração (ex.: 'Os dados da liberação de sua restituição estão descritos abaixo:'). Já vem como texto puro — o HTML e as entidades da origem são removidos."
},
"exercicio": {
"type": [
"integer",
"null"
],
"description": "Ano-exercício ao qual a resposta se refere, confirmado pela própria fonte (ex.: 2025). É o exercício que você pediu ou, na ausência do parâmetro, o ano corrente."
},
"resultado": {
"type": [
"string",
"null"
],
"description": "Código do resultado do processamento, como a Receita o informa: 'iar' = imposto a restituir, 'iap' = imposto a pagar, 'indeterminado' = sem declaração processada. Para leitura humana, prefira o campo `status`."
},
"observacoes": {
"type": [
"string",
"null"
],
"description": "Observações e instruções ao contribuinte, quando a fonte as traz (ex.: telefone da central do banco pagador, aviso de débito automático). Texto puro; o texto de eventuais links é preservado."
},
"restituicao": {
"type": "object",
"properties": {
"lote": {
"type": [
"string",
"null"
],
"description": "Lote em que a restituição foi (ou será) paga (ex.: '003')."
},
"mensagem": {
"type": [
"string",
"null"
],
"description": "Mensagem adicional da fonte sobre este crédito, quando houver."
},
"dataDisponibilidade": {
"type": [
"string",
"null"
],
"description": "Data em que o valor fica disponível no banco, em DD/MM/AAAA."
},
"situacaoRestituicao": {
"type": [
"string",
"null"
],
"description": "Situação da restituição segundo a Receita (ex.: 'Creditada')."
}
},
"description": "Dados do crédito da restituição. Sempre presente; campos em null quando não há restituição liberada."
},
"cpfConsultado": {
"type": [
"string",
"null"
],
"description": "CPF consultado, formatado com máscara (ex.: '111.111.111-11')."
},
"dadosBancarios": {
"type": "object",
"properties": {
"banco": {
"type": [
"string",
"null"
],
"description": "Nome do banco do crédito (ex.: 'ITAU UNIBANCO S.A.')."
},
"conta": {
"type": [
"string",
"null"
],
"description": "Conta informada na declaração, quando a fonte a devolve."
},
"agencia": {
"type": [
"string",
"null"
],
"description": "Agência informada na declaração."
},
"chavePix": {
"type": [
"string",
"null"
],
"description": "Chave PIX usada para o crédito, quando a restituição foi indicada por PIX."
}
},
"description": "Conta em que o crédito da restituição foi (ou será) depositado. Sempre presente; campos em null quando a fonte não informa."
},
"tipoDeclaracao": {
"type": [
"string",
"null"
],
"description": "Tipo da declaração, quando informado pela fonte (ex.: retificadora)."
},
"debitoAutomatico": {
"type": "object",
"properties": {
"situacao": {
"type": [
"string",
"null"
],
"description": "Situação do débito automático informada pela fonte."
}
},
"description": "Situação do débito automático do imposto a pagar. Sempre presente; campo em null quando não se aplica."
},
"existeDeclaracao": {
"type": "boolean",
"description": "true = há declaração processada para o CPF neste exercício; false = NADA CONSTA (o contribuinte não declarou nesse ano ou a declaração ainda não entrou na base). false é resultado legítimo, não erro."
},
"nomeContribuinte": {
"type": [
"string",
"null"
],
"description": "Nome do contribuinte como consta no cadastro da Receita Federal."
},
"emFilaRestituicao": {
"type": "boolean",
"description": "true = a restituição está na fila de pagamento dos próximos lotes."
},
"possuiRestituicao": {
"type": "boolean",
"description": "true = há restituição com situação definida pela fonte (creditada, a ser creditada, em fila etc.); false = sem restituição liberada até o momento (inclui o caso de imposto a pagar)."
},
"valorRestituicaoOriginal": {
"type": [
"string",
"null"
],
"description": "Valor original da restituição, como a fonte o informa. null quando a fonte não traz o valor."
},
"valorRestituicaoCorrigido": {
"type": [
"string",
"null"
],
"description": "Valor da restituição corrigido (com a atualização aplicada pela Receita até o pagamento). null quando a fonte não traz o valor."
}
},
"description": "Andamento do pedido de restituição do IRPF de um CPF num exercício, direto na fonte oficial e gratuita da Receita Federal (restituicao.receita.fazenda.gov.br). Quando há restituição liberada, traz lote, data de disponibilidade e o banco/agência do crédito. Os sub-objetos `restituicao`, `dadosBancarios` e `debitoAutomatico` estão SEMPRE presentes: quando a fonte não informa, vêm com os campos em null — nunca null no lugar do objeto, nunca chave ausente."
}
Códigos de erro
Código
Mensagem
Quando acontece
400
Informe um CPF válido (11 dígitos).
CPF ausente, com quantidade de dígitos diferente de 11 ou com dígito verificador inválido.
400
Exercício inválido para esta consulta.
O ano-exercício enviado não existe para a consulta (ex.: ano futuro), segundo a própria Receita Federal.
400
Data de nascimento não confere com o cadastro do CPF na fonte.
A Receita Federal não reconhece o par CPF + data de nascimento. Ocorre quando a data enviada está errada e, mais raramente, quando o CPF não existe — a fonte devolve a mesma resposta nos dois casos, e por isso não afirmamos 'nada consta'.
401
Chave de API ausente ou inválida.
Header X-API-Key não enviado ou não reconhecido.
403
Saldo insuficiente ou acesso negado a este endpoint.
Conta sem saldo para cobrir a consulta ou sem permissão no catálogo da marca.
408
A consulta excedeu o tempo limite. Tente novamente.
A fonte oficial demorou além do orçamento de tempo da consulta.
503
A fonte oficial está indisponível no momento. Tente novamente em instantes.
O portal de restituição da Receita Federal está fora do ar ou recusando consultas. A mensagem traz o endereço oficial da fonte.
Quando usar
Acompanhamento da restituição de clientes por escritórios de contabilidade, em lote
Confirmação de crédito e da conta de depósito antes de acionar o contribuinte
Comprovação de entrega e processamento da declaração em análise de crédito e cadastro
Conferência do exercício corrente durante a temporada de lotes da Receita Federal
Integrar
OpenAPI (JSON) ↗ — importe a URL
no Postman ou no Insomnia para gerar a coleção com todos os endpoints. Também dá para consultar
pelo chat: conecte via MCP. Esta página em Markdown.