para quem automatiza fluxos · base agosto/2026

API de CNPJ para automação

Consulte e busque empresas no n8n, Make ou Zapier pelo nó HTTP Request: chave no header, JSON previsível, custo declarado e erros com código estável.

Automação de cadastro, enriquecimento ou prospecção precisa de uma API que responda sempre no mesmo formato, cobre o que declarou e diga com clareza quando repetir. É isso: JSON com data e meta, custo em créditos conhecido antes da chamada, erros custam 0 e cada um traz retryable; o 429 traz Retry-After. Funciona em qualquer ferramenta que faça uma requisição HTTP: n8n, Make, Zapier, Pipedream ou um cron.

O fluxo em três passos

  1. Guarde a chave como credencial

    No n8n, uma credencial Header Auth com Authorization: Bearer SUA_CHAVE. Nunca no corpo do fluxo, nunca em nó de código versionado.

    Authorization: Bearer cnpj_live_…
  2. Um nó HTTP Request por operação

    GET /v1/cnpjs/{cnpj} para enriquecer um registro; GET /v1/cnpjs com filtros para descobrir empresas. O JSON volta com data e meta.

    GET https://api.cnpj.ia.br/v1/cnpjs/{{ $json.cnpj }}?profile=full
  3. Trate os erros pelo código, não pelo texto

    Com a resposta completa ligada no nó, um IF sobre body.error.retryable decide entre repetir (esperando o header Retry-After, quando vier), corrigir o dado ou parar. Erros não consomem crédito.

    IF {{ $json.body.error.retryable }} → Wait {{ $json.headers['retry-after'] || 2 }}s → repetir

Configuração dos nós

Não há nó comunitário ainda; o nó HTTP Request resolve. Os blocos abaixo são os parâmetros a preencher no nó, não um export importável. Make e Zapier funcionam pelo módulo HTTP de cada um, com a chave guardada como conexão.

n8n · HTTP Request (consulta)
{
  "node": "HTTP Request",
  "method": "GET",
  "url": "https://api.cnpj.ia.br/v1/cnpjs/{{ $json.cnpj }}",
  "queryParameters": { "profile": "full" },
  "authentication": "genericCredentialType",
  "genericAuthType": "httpHeaderAuth",
  "headerAuth": { "name": "Authorization", "value": "Bearer <credencial>" }
}
n8n · HTTP Request (busca paginada)
{
  "node": "HTTP Request",
  "method": "GET",
  "url": "https://api.cnpj.ia.br/v1/cnpjs",
  "queryParameters": {
    "uf": "PR", "municipio": "4106902", "cnae": "1091102",
    "situacao": "ATIVA", "simples": "true",
    "cursor": "{{ $json.meta.next_cursor }}"
  },
  "pagination": { "stopWhen": "{{ $response.body.meta.next_cursor === null }}" }
}
Make / Zapier
Módulo HTTP → Make a request
URL:    https://api.cnpj.ia.br/v1/cnpjs/{cnpj}?profile=basic
Método: GET
Header: Authorization: Bearer <chave guardada como conexão>
Parse:  JSON → data.razao_social, data.situacao_cadastral.descricao, meta.data_as_of

Campos mais usados

CampoPerfilDescrição
cnpjbasicCNPJ do estabelecimento, 14 caracteres sem pontuação, com zeros à esquerda. Vem da Receita Federal; aceita entrada numérica ou alfanumérica, com ou sem pontuação.
razao_socialbasicNome empresarial registrado na Receita Federal. É o único nome sempre presente.
situacao_cadastral.codigobasicCódigo da situação cadastral do estabelecimento na Receita Federal, com dois dígitos. É o campo que diz se a empresa está ativa. null quando o rótulo de origem não está na tabela de códigos.
endereco.municipiobasicNome do município de jurisdição do estabelecimento, traduzido pela tabela de municípios da Receita Federal.
endereco.ufbasicSigla da unidade da federação do estabelecimento, campo da Receita Federal.
has_emailbasicIndica se a empresa tem e-mail na base, sem revelar o e-mail. Sinal derivado, calculado no processamento da Oportunidados; serve para filtrar antes de gastar o perfil full.
emailfullEndereço de correio eletrônico do contribuinte, campo da Receita Federal. null quando a empresa não tem e-mail na base.
meta.next_cursormetaCursor opaco da próxima página da busca. null na última página; ignorado nas outras operações.
meta.credits_remainingmetaCréditos restantes na conta, somando franquia do plano e pacotes avulsos.

Regras que evitam surpresa no fluxo

Tier indicado

Starter é o plano indicado: o de menor mensalidade entre os que incluem a busca de empresas.

O Free não atende a este fluxo porque não inclui a busca de empresas.

  • 15 mil créditos por mês
  • 30 requisições por minuto
  • R$ 0,0196 por consulta full
  • R$ 0,0033 por empresa retornada na busca

Todos os planos, os pesos por operação e os pacotes avulsos

Perguntas frequentes

Existe um nó do n8n para o cnpj.ia.br?

Ainda não. O nó HTTP Request cobre tudo: uma credencial Header Auth com a chave, a URL da operação e o parse do JSON. A receita completa está nesta página; um nó comunitário está no radar, sem data.

Funciona no Make e no Zapier?

Sim, pelo módulo HTTP de cada um: método GET, a URL da operação e o header Authorization: Bearer com a chave guardada como conexão. O JSON de resposta é o mesmo em qualquer cliente.

Como repetir uma chamada que falhou sem duplicar custo?

Repita só quando error.retryable for verdadeiro, esperando o header Retry-After quando ele vier. Erros não consomem crédito, então repetir um 429, um 503 ou um 504 não custa nada; só respostas 200 são cobradas.

Posso disparar muitas consultas em paralelo?

Até o limite de requisições por minuto do seu plano, que é por conta. Acima disso a API responde 429 rate_limited com Retry-After. Em lotes, um nó Wait entre chamadas ou entre páginas evita o erro.

O que acontece quando a franquia do mês acaba no meio do fluxo?

A API responde 402 quota_exceeded e o fluxo para de receber dados até o reset ou até você subir de plano ou, sendo assinante pago, comprar um pacote. Nada é cobrado automaticamente. Consultar GET /v1/usage no início do fluxo evita a surpresa.

Como sei a data dos dados que gravei?

Toda resposta de consulta e busca traz meta.data_as_of, a data da foto mensal da Receita Federal. Grave esse campo junto com o registro; é ele que diz se vale reenriquecer depois da próxima carga.

Para continuar

Criar chave grátis

Atualizado em