Exemplo

Enriquecer empresas por CNPJ no n8n, Make e Zapier

Workflow n8n importável que consulta um CNPJ na API do cnpj.ia.br com credencial Header Auth, trata erro por retryable e espera o Retry-After; mais o passo a passo para Make e Zapier.

JSON n8n Make Zapier Workflow no GitHub

O workflow recebe um CNPJ, consulta GET /v1/cnpjs/{cnpj}?profile=full pelo nó HTTP Request com a chave numa credencial Header Auth e devolve razão social, situação cadastral, CNAE, porte, telefones e e-mail quando disponíveis. Em erro, decide pelo error.retryable: para, ou espera o Retry-After e repete. Usa só nós nativos do n8n.

O problema

Automação que chama uma API precisa distinguir o erro que se resolve repetindo (rate_limited, maintenance, upstream_timeout) do que não se resolve (invalid_cnpj, not_found, chave inválida). Repetir o segundo gasta execução; repetir o primeiro cedo demais só gera outro erro. E a chave não pode ficar no JSON do workflow, que costuma ser exportado e compartilhado.

O fluxo

  1. Definir CNPJ e contador: o CNPJ de entrada (o exemplo usa 00000000000191).
  2. Consultar CNPJ: HTTP Request com a credencial Header Auth (Authorization: Bearer ...), resposta completa (status, headers e corpo) e sem falhar em status de erro. A URL tira pontos, barra e hífen do CNPJ.
  3. Resposta tem erro?: sem body.error, segue para Selecionar dados da empresa.
  4. Erro permite repetir?: retryable: false para com cnpj.ia.br: <error.code>.
  5. Repetir?: até 2 tentativas e Retry-After de até 60 segundos; Aguardar Retry-After espera o prazo da resposta (2 segundos quando o header não vem) e volta à consulta.

Para importar: crie a credencial Header Auth cnpj.ia.br — Header Auth, importe o JSON, associe a credencial ao nó Consultar CNPJ e troque o CNPJ de exemplo. O passo a passo completo, a busca paginada no mesmo padrão e o equivalente em Make (HTTP → Make a request) e Zapier (Webhooks by Zapier → Custom Request) estão no README da pasta e em make-e-zapier.md.

O código

O workflow completo, pronto para Import from File: n8n/enriquecer-empresas-por-cnpj.json. O nó da consulta:

{
  "parameters": {
    "url": "=https://api.cnpj.ia.br/v1/cnpjs/{{ $('Definir CNPJ e contador').first().json.cnpj.replace(/[./-]/g, '') }}?profile=full",
    "authentication": "genericCredentialType",
    "genericAuthType": "httpHeaderAuth",
    "options": {
      "response": {
        "response": {
          "neverError": true,
          "responseFormat": "json",
          "fullResponse": true
        }
      }
    }
  },
  "name": "Consultar CNPJ",
  "type": "n8n-nodes-base.httpRequest",
  "typeVersion": 4.2,
  "credentials": {
    "httpHeaderAuth": {
      "id": "REPLACE_WITH_CREDENTIAL_ID",
      "name": "cnpj.ia.br — Header Auth"
    }
  }
}

O fluxo consulta o perfil full, porque grava telefones e e-mail; para só validar cadastro, troque por profile=basic, que custa menos (Preços). A tabela abaixo conta mil consultas full. Erros não consomem créditos.

Custo em créditos

OperaçãoQuantidade por mil registrosPeso em créditosCréditos
Consulta por CNPJ, perfil full100066000
Total por mil registros6000

Atualizado em