Consultar a dívida ativa da União de um CNPJ pela API

Para consultar a dívida ativa da União de um CNPJ, o caminho oficial e gratuito é a Dívida Aberta, da Procuradoria-Geral da Fazenda Nacional (PGFN): uma consulta por vez, numa página com verificação contra robôs. Para triagem automática de muitos CNPJs, a CNPJAPI informa por API, nos planos pagos, se a empresa constava em cobrança na última base trimestral que a PGFN publica em dados abertos, 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. Nenhuma das duas substitui a certidão de regularidade fiscal.

É um sinal útil antes de vender a prazo, liberar crédito ou fechar com um fornecedor.

O que é a dívida ativa da União

A dívida ativa da União é o conjunto de débitos com a União, e também com o FGTS, que não foram pagos no prazo e que a PGFN inscreveu para cobrança. A base tem três partes: tributos federais e multas (não previdenciária), contribuições previdenciárias e FGTS. Uma inscrição pode ser cobrada na justiça (execução fiscal). Ela muda de situação quando é parcelada, garantida ou suspensa por decisão judicial, e deixa de constar em cobrança quando é paga, cancelada ou extinta por outro motivo. Débito que ainda não foi inscrito não entra nessa base.

Formas de consultar

Critério Dívida Aberta (PGFN) Dados abertos da PGFN CNPJAPI
Para quê Conferir uma empresa Baixar a base inteira Triagem automática por API
Atualização Mais recente que a base trimestral Trimestral Trimestral, com o mês da extração
Volume Uma consulta por vez Arquivos CSV compactados, milhões de linhas Um CNPJ por chamada ou até 20 no lote
Busca Por CNPJ, CPF ou nome Sem busca (arquivo inteiro) Pela raiz do CNPJ (a empresa inteira)
Verificação contra robôs Sim Não Não (acesso por API key)
Formato Página web CSV JSON
Custo Gratuito Gratuito Incluso nos planos pagos

Para triagem de cadastros e carteiras, a API evita baixar e processar os arquivos a cada trimestre.

Cinco pontos antes de usar

  1. Fonte: a base de dados abertos da dívida ativa da União, publicada pela PGFN. Toda resposta traz "Fonte": "PGFN, dados abertos da dívida ativa da União".
  2. Data: a PGFN publica a base a cada trimestre. A resposta traz o mês da extração (Referencia) e a data em que a PGFN publicou o lote (PublicadoEm).
  3. Defasagem: o dado é uma fotografia da data da extração e tem, em geral, de 3 semanas a cerca de 4 meses; se a publicação atrasar, até 5 meses depois do mês de referência, quando o bloco passa a vir indisponível. Pagamentos, parcelamentos, garantias e decisões judiciais posteriores à extração não aparecem; inscrições feitas depois também não.
  4. Onde conferir a situação atual: na consulta oficial da PGFN, a Dívida Aberta. Para pedir a revisão de uma inscrição, o canal é o REGULARIZE.
  5. Não é certidão: a informação não substitui a certidão de regularidade fiscal.

Como funciona

Faça a consulta normal de CNPJ (GET /{cnpj}) com a API key de um plano pago. A resposta ganha o campo DividaAtiva no fim do JSON, depois de Sancoes. Para uma empresa com inscrições, fica assim (CNPJ e valores fictícios):

curl https://api.cnpjapi.com.br/98765432000198 \
  -H "Authorization: Bearer cnpj_sua_chave"
"DividaAtiva": {
  "Fonte": "PGFN, dados abertos da dívida ativa da União",
  "Referencia": "2026-09",
  "PublicadoEm": "2026-10-21",
  "ConstavaEmCobranca": true,
  "EmCobranca": {
    "Inscricoes": 12,
    "ValorConsolidado": 184532.17,
    "Ajuizadas": 3,
    "PorBase": {
      "NaoPrevidenciaria": { "Inscricoes": 9, "ValorConsolidado": 150210.40 },
      "Previdenciaria": { "Inscricoes": 2, "ValorConsolidado": 30101.77 },
      "FGTS": { "Inscricoes": 1, "ValorConsolidado": 4220.00 }
    }
  },
  "SituacaoRegular": {
    "BeneficioFiscal": { "Inscricoes": 2, "ValorConsolidado": 20400.00 },
    "Garantia": { "Inscricoes": 0, "ValorConsolidado": 0.00 },
    "SuspensaDecisaoJudicial": { "Inscricoes": 1, "ValorConsolidado": 8000.00 },
    "EmNegociacao": { "Inscricoes": 0, "ValorConsolidado": 0.00 }
  },
  "CNPJsRegistrados": ["98765432000198"]
}

Quatro pontos para ler a resposta direito:

  • ConstavaEmCobranca fala da data da extração, não de hoje. true quer dizer que havia ao menos uma inscrição em cobrança no lote de Referencia.
  • Situação regular não conta como em cobrança. Inscrições parceladas ou em moratória (benefício fiscal), garantidas, suspensas por decisão judicial ou em negociação vêm separadas em SituacaoRegular, com quantidade e valor, e não entram em EmCobranca.
  • A busca é pela raiz do CNPJ. Tributo federal costuma ser lançado no CNPJ da matriz: a consulta de qualquer estabelecimento traz as inscrições da empresa inteira, e CNPJsRegistrados diz quais CNPJs da raiz constam na base. Só entram inscrições em que a empresa é a devedora principal.
  • Valores na data da extração. ValorConsolidado é o débito com os acréscimos legais naquela data, em reais; Ajuizadas conta as inscrições em cobrança que estão em execução fiscal.

Quando a empresa não aparece na base, o bloco vem com ConstavaEmCobranca: false, as contagens zeradas, a mesma Referencia e o PublicadoEm. Leia como "não constava em cobrança na extração de setembro de 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()

divida = empresa.get("DividaAtiva")
if divida is None:
    # plano gratuito ("DividaAtivaDisponivelEm") ou verificação indisponível agora ("DividaAtivaErro")
    print("Dívida ativa não verificada:", empresa.get("DividaAtivaDisponivelEm") or empresa.get("DividaAtivaErro"))
elif divida["ConstavaEmCobranca"]:
    cobranca = divida["EmCobranca"]
    print(f'Constava em cobrança na extração de {divida["Referencia"]}:',
          cobranca["Inscricoes"], "inscrições, R$", cobranca["ValorConsolidado"])
else:
    print(f'Não constava em cobrança na extração de {divida["Referencia"]} (publicada em {divida["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 divida = empresa.DividaAtiva;
if (divida === null || divida === undefined) {
  console.log("Dívida ativa não verificada:", empresa.DividaAtivaDisponivelEm ?? empresa.DividaAtivaErro);
} else if (divida.ConstavaEmCobranca) {
  const { Inscricoes: inscricoes, ValorConsolidado } = divida.EmCobranca;
  console.log(`Constava em cobrança na extração de ${divida.Referencia}:`, inscricoes, "inscrições, R$", ValorConsolidado);
} else {
  console.log(`Não constava em cobrança na extração de ${divida.Referencia} (publicada em ${divida.PublicadoEm})`);
}

Quando o bloco não vem

  • Plano gratuito: "DividaAtiva": null e "DividaAtivaDisponivelEm": "planos_pagos". Os dados do CNPJ vêm normalmente.
  • Verificação indisponível no momento: "DividaAtiva": null e "DividaAtivaErro": "indisponivel". Também é o que vem quando o lote servido passa de 5 meses sem um lote mais novo carregado (a PGFN atrasou a publicação ou o lote seguinte ainda não foi carregado), 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 da dívida ativa?

A PGFN publica a base a cada trimestre, e toda consulta mostra o mês da extração (Referencia) e a data da publicação (PublicadoEm). Entre uma publicação e outra, a informação pode estar defasada em até cerca de 4 meses.

A empresa já pagou ou parcelou a dívida. Por que ainda aparece?

Porque a base da PGFN é de uma data anterior ao pagamento ou ao parcelamento; a situação atualiza na próxima publicação trimestral. A situação atual se confere na Dívida Aberta da PGFN, e o pedido de revisão de uma inscrição se faz no REGULARIZE.

Parcelamento conta como dívida?

Não. Inscrições parceladas, garantidas, suspensas por decisão judicial ou em negociação aparecem separadas, como situação regular, e não contam como em cobrança.

Não constar na base quer dizer que a empresa não tem dívida?

Não. Quer dizer que ela não constava em cobrança na extração daquele mês. Inscrições posteriores não aparecem, e a base não inclui débitos ainda não inscritos em dívida ativa.

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 PGFN, somados por raiz de CNPJ, sem alterar situação nem 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, confira na fonte oficial.

Próximos passos