WAHA + Chatwoot: vários números de WhatsApp em um só painel
Se você precisa atender vários números de WhatsApp no mesmo lugar sem pagar por atendente, a combinação WAHA e Chatwoot é uma das opções mais estáveis que testei entre as APIs não oficiais. A WAHA roda no seu servidor, aceita quantas sessões você quiser e manda tudo para caixas de entrada do Chatwoot. Desde a versão 2026.6.1, isso tudo vem na versão gratuita.
Neste guia eu mostro como instalar a WAHA no Portainer, qual motor escolher, como ligar cada número a uma caixa do Chatwoot e quais são os limites, incluindo o risco de bloqueio que vem junto com qualquer API não oficial.
O que é a WAHA
WAHA vem de WhatsApp HTTP API. O projeto teve o primeiro release em 2022, então quando gravei o vídeo, em setembro de 2025, já tinha mais de três anos de mercado. A novidade naquele momento era a integração com o Chatwoot.
O que me chamou atenção foi poder escolher o motor, ou seja, a biblioteca que faz a conexão com o WhatsApp. No vídeo eu falo de três:
| Motor | Como funciona | Observação |
|---|---|---|
| WEBJS | Abre um navegador e emula o WhatsApp Web | Pesado, cerca de 500 MB por conexão, difícil de escalar |
| NOWEB | Conexão direta por WebSocket, linha da Baileys | Leve, mas a Baileys vinha com relatos de perda de mensagem |
| GOWS | Conexão direta, escrita em Go | A que eu uso: leve e sem relatos de perda de mensagem |
A documentação de motores da WAHA lista também outros motores. Você pode inclusive rodar mais de uma WAHA na mesma VPS, cada uma com um motor diferente.
Versão gratuita ou Plus: o que mudou
Quando gravei o vídeo, em setembro de 2025, a versão aberta da WAHA permitia uma sessão só e apenas texto, e a integração completa ficava na Plus, paga por assinatura, com imagem Docker privada liberada por chave.
Isso mudou. O anúncio oficial da WAHA 2026.6 diz que, desde a versão 2026.6.1, todos os recursos que exigiam a Plus estão na imagem gratuita e pública devlikeapro/waha: sessões ilimitadas, envio de mídia, armazenamento em PostgreSQL, MongoDB e S3, segurança e monitoramento. Os planos Core, Plus e PRO foram retirados, e ficou só um apoio opcional que, segundo a própria página, não libera nada extra.
Na prática, um único servidor com a WAHA atende vários números e até vários projetos sem assinatura. A imagem waha-plus ainda é publicada por um tempo para não quebrar quem já usa, mas para instalação nova a imagem gratuita basta.
Antes de instalar
- O Chatwoot já rodando na VPS. Se ainda não tem, veja como instalar o Chatwoot.
- O Portainer instalado.
- O Redis. Quem já tem o Chatwoot normalmente já tem o Redis rodando.
- Um subdomínio para a WAHA apontado para o servidor.
- Se for usar a imagem antiga
waha-plus, a chave em mãos. Com a imagem gratuitadevlikeapro/waha, não precisa de chave.
Passo a passo: instalando a WAHA no Portainer
- Escolha a imagem. Hoje use a imagem gratuita
devlikeapro/waha, que é pública e não pede registro. No vídeo eu uso awaha-plus, que exigia cadastrar em Registries no Portainer o usuário da WAHA e a sua chave como senha, porque a imagem era privada. Esse passo só vale se você ainda usa a imagem Plus. - Ajuste a stack. Coloque o seu subdomínio no domínio e no roteamento do Traefik. A stack sobe um PostgreSQL 17 separado, com o banco já criado, porque é a versão indicada na documentação.
- Troque as credenciais. Mude a chave de API, o usuário e a senha do painel. Se quiser, proteja a página do Swagger com senha também.
- Escolha o motor. Por padrão a stack já vem com o motor em Go. Para usar outro, troque o nome do motor.
- Ajuste o processamento, se precisar. A WAHA permite definir quantos jobs rodam ao mesmo tempo e as regras de limpeza de fila. Funciona parecido com o Chatwoot: para aguentar mais volume, não basta aumentar a memória, é preciso dar mais processamento para a API.
- Crie a stack e faça o deploy, com o Access Control desativado.
- Confira os containers. Nenhum pode ficar reiniciando. Olhe os logs para ver se subiu certo.
Ao abrir o subdomínio, aparece "not found". É normal. O painel fica em /dashboard e pede o usuário e a senha que você definiu.
Criando a sessão e lendo o QR Code
No painel, em Sessões, clique para iniciar uma nova, escolha o servidor e dê um nome. Ali também dá para configurar webhooks, proxy e modo debug. Use a opção de criar e já iniciar a sessão, depois abra a captura de tela para ver o QR Code e leia com o WhatsApp.
Repita para cada número. Como a WAHA não limita sessões, cada número vira uma sessão e, depois, uma caixa no Chatwoot.
Ligando a WAHA ao Chatwoot
A WAHA não cria a caixa de entrada sozinha, como a Evolution faz. Então você cria a caixa primeiro:
- No Chatwoot, vá em Caixas de entrada > Nova caixa > API.
- Dê um nome e cole a URL de webhook que o app da WAHA mostra. Troque a parte da URL base pelo endereço da sua WAHA. Se errar aqui, as mensagens que você responde não saem.
- Crie a caixa e escolha quem vai atendê-la.
- Anote o ID da caixa (aparece na URL do navegador) e o identificador da caixa de entrada (em Configurações da caixa).
Agora, no painel da WAHA, vá em Apps e adicione um app do Chatwoot:
- URL do Chatwoot, sem a barra no final.
- ID da conta (empresa) no Chatwoot.
- Token de acesso do usuário, que fica no fim da página de perfil do Chatwoot.
- ID da caixa e identificador da caixa de entrada.
- Idioma. Salve.
A WAHA manda uma notificação na própria caixa avisando que conectou. Nos testes, texto e áudio entraram e saíram normalmente. A página da integração WhatsApp e Chatwoot da WAHA tem a referência oficial dos campos.
Limitações que encontrei
Quando gravei, a WAHA mandava para o Chatwoot tudo o que acontecia no número: conversas, grupos e até os canais de notícia do WhatsApp. Não havia opção para desligar grupos ou canais. Isso enche a caixa de entrada, mas também permite criar automações para canais, se for o seu caso.
Também vi muitos pull requests abertos no GitHub do projeto, sinal de que a integração ainda estava sendo ajustada. Confira se a versão atual já resolve o filtro de grupos.
Criar a caixa à mão para cada número cansa quando são muitos. Dá para automatizar essa criação com n8n.
O lado honesto: risco de bloqueio e quando ir para a API oficial
A WAHA hoje é gratuita, mas continua sendo uma API não oficial. Ela conecta como se fosse o WhatsApp Web, o que vai contra os termos da Meta. Você não paga por mensagem, mas o número pode ser bloqueado, principalmente se fizer disparo em massa, encaminhar para muita gente ou pedir dados sensíveis na conversa.
E nenhuma versão muda o fato de que as bibliotecas por trás (WEBJS, Baileys e a do motor em Go) são de código aberto. Ninguém garante que nunca vai perder mensagem. Se o WhatsApp mudar algo, todas dependem de uma correção.
A API oficial é a escolha certa quando o número é o principal canal de venda, quando você precisa de disparo em volume ou quando perder o número custa caro. Ela cobra por mensagem, e eu explico os valores no artigo sobre o preço da API oficial do WhatsApp. Se quiser uma alternativa gratuita para comparar, veja como integrar a Evolution Go com o Chatwoot.
Perguntas frequentes
O que é a WAHA?
WAHA vem de WhatsApp HTTP API, uma API não oficial de WhatsApp que roda no seu servidor e aceita várias sessões. Ela permite escolher o motor de conexão e tem integração com o Chatwoot, mandando cada número para uma caixa de entrada.
A WAHA Plus é paga?
Não mais. Desde a versão 2026.6.1, todos os recursos que exigiam a Plus estão na imagem gratuita e pública devlikeapro/waha, incluindo sessões ilimitadas, envio de mídia e armazenamento em PostgreSQL, MongoDB e S3, e os planos pagos foram retirados.
Qual motor da WAHA usar?
O GOWS, escrito em Go, é leve e não tinha relatos de perda de mensagem. O WEBJS abre um navegador e consome cerca de 500 MB por conexão, e o NOWEB é leve mas usa a linha da Baileys, que vinha com relatos de perda de mensagem.
Como conectar a WAHA ao Chatwoot?
Primeiro crie no Chatwoot uma caixa de entrada do tipo API com a URL de webhook que a WAHA mostra. Depois, em Apps no painel da WAHA, adicione um app do Chatwoot com a URL do Chatwoot, o ID da conta, o token de acesso, o ID e o identificador da caixa e o idioma.
A WAHA tem risco de bloqueio do número?
Sim. Mesmo gratuita, a WAHA é uma API não oficial que conecta como o WhatsApp Web, o que vai contra os termos da Meta, e o risco aumenta com disparo em massa, encaminhamento para muita gente ou pedido de dados sensíveis.
Tem muitos números e pouco tempo para configurar?
O AstraChat é o nosso Chatwoot Pro e já traz uma tela de conexões que trabalha com várias APIs, além da API oficial, Kanban, agentes de IA, disparador, flows, chat interno, ligações pelo WhatsApp e white label. Ele roda no seu servidor e não cobra por atendente.
Ele vem na Comunidade Astra Online, com código-fonte, atualizações, grupo VIP e a primeira instalação feita pelo especialista em Chatwoot Raphael Popiolek. Quer só a WAHA instalada e ligada ao seu Chatwoot? Chame no WhatsApp e me diga quantos números você vai conectar.


