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.
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
- Definir CNPJ e contador: o CNPJ de entrada (o exemplo usa
00000000000191). - 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. - Resposta tem erro?: sem
body.error, segue para Selecionar dados da empresa. - Erro permite repetir?:
retryable: falsepara comcnpj.ia.br: <error.code>. - Repetir?: até 2 tentativas e
Retry-Afterde 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ção | Quantidade por mil registros | Peso em créditos | Créditos |
|---|---|---|---|
| Consulta por CNPJ, perfil full | 1000 | 6 | 6000 |
| Total por mil registros | 6000 |
Atualizado em