Baileys na prática: o que aprendemos operando um cluster não oficial
Operamos um cluster de instâncias não oficiais por anos antes de migrar os clientes para a Cloud API. O que quebrou, como quebrou e por que a falha mais cara não foi o banimento — foi o silêncio.

Escrito por
Equipe Joinotify
Publicado em
Leitura
9 min de leitura
Baileys é uma biblioteca que automatiza o WhatsApp Web: ela abre uma sessão como se fosse um navegador pareado e envia mensagens por ela. É gratuita, sobe em minutos e não pede aprovação de nada. Também viola os termos do WhatsApp, e a sessão que ela mantém é o ponto único de falha de qualquer operação construída em cima.
Este texto não é uma resenha: é o que aprendemos operando um cluster dessas instâncias em produção, com clientes pagantes, antes de migrá-los para a Cloud API.
O que funciona bem
Vale começar pelo que é verdade e costuma ser omitido por quem vende a alternativa:
- Sobe em minutos. Instala, lê o QR code, envia.
- Não cobra por mensagem. Para volume alto de notificação, a diferença de custo é de ordens de grandeza.
- Não exige aprovação de template. Você escreve e manda.
- Faz coisas que a API oficial não faz — grupos, principalmente.
Para um protótipo, um uso interno ou um volume baixo em número descartável, é difícil justificar outra coisa.
A falha que não aparece no monitoramento
A sessão do WhatsApp Web não sobrevive a um reboot. Isso está na documentação de qualquer projeto do tipo e todo mundo sabe — em tese.
No nosso cluster, dois servidores reiniciaram no mesmo dia. Naquele dia, 41 instâncias entraram em estado de reconexão e nunca mais voltaram sozinhas. A data da última atualização das 41 era idêntica. Descobrimos semanas depois, quando fomos medir o cluster para planejar a migração.
O serviço continuou de pé, respondendo às requisições de status, consumindo recursos e reportando saúde. Só não tinha sessão. Falha silenciosa é pior que queda: queda alguém percebe.
É o tipo de problema que não se resolve com mais monitoramento genérico. "O processo está rodando" e "o endpoint responde 200" continuavam verdadeiros. A pergunta certa — "esta instância tem sessão válida agora?" — precisa ser feita explicitamente, instância por instância.
O que quebra, em ordem de frequência
- Reboot do servidor. A sessão morre e não volta sem reconexão manual ou automação específica para isso.
- Atualização do aplicativo. A biblioteca corre atrás do protocolo, e existe uma janela em que ela simplesmente não funciona.
- Pareamento expirado. Sessões envelhecem e caem sem evento claro.
- Bloqueio do número. Sem aviso, sem prazo e sem recurso previsível.
Os três primeiros são operacionais e se mitigam com trabalho. O quarto não se mitiga: ele é consequência de automatizar o WhatsApp Web, que é o que a biblioteca faz por definição.
O custo que não estava na planilha
A conta que costuma justificar a escolha compara a tarifa da Meta por mensagem com zero. Ela ignora três linhas:
- Operação — servidores, reconexões, plantão para religar sessão, monitoramento específico.
- Perda por falha silenciosa — mensagens que a loja acredita ter enviado e não enviou.
- Substituição de número — quando o número que cai é o mesmo do atendimento, o custo não é o número: é o cliente que não consegue falar com você.
Foi a soma dessas três, e não o valor da tarifa, que nos levou a desligar o cluster e levar os clientes para a Cloud API.
Quando ainda faz sentido
Não é uma condenação. A biblioteca continua sendo a escolha certa em alguns casos:
- Prova de conceito que vai durar duas semanas.
- Automação interna, em número que não é o do negócio.
- Operação que depende de grupo, que a API oficial não atende de jeito nenhum.
- Volume alto de notificação em que a conta da API oficial comprovadamente não fecha.
O que muda a resposta é uma pergunta: se este número parar de funcionar amanhã, o que acontece com a empresa?
Se a decisão for migrar
A migração mantém o número, desde que ele não esteja bloqueado e a sessão antiga seja encerrada antes. O que não migra são os textos: na API oficial, mensagem que parte de você é template aprovado.
O passo a passo está em migrar para a API oficial sem perder o número, e a comparação critério a critério em API oficial x API não oficial.
Perguntas frequentes
Baileys é seguro?
O código é maduro e mantido. O risco não está nele: está no método, porque automatizar o WhatsApp Web viola os termos e expõe o número a bloqueio.
Dá para usar Baileys sem ser banido?
Dá para reduzir a probabilidade — volume baixo, opt-in, sem disparo em massa. Não dá para eliminar, porque a violação é o uso, não o conteúdo.
Qual a diferença entre Baileys e a Cloud API?
Baileys automatiza o WhatsApp Web por engenharia reversa; a Cloud API é a interface oficial da Meta, hospedada por ela, em que automatizar é o uso previsto e cada template iniciado é cobrado.
A sessão do Baileys pode ser persistida?
As credenciais podem ser salvas e recarregadas, o que ajuda. Não elimina o problema: a sessão ainda expira, ainda quebra em atualização e ainda precisa de reconexão vigiada.
