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.
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