Consultar parcelamentos de um CNPJ com a Receita Federal pela API

A Receita Federal publica todo mês, em dados abertos, a base dos parcelamentos ativos de tributos federais: quem tem parcelamento em andamento, de que tipo, quanto foi parcelado e qual o saldo. A CNPJAPI informa por API, nos planos pagos, se a empresa tinha parcelamento ativo na última base publicada pela Receita, e não a situação de hoje. A informação vem em toda consulta de CNPJ, no mesmo JSON dos dados cadastrais, sem chamada extra e sem custo adicional. Não substitui a certidão de regularidade fiscal.

É um dado útil, com data, para análise de crédito e cadastro de clientes e fornecedores: mostra o tipo e o saldo dos parcelamentos que a empresa tinha na base publicada, sem dizer se as parcelas estão em dia.

O que é um parcelamento ativo com a Receita

Quando a empresa não paga um tributo federal no prazo, ela pode pedir à Receita para pagar o débito em parcelas. Enquanto o parcelamento está em andamento (não foi quitado, rescindido nem excluído), ele aparece na base de parcelamentos ativos. Há parcelamentos convencionais (do MEI, do Simples Nacional e o ordinário ou simplificado), especiais, criados por lei (como PERT e RELP), e os de órgãos públicos.

O parcelamento em dia, por si só, não impede a certidão positiva com efeitos de negativa: ter parcelamento, por si só, não é irregularidade.

Diferença para a dívida ativa

A dívida ativa da União é o débito que a PGFN já inscreveu para cobrança (no caso dos tributos da Receita, depois que ela o encaminha). O parcelamento com a Receita é anterior a isso: o débito ainda está na Receita. Parcelamento de dívida já inscrita é feito na PGFN e aparece no bloco da dívida ativa, como situação regular (benefício fiscal). São bases diferentes, e uma empresa pode estar nas duas.

Parcelamentos com a Receita Dívida ativa da União
Campo na resposta ParcelamentosRFB DividaAtiva
Fonte Receita Federal PGFN
Débito Parcelado na Receita, antes da inscrição Inscrito em dívida ativa
Publicação Mensal, com a data da publicação Trimestral, com o mês da extração

Sete pontos antes de usar

  1. Fonte: a base de dados abertos de parcelamentos ativos, publicada pela Receita Federal. Toda resposta traz "Fonte": "Receita Federal, dados abertos de parcelamentos ativos".
  2. Data: a Receita publica a base todo mês, entre os dias 20 e 31. A resposta traz a data em que a Receita publicou a base (PublicadoEm).
  3. Defasagem: o dado é uma foto da data da extração e pode ter até cerca de dois meses. Quitações, rescisões (inclusive por atraso) e pedidos feitos depois da publicação não aparecem até a publicação seguinte.
  4. Onde conferir a situação atual: a certidão de regularidade fiscal (Receita e PGFN) mostra a regularidade atual de qualquer CNPJ, mas não lista parcelamentos. O detalhe dos parcelamentos só a própria empresa vê, no e-CAC.
  5. Não é certidão: a informação não substitui a certidão de regularidade fiscal.
  6. Parcelamento não é irregularidade: o parcelamento em dia, por si só, não impede a certidão positiva com efeitos de negativa.
  7. Sem informação de atraso: a base não diz se há parcela em atraso. O saldo inclui as parcelas vencidas e as que ainda vão vencer.

Como funciona

Faça a consulta normal de CNPJ (GET /{cnpj}) com a chave de API de um plano pago. A resposta ganha o campo ParcelamentosRFB, depois de DividaAtiva. Para uma empresa com parcelamentos, fica assim (CNPJ e valores fictícios):

curl https://api.cnpjapi.com.br/98765432000198 \
  -H "Authorization: Bearer cnpj_sua_chave"
"ParcelamentosRFB": {
  "Fonte": "Receita Federal, dados abertos de parcelamentos ativos",
  "PublicadoEm": "2026-10-27",
  "ConstavaParcelamentoAtivo": true,
  "Parcelamentos": 2,
  "ValorParcelado": 412300.50,
  "SaldoDevedor": 301455.12,
  "PorTipo": {
    "MEI": { "Parcelamentos": 0, "ValorParcelado": 0.00, "SaldoDevedor": 0.00 },
    "SimplesNacional": { "Parcelamentos": 0, "ValorParcelado": 0.00, "SaldoDevedor": 0.00 },
    "OrdinarioSimplificado": { "Parcelamentos": 1, "ValorParcelado": 142756.79, "SaldoDevedor": 133332.08 },
    "Especial": { "Parcelamentos": 1, "ValorParcelado": 269543.71, "SaldoDevedor": 168123.04, "Modalidades": ["PERT"] },
    "OrgaoPublico": { "Parcelamentos": 0, "ValorParcelado": 0.00, "SaldoDevedor": 0.00, "Modalidades": [] }
  },
  "CNPJsRegistrados": ["98765432000198"]
}

Cinco pontos para ler a resposta direito:

  • ConstavaParcelamentoAtivo fala da base publicada em PublicadoEm, não de hoje. true quer dizer que a empresa estava na base de parcelamentos ativos daquela publicação, inclusive com saldo zero.
  • Os cinco tipos vêm sempre. MEI, SimplesNacional, OrdinarioSimplificado, Especial e OrgaoPublico aparecem em toda resposta, zerados quando não há. Especial soma os parcelamentos especiais de pessoa jurídica, do Simples e do MEI; Especial e OrgaoPublico trazem as Modalidades com os nomes que a Receita publica.
  • Saldo na data da extração. SaldoDevedor é o saldo corrigido até a extração, em reais, somando as parcelas vencidas e as que ainda vão vencer. A base não diz se há parcela em atraso.
  • A busca é pela raiz do CNPJ. A consulta de qualquer estabelecimento traz os parcelamentos da empresa inteira, e CNPJsRegistrados diz quais CNPJs da raiz constam na base.
  • Sem data de adesão. A resposta não traz a data em que o parcelamento foi pedido ou deferido, e por isso não diz há quanto tempo o parcelamento existe.

Quando a empresa não aparece na base, o bloco vem com ConstavaParcelamentoAtivo: false, os totais e os cinco tipos zerados, CNPJsRegistrados: [] e o PublicadoEm. Leia como "não tinha parcelamento ativo na base publicada pela Receita em 27/10/2026", e não como "sem dívida".

Exemplo em código

Os exemplos Node usam fetch nativo (Node 18+) e await no nível superior - rode como módulo ES (arquivo .mjs, ou "type": "module" no package.json), ou envolva o código numa função async.

Python:

import requests

cnpj = "98765432000198"
r = requests.get(
    f"https://api.cnpjapi.com.br/{cnpj}",
    headers={"Authorization": "Bearer cnpj_sua_chave"},
    timeout=10,
)
r.raise_for_status()
empresa = r.json()

parc = empresa.get("ParcelamentosRFB")
if parc is None:
    # plano gratuito ou pago encerrado ("ParcelamentosRFBDisponivelEm") ou verificação indisponível agora ("ParcelamentosRFBErro")
    print("Parcelamentos não verificados:", empresa.get("ParcelamentosRFBDisponivelEm") or empresa.get("ParcelamentosRFBErro"))
elif parc["ConstavaParcelamentoAtivo"]:
    print(f'Tinha parcelamento ativo na base publicada em {parc["PublicadoEm"]}:',
          parc["Parcelamentos"], "parcelamentos, saldo de R$", parc["SaldoDevedor"])
else:
    print(f'Não tinha parcelamento ativo na base publicada em {parc["PublicadoEm"]}')

Node.js:

const cnpj = "98765432000198";
const r = await fetch(`https://api.cnpjapi.com.br/${cnpj}`, {
  headers: { Authorization: "Bearer cnpj_sua_chave" },
});
if (!r.ok) throw new Error(`HTTP ${r.status}`);
const empresa = await r.json();

const parc = empresa.ParcelamentosRFB;
if (parc === null || parc === undefined) {
  console.log("Parcelamentos não verificados:", empresa.ParcelamentosRFBDisponivelEm ?? empresa.ParcelamentosRFBErro);
} else if (parc.ConstavaParcelamentoAtivo) {
  console.log(`Tinha parcelamento ativo na base publicada em ${parc.PublicadoEm}:`, parc.Parcelamentos, "parcelamentos, saldo de R$", parc.SaldoDevedor);
} else {
  console.log(`Não tinha parcelamento ativo na base publicada em ${parc.PublicadoEm}`);
}

Quando o bloco não vem

  • Plano gratuito (ou plano pago encerrado): "ParcelamentosRFB": null e "ParcelamentosRFBDisponivelEm": "planos_pagos". Os dados do CNPJ vêm normalmente.
  • Verificação indisponível no momento: "ParcelamentosRFB": null e "ParcelamentosRFBErro": "indisponivel". Também é o que vem quando a base servida passa de 70 dias da publicação sem uma base mais nova carregada (a Receita atrasou a publicação ou a base seguinte ainda não foi carregada), para não servir dado velho. A consulta do CNPJ não é afetada.
  • Formato ReceitaWS (?formato=receitaws ou /v1/cnpj/{cnpj}): o campo não existe.

Muitos CNPJs de uma vez

No lote (POST /consulta/lote, até 20 CNPJs por chamada), cada item encontrado traz o mesmo bloco dentro de Dados. Bom para revisar a carteira de clientes inteira de uma vez.

Perguntas frequentes

De quando é a informação dos parcelamentos?

A Receita publica a base todo mês, entre os dias 20 e 31; mostramos a data da publicação em toda consulta. O dado pode ter até cerca de dois meses.

Ter parcelamento quer dizer que a empresa está irregular?

Não necessariamente. O parcelamento em dia, por si só, não impede a certidão positiva com efeitos de negativa. A base também não diz se há parcela em atraso.

Não constar quer dizer que a empresa não deve nada à Receita?

Não. Quer dizer que ela não tinha parcelamento ativo na base daquela publicação. Débitos não parcelados, ainda não declarados ou já inscritos em dívida ativa não entram nesta base.

Qual a diferença para a dívida ativa?

A dívida ativa é o débito que a PGFN já inscreveu para cobrança (no caso dos tributos da Receita, depois que ela o encaminha). O parcelamento com a Receita é anterior a isso. Parcelamento de dívida já inscrita aparece no bloco da dívida ativa, como situação regular.

A consulta substitui a certidão negativa?

Não. Para isso, emita a certidão de regularidade fiscal nos canais oficiais.

Cuidados

  • Os dados vêm da base oficial da Receita Federal, somados por raiz de CNPJ e por tipo de parcelamento, sem alterar os valores; não são juízo da CNPJAPI sobre a empresa.
  • Use a informação como um sinal com data, não como a situação de hoje. Para decisões que dependem da situação atual, emita a certidão de regularidade fiscal.

Próximos passos