Pular para o conteúdo
FiscalAPI
CNPJ

Por Que Sua Consulta de CNPJ Está Desatualizada (e Como Obter o Dado Ao Vivo)

Equipe FiscalAPI 7 min de leitura
CNPJReceita FederalAPIIntegração

Quase toda API gratuita de consulta de CNPJ não fala com a Receita Federal na hora da sua chamada. Ela serve uma cópia do arquivo de Dados Abertos do CNPJ, publicado mensalmente. Se a empresa foi baixada, mudou de endereço ou teve o CNAE alterado depois da última publicação, você recebe o dado antigo — com HTTP 200, sem nenhum aviso de que está velho.

Isso é irrelevante para preencher um formulário e crítico para aprovar crédito, homologar fornecedor ou decidir tratamento tributário. Este artigo explica a diferença, mostra como identificar qual fonte você está usando e quando vale pagar pelo dado ao vivo.

De onde vem o dado da maioria das APIs#

A Receita Federal publica o Dados Abertos do CNPJ: o cadastro completo de todas as empresas do país, em arquivos disponibilizados periodicamente — na prática, com atualização mensal.

É um recurso excelente. É também um retrato, não um espelho. No dia em que o arquivo é publicado ele está correto; no dia 29 do ciclo, ele tem quase um mês de atraso acumulado.

Quase todo serviço gratuito de consulta de CNPJ — e vários pagos — funciona assim: baixa esse arquivo, indexa em um banco próprio e responde suas consultas a partir dele. Rápido e barato, porque nenhuma chamada sua chega à Receita.

Base mensal (dump)Ao vivo (Receita)
FrescorAté ~1 mês de atrasoO dado do momento
LatênciaMilissegundosSegundos
CustoBaixoMaior
Falha se a Receita cairNãoSim
Sinaliza que está velho?Quase nunca—
⚠️
O problema real não é o atraso — é o silêncio. A resposta chega com HTTP 200 e sem nenhum campo dizendo "esta informação é de 30 dias atrás". O consumidor da API não tem como saber que está decidindo com dado vencido.

Onde isso quebra de verdade#

Quatro situações em que o dump mensal produz decisão errada:

1. Onboarding e KYC. Empresa baixada há duas semanas ainda aparece ATIVA. Você aprova o cadastro, emite contra ela e descobre no fechamento.

2. Análise de crédito. Situação cadastral, capital social e quadro societário são entrada direta da decisão. Sócio que saiu no mês passado ainda consta no QSA.

3. Tratamento tributário. Mudança de natureza jurídica, de porte ou de CNAE principal muda o cálculo. Emitir com o CNAE antigo é errar o CFOP, e errar o CFOP é rejeição na SEFAZ — ou, pior, autuação meses depois.

4. Higienização de base. Se você roda a limpeza mensal contra uma fonte também mensal, os dois calendários se desencontram e você pode passar dois ciclos com o mesmo dado errado.

💡
Um caso concreto de campo: um cliente precisava validar ~3.000 CNPJs para uma esteira de crédito. Contra a base mensal, um percentual relevante voltava com situação cadastral divergente do que a Receita mostrava naquele dia. A diferença não estava no volume — estava na fonte.

Como saber qual fonte você está usando#

Três testes práticos:

  1. Cronometre. Resposta em ~50 ms é banco local. Resposta em 2 a 8 segundos é consulta real na origem.
  2. Procure a data de referência. Fontes honestas expõem quando o dado foi extraído. Se não existe esse campo, assuma dump.
  3. Teste com um CNPJ recém-alterado. Se você tem uma empresa que mudou de situação nos últimos dias, consulte. É o teste definitivo.

Consultando ao vivo#

Na FiscalAPI, a mesma chamada atende os dois casos — a diferença é um parâmetro:

bash
# Base pública mensal — rápida e barata (1 crédito)
curl -X GET "https://api.fiscalapi.com.br/api/consultar-cnpj?cnpj=12345678000199" \
  -H "X-API-Key: fapi_sua_chave_aqui"

# Ao vivo na Receita Federal — dado atual (3 créditos)
curl -X GET "https://api.fiscalapi.com.br/api/consultar-cnpj?cnpj=12345678000199&force_fresh=true" \
  -H "X-API-Key: fapi_sua_chave_aqui"

O force_fresh=true vai à Receita no momento da chamada. Leva alguns segundos a mais e custa 3 créditos em vez de 1 — e devolve o cadastro como ele está agora.

A resposta tem o mesmo formato nos dois modos, então você não precisa de dois parsers:

json
{
  "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "cnpj": "12345678000199",
  "cached": false,
  "source_status": { "status": "success" },
  "result": {
    "razao_social": "AGROPECUARIA BOA VISTA LTDA",
    "nome_fantasia": "FAZENDA BOA VISTA",
    "situacao_cadastral": "ATIVA",
    "data_situacao_cadastral": "2010-05-20",
    "natureza_juridica": "206-2 - Sociedade Empresaria Limitada",
    "porte": "PEQUENO PORTE",
    "capital_social": "500000.00",
    "cnae_principal_codigo": "0151-2/01",
    "cnae_principal_descricao": "CRIACAO DE BOVINOS PARA CORTE",
    "cnaes_secundarios": [
      { "codigo": "0111-3/01", "descricao": "CULTIVO DE ARROZ" }
    ],
    "endereco": {
      "logradouro": "ROD BR-364 KM 28",
      "numero": "S/N",
      "bairro": "ZONA RURAL",
      "municipio": "CUIABA",
      "codigo_ibge": "5103403",
      "uf": "MT",
      "cep": "78000-000"
    },
    "qsa": [
      { "nome": "JOAO DA SILVA", "qualificacao": "Socio-Administrador" }
    ]
  }
}

Em Python#

python
import httpx

def consultar_cnpj(cnpj: str, ao_vivo: bool = False) -> dict:
    params = {"cnpj": cnpj}
    if ao_vivo:
        params["force_fresh"] = "true"
    resp = httpx.get(
        "https://api.fiscalapi.com.br/api/consultar-cnpj",
        params=params,
        headers={"X-API-Key": "fapi_sua_chave_aqui"},
        timeout=60,
    )
    resp.raise_for_status()
    return resp.json()

# Triagem barata, confirmação cara
dado = consultar_cnpj("12345678000199")
if dado["result"]["situacao_cadastral"] != "ATIVA":
    dado = consultar_cnpj("12345678000199", ao_vivo=True)  # confirma antes de reprovar

A estratégia que equilibra custo e frescor#

Consultar tudo ao vivo é caro e desnecessário. Consultar tudo no dump é barato e arriscado. O padrão que funciona é híbrido:

CenárioFonte
Autocompletar formulário, enriquecer lead, relatório internoBase mensal
Triagem inicial de uma lista grandeBase mensal
Confirmar antes de reprovar alguémAo vivo
Aprovar crédito, contrato ou limiteAo vivo
Decidir tratamento tributário de operação relevanteAo vivo
Reconciliação periódica da base cadastralBase mensal

A regra de ouro: use o dump para descartar e o ao vivo para decidir. Reprovar um cliente com base em dado de 30 dias atrás é o pior dos dois mundos — você perde negócio por informação vencida.

💡
Consultas repetidas do mesmo CNPJ em curto intervalo são servidas de cache, então checar o mesmo documento algumas vezes seguidas não multiplica o custo de processamento.

E a Inscrição Estadual?#

Aqui há uma armadilha adicional: o CNPJ é cadastro federal. Ele não diz nada sobre a situação da empresa no estado.

Uma empresa pode estar perfeitamente ATIVA na Receita Federal e com a Inscrição Estadual cancelada na SEFAZ — e é a IE que decide se você consegue emitir NF-e para ela. São bases independentes, mantidas por órgãos diferentes, que se desatualizam em ritmos diferentes.

Se a sua validação de fornecedor olha só o CNPJ, ela está incompleta. Veja consulta SINTEGRA para a parte estadual, e rejeição 210 para o que acontece quando ela é ignorada.


Perguntas frequentes#

As APIs gratuitas de CNPJ são confiáveis? Para o dado que elas entregam, sim — o problema não é a exatidão, é o frescor. Elas servem o arquivo de Dados Abertos da Receita, publicado mensalmente. Se a empresa mudou depois da publicação, a resposta está desatualizada e nada na resposta avisa isso.

Com que frequência a Receita atualiza os Dados Abertos do CNPJ? A publicação é periódica, com ciclo mensal. Na prática, o atraso do dado que você consulta varia de zero a cerca de 30 dias, dependendo de quando no ciclo você consultou.

Como consultar CNPJ atualizado em tempo real? Usando uma fonte que vá à Receita no momento da chamada. Na FiscalAPI, é o parâmetro force_fresh=true no endpoint /api/consultar-cnpj.

Por que a consulta ao vivo é mais cara? Porque cada chamada é uma consulta real ao serviço da Receita, com todo o custo de infraestrutura e resiliência que isso implica — enquanto a base mensal responde de um banco local. Na FiscalAPI, ao vivo custa 3 créditos contra 1 da consulta padrão.

Consulta de CNPJ mostra a Inscrição Estadual? Não. São cadastros de esferas diferentes. Para IE, é preciso consultar a SEFAZ estadual — veja o guia de consulta SINTEGRA.

Dá para consultar milhares de CNPJs? Sim. O padrão recomendado é triar em lote pela base mensal e confirmar ao vivo apenas os casos que vão gerar decisão. Respeite o rate limit do seu plano e trate 429 com backoff.


Próximo passo#

Se a sua esteira decide alguma coisa a partir do CNPJ — crédito, contrato, tributação —, vale conferir de qual fonte o dado está vindo. Veja a documentação do endpoint de CNPJ, incluindo o comportamento do force_fresh.


Artigos relacionados#

Compartilhar: WhatsApp LinkedIn Twitter

Consulte dados fiscais via API

Consulte Inscrições Estaduais, CNPJs e Certidões Negativas via API REST. Dados direto da SEFAZ e Receita Federal. Planos a partir de R$ 19,99/mês.

Criar conta →