Usar a APIBrasil no n8n ou no Make resolve um problema comum em times pequenos: a consulta de CEP, CNPJ ou o aviso no WhatsApp já está pronta na API, mas ninguém tem tempo de escrever e manter um serviço só para ligar essa API à planilha, ao CRM ou à loja. Com um nó HTTP Request bem configurado, o fluxo inteiro vira uma tela de arrastar e conectar, sem deploy.
A APIBrasil funciona bem nesse cenário porque toda chamada segue o mesmo padrão: POST com JSON para https://gateway.apibrasil.io/api/v2, header Authorization com Bearer Token e uma resposta previsível com os campos error, message e data. Depois do primeiro nó, os outros são cópia com outro caminho e outro corpo.
Abaixo estão três automações completas (CEP para planilha, CNPJ para o CRM e pedido para WhatsApp) e o que fazer com erros, logs e limites para que o fluxo não pare de madrugada sem avisar.
Por que automatizar sem código (e quando não)
Ferramentas como n8n e Make brilham quando o fluxo é curto, tem gatilho claro e integra sistemas com conector pronto: Google Sheets, HubSpot, Pipedrive, Slack. Ali, montar e ajustar um fluxo leva minutos, e quem opera lê o que acontece sem abrir código.
O caminho deixa de compensar com volume alto e constante, lógica cheia de ramificações ou latência crítica, como em um OTP. Aí uma integração em Node.js ou PHP com fila própria fica mais simples de manter. Regra prática: comece no n8n ou no Make, meça, e migre para código só o fluxo que virou gargalo.
| Critério | n8n | Make |
|---|---|---|
| Hospedagem | Nuvem ou self-hosted (Docker) | Somente nuvem |
| Cobrança | Por execução de fluxo | Por operação de módulo |
| Nó para APIs REST | HTTP Request | HTTP > Make a request |
| Ponto forte | Controle e dados no seu servidor | Catálogo de apps e curva curta |
Autenticação: nó HTTP Request com Bearer Token
Tudo começa com um token gerado no painel da APIBrasil. Se é a sua primeira vez, o guia de primeiros passos com Bearer Token e homologação mostra onde criá-lo e como testar sem consumo. A regra vale para as duas ferramentas: o token nunca fica digitado no nó nem na URL; ele vai para uma credencial ou conexão que o nó apenas referencia.
No n8n
Crie uma credencial Header Auth com Name igual a Authorization e Value igual a Bearer mais o token. No nó HTTP Request, use Method POST, a URL completa do endpoint e, em Authentication, Generic Credential Type com a Header Auth criada. Em Send Body, marque JSON e cole o corpo com expressões. Para as APIs de WhatsApp, que exigem também o header DeviceToken, use a credencial Custom Auth, que aceita vários headers em JSON:
{
"headers": {
"Authorization": "Bearer SEU_TOKEN_AQUI",
"DeviceToken": "SEU_DEVICE_TOKEN_AQUI"
}
}
No Make
No módulo HTTP, Make a request, defina URL, Method POST e os headers Content-Type (application/json) e Authorization (Bearer e o token). Em Body type escolha Raw, em Content type escolha JSON e cole o corpo em Request content. Marque Parse response para mapear os campos da resposta nos módulos seguintes. Para tirar o token do cenário, o módulo Make an API Key Auth request guarda a chave em uma conexão; confira se ele aceita o header Authorization com o valor Bearer completo.
Antes de ligar qualquer gatilho, rode o nó isolado com homolog igual a true: as APIs de dados respondem de uma base fixa, sem cobrança, e você já vê a estrutura exata do JSON para mapear.
Fluxo 1: CEP digitado vira endereço completo na planilha
Cenário: um time de vendas preenche só o CEP em uma planilha de leads e quer rua, bairro, cidade e UF preenchidos sozinhos. No n8n, o fluxo tem três nós: Google Sheets Trigger (evento Row Added), HTTP Request e Google Sheets (operação Update Row, casando pela coluna de id). No Make, é Google Sheets Watch Rows, HTTP Make a request e Google Sheets Update a Row.
O endpoint é POST /consulta/cep/credits e o corpo informa o tipo de consulta e o CEP. No n8n, a expressão lê a coluna do gatilho:
{
"tipo": "cep",
"cep": "{{ $json.cep.replace(/\D/g, '') }}",
"homolog": false
}
Na resposta, os dados ficam em data.cep: logradouro e estado são strings, enquanto cidade e bairro são objetos com campos próprios (a cidade traz até o código IBGE). O mapeamento no n8n fica assim; no Make, troque $json pelo número do módulo HTTP, como 2.data.cep.logradouro:
Rua: {{ $json.data.cep.logradouro }}
Bairro: {{ $json.data.cep.bairro.bairro }}
Cidade: {{ $json.data.cep.cidade.cidade }}
UF: {{ $json.data.cep.estado }}
Código IBGE: {{ $json.data.cep.cidade.cidade_ibge }}
Entre o HTTP Request e a atualização da planilha, coloque um nó IF testando se error é false. Se for true, escreva a mensagem retornada em uma coluna de observação: quem digitou o CEP errado precisa saber disso.

Fluxo 2: CNPJ valida o lead antes de entrar no CRM
Cenário: um formulário do site recebe CNPJ e e-mail, e o time só quer no CRM empresas ativas, com razão social, CNAE e cidade preenchidos. O gatilho ideal é um webhook: o formulário (ou o próprio CRM) chama a URL do nó Webhook do n8n ou do módulo Custom webhook do Make a cada envio. Se gatilho por HTTP ainda é novidade, o guia de webhooks na prática explica o que acontece do outro lado da chamada e por que responder rápido importa.
O endpoint é POST /dados/cnpj/credits, com tipo igual a cnpj. Antes de chamar a API, limpe o CNPJ com uma expressão que remove pontos, barra e hífen; evita consulta cobrada em um valor que nem tem 14 dígitos:
{
"tipo": "cnpj",
"cnpj": "{{ $json.body.cnpj.replace(/\D/g, '') }}"
}
A resposta traz o cadastro em data.dados: situacao_cadastral, nome_fantasia, cnae_fiscal, o endereço em campos soltos (logradouro, numero, bairro, cep, uf) e o município em municipio.descricao. Razão social, porte e capital social vêm no objeto empresa, e a opção pelo Simples ou MEI no objeto simples. Confira os nomes exatos na página da API.
Um IF ramifica o fluxo: situação cadastral igual ao valor que a documentação mostra para empresa ativa segue para o nó do CRM (HubSpot, Pipedrive ou HTTP Request para a API do seu sistema), criando ou atualizando a empresa. Qualquer outra situação vira aviso com o motivo, e o lead entra em uma lista de revisão manual em vez de sumir.
Fluxo 3: pedido pago dispara aviso no WhatsApp
Cenário: a loja marca um pedido como pago e o cliente recebe uma mensagem com número do pedido e previsão de envio. O gatilho pode ser o webhook da loja, uma linha nova na planilha de pedidos ou um evento do ERP. O envio usa a API de WhatsApp da APIBrasil, cobrada por plano, que exige um dispositivo conectado no painel, de onde sai o DeviceToken.
O endpoint de texto é POST /whatsapp/sendText, com number (formato internacional, só dígitos) e text. A documentação mostra opções extras como time_typing; confira os campos na página da API. Um nó Set (n8n) ou um módulo de texto (Make) monta a mensagem antes da chamada:
{
"number": "{{ $json.telefone.replace(/\D/g, '') }}",
"text": "Oi, {{ $json.nome.split(' ')[0] }}! Recebemos o pagamento do pedido #{{ $json.pedido }}. Previsão de envio: {{ $json.previsao }}. Qualquer dúvida, responda por aqui."
}
Dois cuidados: consentimento (só dispare para quem aceitou receber avisos no WhatsApp no checkout, e registre a escolha) e ritmo (se o gatilho for uma importação com centenas de pedidos, use Loop Over Items com um nó Wait no n8n, ou Sleep no Make, para espaçar os envios).
O mesmo desenho serve para confirmação de agendamento, aviso de envio com rastreio e lembrete de carrinho. Quando a automação começa a receber respostas e vira atendimento, vale estruturar as mensagens automáticas no WhatsApp Business com horário, fila e transbordo para humano, para que ninguém fique preso em um robô sem saída.
Erros, logs e limites da APIBrasil no n8n e no Make
A armadilha número um ao usar a APIBrasil no n8n é confiar no status HTTP. A API pode responder 200 com error igual a true no corpo (token inválido, CEP inexistente, saldo insuficiente). Por isso todo fluxo precisa de um IF logo depois do HTTP Request avaliando o campo error, e a ramificação de falha escrevendo message em lugar visível.
- Retry com critério: Retry On Fail no n8n repete qualquer falha, inclusive 4xx. Mantenha Max Tries baixo e, em chamadas cobradas, trate a falha na saída de erro do nó e repita só em 5xx ou timeout.
- Saldo: HTTP 402 significa saldo insuficiente; repetir não resolve. Faça o fluxo parar e avisar.
- Log operacional: grave uma linha por chamada em uma aba de log com data, entrada, error, message e balance; é o que mostra consumo e erros sem abrir cada execução.
- Error Workflow: no n8n, um fluxo de erro global com o nó Error Trigger manda alerta no Slack ou e-mail; no Make, use error handlers (Resume, Ignore ou Break) por módulo e ative o armazenamento de execuções incompletas.
- Limites: cada execução no n8n Cloud e cada operação no Make contam para o plano; agrupe itens e evite polling frequente em planilhas que mudam pouco.
Para fluxos que vão para produção de verdade, as recomendações de boas práticas de integração com a APIBrasil em produção se aplicam igual: timeout definido, idempotência pelo id do registro e monitoramento do saldo.
Perguntas frequentes
Preciso de servidor para usar a APIBrasil no n8n?
Não. O n8n Cloud roda tudo na nuvem, e o Make é apenas nuvem. Se preferir manter dados no seu ambiente, o n8n pode ser instalado via Docker em qualquer VPS, e a chamada para a APIBrasil continua a mesma.
Posso colar o token direto no nó HTTP Request?
Funciona, mas é má prática: o token fica visível para quem edita o fluxo, aparece em exportações e capturas de tela. Use uma credencial Header Auth ou Custom Auth no n8n, e uma conexão no Make. Se um token vazar, revogue no painel e gere outro.
Como testar os fluxos sem gastar créditos?
Envie homolog igual a true no corpo das APIs de dados (CEP, CNPJ, CPF, placa). A resposta vem de uma base fixa, sem cobrança, com a mesma estrutura da resposta real. Para WhatsApp, teste enviando para o seu próprio número a partir do dispositivo conectado.
A chamada retornou HTTP 200, mas sem dados. O que aconteceu?
Quase sempre é erro de negócio retornado no corpo: confira error e message. CEP inexistente, CNPJ mal formatado ou saldo zerado chegam assim. Por isso o IF logo após o HTTP Request não é opcional.
Dá para usar o mesmo desenho com CPF, placa ou Correios?
Sim. Todas as APIs de crédito seguem o mesmo padrão de POST com JSON e Bearer Token; muda apenas o caminho e os campos do corpo. Duplique o nó HTTP Request, ajuste o endpoint conforme a documentação e remapeie os campos de data no passo seguinte.
Próximos passos
Monte o primeiro fluxo com homolog ativo, confirme o mapeamento dos campos e só então troque para consultas reais. Com os três desenhos prontos, o próximo ganho é juntar dois deles: validar o CNPJ do cliente e, no mesmo fluxo, avisar o vendedor no WhatsApp que o lead chegou qualificado.
![]()









