Bot de WhatsApp banido ou sem responder: riscos e prevenção

Bots que usam bibliotecas não oficiais, como Baileys e whatsapp-web.js, podem violar os termos do WhatsApp e ser banidos a qualquer momento. A API oficial reduz o risco, mas não o elimina.

Atualizado em 6 min de leitura

Objetivos de aprendizado

Depois de ler este artigo, você vai conseguir:

  • Diferenciar número banido, sessão desconectada e bot travado
  • Entender o que leva o WhatsApp a banir um número
  • Aplicar práticas que reduzem o risco de ban
Nesta página

Quase todo mundo que roda um bot de WhatsApp um dia vê a mesma cena: o bot para de responder e vem a pergunta "me baniram?". Às vezes, sim. Muitas vezes, foi só a sessão que caiu. Confundir as duas coisas faz você perder tempo ou, pior, reconectar em loop um número que já estava sob suspeita.

Nenhuma prática garante imunidade contra ban. O que dá para fazer é diagnosticar direito e reduzir o risco.

Bot semresponderleia o logLogoutpareie de novoQueda de redereconecte comesperaProcesso caídoreinicie oprocessoBan do númeropare o bot e leiao aviso no app
Antes de supor ban, leia o log: logout, rede e processo caído têm conserto; ban aparece como aviso no próprio app.

O bot está banido ou só desconectado?#

Antes de concluir que é ban, confira o motivo da desconexão. Os sintomas se parecem, as causas não.

Sintoma Causa provável O que fazer
Processo no ar, mas sem eventos de mensagem Conexão travada Reiniciar o processo
Pede QR code de novo Sessão encerrada (logout) ou pasta de autenticação perdida Ver bot desconectando ou pedindo QR
Conecta e cai em loop Dois processos usando a mesma sessão, ou biblioteca desatualizada Rodar uma única instância e atualizar
Mensagens não chegam e o app mostra aviso na conta Restrição ou ban do número Ver as seções abaixo
Cloud API recusa o envio Fora da janela de 24 horas ou template não aprovado Ver a seção da API oficial

Com a Baileys, o evento connection.update informa por que a conexão fechou. O código abaixo distingue logout de queda de conexão:

js
import makeWASocket, { DisconnectReason, useMultiFileAuthState } from "@whiskeysockets/baileys";
import QRCode from "qrcode";

async function start() {
  const { state, saveCreds } = await useMultiFileAuthState("auth");
  const sock = makeWASocket({ auth: state });

  sock.ev.on("creds.update", saveCreds);
  sock.ev.on("connection.update", async ({ connection, lastDisconnect, qr }) => {
    if (qr) console.log(await QRCode.toString(qr, { type: "terminal", small: true }));
    if (connection !== "close") return;
    const code = lastDisconnect?.error?.output?.statusCode;
    if (code === DisconnectReason.loggedOut) {
      console.error("Sessão encerrada. Apague a pasta auth e pareie de novo.");
    } else {
      console.error("Conexão caiu (código %s). Reconectando.", code);
      start();
    }
  });
}

start();

O código usa a Baileys 7 (npm install @whiskeysockets/baileys qrcode), que só funciona como ES module: o package.json precisa ter "type": "module". A opção printQRInTerminal das versões antigas foi descontinuada, por isso o QR vem do campo qr do connection.update. Se você está migrando da versão 6, consulte o repositório da Baileys.

Se o log mostra logout e o app do celular abre normalmente, o número provavelmente não foi banido: só a sessão caiu. Se o próprio app do WhatsApp mostra aviso de conta restrita ou banida, aí sim é ban.

Por que o WhatsApp bane bots?#

Os termos de serviço do WhatsApp listam, entre os usos não permitidos, o envio de comunicações impermissíveis como "bulk messaging, auto-messaging, auto-dialing" e a criação de contas por meios automatizados não autorizados. Também proíbem fazer engenharia reversa dos serviços e criar software que funcione de forma substancialmente igual a eles. O WhatsApp afirma que pode suspender ou encerrar o acesso a qualquer momento.

Bibliotecas como Baileys e whatsapp-web.js funcionam imitando o cliente oficial. O README da Baileys diz que o projeto não tem vínculo com o WhatsApp e que os mantenedores não apoiam uso que viole os termos, como spam. Ou seja: a própria biblioteca avisa que o risco é seu.

Na prática, o que mais pesa:

  1. Envio para quem não pediu. Lista comprada, grupos adicionados à força, mensagem fria.
  2. Denúncias e bloqueios. Cada "bloquear" ou "denunciar" conta contra o número.
  3. Volume e ritmo. Centenas de mensagens idênticas em poucos minutos, sem pausa nem variação.
  4. Número novo fazendo muito. Chip recém-ativado que dispara logo no primeiro dia.
  5. Sessões duplicadas. O mesmo número conectado em dois lugares ao mesmo tempo.

O WhatsApp não publica os limiares exatos, então qualquer "limite seguro de mensagens por hora" que você ler por aí é palpite. Os itens 3 a 5 também são a experiência comum de quem opera bots, não regra documentada.

A API oficial protege contra ban?#

Ela elimina o risco de usar um cliente não autorizado, não o de se comportar mal. A política do WhatsApp Business diz que você só pode contatar pessoas que forneceram o contato e concordaram em receber suas mensagens (opt-in). Usuários podem bloquear e denunciar empresas, e o WhatsApp pode limitar o volume de mensagens com base nesse feedback. Em casos graves, o acesso pode ser restrito ou removido, e contas encerradas podem ficar impedidas de usar produtos do WhatsApp no futuro.

A Cloud API também impõe uma regra técnica que parece "bot quebrado" para quem não a conhece: a janela de atendimento. Segundo a documentação da Meta, a janela de 24 horas começa quando o usuário manda mensagem ou liga, e depois que ela fecha só é possível enviar templates pré-aprovados. Se o seu bot "parou de responder" um dia depois da última mensagem do cliente, pode ser só isso.

Para comparar as três opções em detalhe, veja Baileys, whatsapp-web.js ou API oficial.

Como reduzir o risco de ban?#

  • Use um número dedicado ao bot, nunca o seu pessoal ou o principal da empresa.
  • Só envie para quem pediu. Registre o opt-in e ofereça um jeito claro de sair.
  • Responda, não dispare. Bots que respondem a mensagens recebidas têm um perfil bem diferente de bots de disparo.
  • Espalhe e varie o envio. Intervalos aleatórios, texto não idêntico, sem rajadas.
  • Trate "pare" e "sair" como comando. Quem pede para sair e continua recebendo tende a denunciar.
  • Mantenha uma única instância por número, com a pasta de autenticação persistente.
  • Atualize a biblioteca. Versões antigas do protocolo desconectam com frequência.
  • Para volume comercial, migre para a Cloud API, o caminho previsto para empresas. Veja também como criar um bot de WhatsApp.

O que fazer se o número foi banido?#

  1. Pare o bot. Reconectar em loop só piora.
  2. Abra o app do WhatsApp no celular e leia a mensagem exata que ele mostra.
  3. Se for conta comercial, procure o recurso indicado na Central de Ajuda e nas páginas de política do WhatsApp Business.
  4. Corrija a causa (lista, volume, denúncias) antes de colocar um número novo no ar, ou ele tende a ter o mesmo destino.

Desconfie de quem vende "serviço de desban": o WhatsApp não indica revendedores para isso.

Como fazer isso na Square Cloud#

A hospedagem não protege nem expõe seu número a ban: isso depende do seu comportamento e da biblioteca. O que a hospedagem resolve é a estabilidade, e isso evita muitos alarmes falsos de ban. Veja também como hospedar um bot de WhatsApp 24/7.

Na Square Cloud, o container fica sempre ligado, com reinício automático (ligado por padrão no deploy pelo painel) quando o processo encerra com erro. A pasta de autenticação fica no disco da aplicação, então a sessão continua conectada depois de um restart, sem pedir QR code de novo. Você acompanha os logs em tempo real no painel, na CLI, no VS Code ou no app de celular e vê o motivo de cada desconexão. Baileys, WPPConnect, whatsapp-web.js e a Cloud API oficial são suportados.

Um bot pequeno cabe no plano Hobby (R$ 12,49 por mês, 1 GB de RAM), com mínimo de 256 MB por aplicação de fundo. Veja os detalhes em bots de WhatsApp na Square Cloud.

Hospedagem de bots

Seu bot online 24/7, com reinício automático

Saiba mais

Perguntas frequentes

Todo bot com Baileys ou whatsapp-web.js é banido?

Não. Mas essas bibliotecas não são oficiais e o uso delas pode violar os termos do WhatsApp, então o risco existe sempre. Ele cresce com envio em massa, mensagens para quem não pediu e denúncias.

A API oficial (Cloud API) impede o ban?

Não. Ela é o caminho permitido, mas a Meta pode limitar ou remover o acesso de quem recebe muitos bloqueios e denúncias ou viola a política. A diferença é que você segue as regras da plataforma.

Meu bot parou de responder. Fui banido?

Nem sempre. O mais comum é a sessão ter sido encerrada (logout), o celular principal ter ficado muito tempo inativo ou o processo ter caído. Verifique o log de desconexão antes de supor ban.

Posso recuperar um número banido?

Depende do caso e não há garantia. A política do WhatsApp Business remete a informações de recurso na Central de Ajuda. Por isso nunca use seu número principal em um bot.

Próximo artigoBot de WhatsApp desconectando ou pedindo QR code de novoBot de WhatsApp que desconecta ou pede QR code de novo quase sempre perdeu a sessão. Veja as causas, como ler o código de desconexão do Baileys e como corrigir.