Por Que Sua Consulta de CNPJ Está Desatualizada (e Como Obter o Dado Ao Vivo)
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) | |
|---|---|---|
| Frescor | Até ~1 mês de atraso | O dado do momento |
| Latência | Milissegundos | Segundos |
| Custo | Baixo | Maior |
| Falha se a Receita cair | Não | Sim |
| Sinaliza que está velho? | Quase nunca | — |
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.
Como saber qual fonte você está usando#
Três testes práticos:
- Cronometre. Resposta em ~50 ms é banco local. Resposta em 2 a 8 segundos é consulta real na origem.
- Procure a data de referência. Fontes honestas expõem quando o dado foi extraído. Se não existe esse campo, assuma dump.
- 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:
# 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:
{
"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#
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ário | Fonte |
|---|---|
| Autocompletar formulário, enriquecer lead, relatório interno | Base mensal |
| Triagem inicial de uma lista grande | Base mensal |
| Confirmar antes de reprovar alguém | Ao vivo |
| Aprovar crédito, contrato ou limite | Ao vivo |
| Decidir tratamento tributário de operação relevante | Ao vivo |
| Reconciliação periódica da base cadastral | Base 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.
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#
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 →