APIBrasil no n8n e no Make sem código: CEP, CNPJ e WhatsApp

Capa do artigo APIBrasil no n8n e no Make sem código: CEP, CNPJ e WhatsApp

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érion8nMake
HospedagemNuvem ou self-hosted (Docker)Somente nuvem
CobrançaPor execução de fluxoPor operação de módulo
Nó para APIs RESTHTTP RequestHTTP > Make a request
Ponto forteControle e dados no seu servidorCatá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.

Infográfico com três automações da APIBrasil no n8n e no Make: CEP para planilha, CNPJ para CRM, pedido para WhatsApp, webhook como gatilho e log de erros

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.

Loading

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *