Bot de WhatsApp baneado o sin responder: riesgos y prevención

Los bots que usan librerías no oficiales, como Baileys y whatsapp-web.js, pueden violar los términos de WhatsApp y ser baneados en cualquier momento. La API oficial reduce el riesgo, pero no lo elimina.

Actualizado el 6 min de lectura

Objetivos de aprendizaje

Después de leer este artículo podrás:

  • Distinguir un número baneado, una sesión desconectada y un bot colgado
  • Entender qué lleva a WhatsApp a banear un número
  • Aplicar prácticas que reducen el riesgo de baneo
En esta página

Casi todos los que tienen un bot de WhatsApp ven algún día la misma escena: el bot deja de responder y surge la pregunta "¿me banearon?". A veces, sí. Muchas veces, solo se cayó la sesión. Confundir las dos cosas te hace perder tiempo o, peor, reconectar en bucle un número que ya estaba bajo sospecha.

Ninguna práctica da inmunidad contra el baneo. Lo que sí puedes hacer es diagnosticar bien y reducir el riesgo.

Bot sinresponderlee el logLogoutvincula de nuevoCaída de redreconecta conesperaProceso caídoreinicia elprocesoBaneo del númerodetén el bot y leeel aviso en la app
Antes de suponer un baneo, lee el log: logout, red y proceso caído tienen arreglo; el baneo aparece como aviso en la app.

¿El bot está baneado o solo desconectado?#

Antes de concluir que es un baneo, revisa el motivo de la desconexión. Los síntomas se parecen, las causas no.

Síntoma Causa probable Qué hacer
Proceso en línea, pero sin eventos de mensaje Conexión colgada Reiniciar el proceso
Vuelve a pedir el código QR Sesión cerrada (logout) o carpeta de autenticación perdida Ver bot que se desconecta o pide el QR
Conecta y se cae en bucle Dos procesos usando la misma sesión, o librería desactualizada Ejecutar una sola instancia y actualizar
Los mensajes no llegan y la app muestra un aviso en la cuenta Restricción o baneo del número Ver las secciones de abajo
La Cloud API rechaza el envío Fuera de la ventana de 24 horas o plantilla no aprobada Ver la sección de la API oficial

Con Baileys, el evento connection.update indica por qué se cerró la conexión. Este código distingue un logout de una caída de conexión:

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("Sesión cerrada. Borra la carpeta auth y vuelve a vincular.");
    } else {
      console.error("Se cayó la conexión (código %s). Reconectando.", code);
      start();
    }
  });
}

start();

El código usa Baileys 7 (npm install @whiskeysockets/baileys qrcode), que solo funciona como ES module: el package.json necesita "type": "module". La opción printQRInTerminal de las versiones antiguas está obsoleta, por eso el QR sale del campo qr de connection.update. Si estás migrando desde la versión 6, consulta el repositorio de Baileys.

Si el log muestra un logout y la app del teléfono abre con normalidad, probablemente el número no fue baneado: solo se cayó la sesión. Si la propia app de WhatsApp muestra un aviso de cuenta restringida o baneada, entonces sí es un baneo.

¿Por qué WhatsApp banea bots?#

Los términos de servicio de WhatsApp enumeran, entre los usos no permitidos, el envío de comunicaciones no admisibles como "bulk messaging, auto-messaging, auto-dialing" y la creación de cuentas por medios automatizados no autorizados. También prohíben hacer ingeniería inversa de los servicios y crear software que funcione de forma sustancialmente igual a ellos. WhatsApp afirma que puede suspender o cancelar el acceso en cualquier momento.

Librerías como Baileys y whatsapp-web.js funcionan imitando al cliente oficial. El README de Baileys dice que el proyecto no tiene vínculo con WhatsApp y que sus mantenedores no apoyan usos que violen los términos, como el spam. Es decir: la propia librería te avisa de que el riesgo es tuyo.

En la práctica, lo que más pesa:

  1. Enviar a quien no lo pidió. Listas compradas, gente añadida a grupos a la fuerza, mensajes en frío.
  2. Denuncias y bloqueos. Cada "bloquear" o "denunciar" cuenta en contra del número.
  3. Volumen y ritmo. Cientos de mensajes idénticos en pocos minutos, sin pausas ni variación.
  4. Un número nuevo haciendo demasiado. Una SIM recién activada que dispara mensajes el primer día.
  5. Sesiones duplicadas. El mismo número conectado en dos lugares a la vez.

WhatsApp no publica los umbrales exactos, así que cualquier "límite seguro de mensajes por hora" que leas por ahí es una suposición. Los puntos 3 a 5 también reflejan la experiencia común de quien opera bots, no reglas documentadas.

¿La API oficial protege contra el baneo?#

Elimina el riesgo de usar un cliente no autorizado, no el de comportarse mal. La política de WhatsApp Business dice que solo puedes contactar a personas que te dieron su contacto y aceptaron recibir tus mensajes (opt-in). Los usuarios pueden bloquear y denunciar a las empresas, y WhatsApp puede limitar el volumen de mensajes según esos comentarios. En casos graves, el acceso puede restringirse o retirarse, y las cuentas canceladas pueden quedar excluidas de los productos de WhatsApp en el futuro.

La Cloud API impone además una regla técnica que parece un "bot roto" si no la conoces: la ventana de atención. Según la documentación de Meta, la ventana de 24 horas empieza cuando el usuario te escribe o te llama, y cuando se cierra solo puedes enviar plantillas aprobadas previamente. Si tu bot "dejó de responder" un día después del último mensaje del cliente, puede que sea solo eso.

Para comparar las tres opciones en detalle, mira Baileys, whatsapp-web.js o la API oficial.

¿Cómo reducir el riesgo de baneo?#

  • Usa un número dedicado al bot, nunca el tuyo personal ni el principal de la empresa.
  • Envía solo a quien lo pidió. Registra el opt-in y ofrece una forma clara de darse de baja.
  • Responde, no dispares. Los bots que responden a mensajes recibidos tienen un perfil muy distinto al de los bots de difusión.
  • Reparte y varía los envíos. Intervalos aleatorios, texto no idéntico, sin ráfagas.
  • Trata "basta" y "salir" como comandos. Quien pide salir y sigue recibiendo mensajes tiende a denunciar.
  • Mantén una sola instancia por número, con la carpeta de autenticación persistente.
  • Actualiza la librería. Las versiones antiguas del protocolo se desconectan con frecuencia.
  • Para volumen comercial, migra a la Cloud API, el camino previsto para empresas. Mira también cómo crear un bot de WhatsApp.

¿Qué hacer si el número fue baneado?#

  1. Detén el bot. Reconectar en bucle solo lo empeora.
  2. Abre la app de WhatsApp en el teléfono y lee el mensaje exacto que muestra.
  3. Si es una cuenta comercial, busca la vía de apelación indicada en el Centro de ayuda y en las páginas de política de WhatsApp Business.
  4. Corrige la causa (lista, volumen, denuncias) antes de poner en línea un número nuevo, o probablemente tendrá el mismo destino.

Desconfía de quien vende un "servicio de desbaneo": WhatsApp no recomienda revendedores para eso.

Cómo hacerlo en Square Cloud#

El hosting no protege tu número del baneo ni lo expone a él: eso depende de tu comportamiento y de la librería. Lo que resuelve el hosting es la estabilidad, y eso evita muchas falsas alarmas de baneo. Mira también cómo alojar un bot de WhatsApp 24/7.

En Square Cloud, el contenedor está siempre encendido, con reinicio automático (activado por defecto en el deploy desde el panel) cuando el proceso termina con error. La carpeta de autenticación queda en el disco de la aplicación, así que la sesión sigue conectada después de un reinicio, sin volver a pedir el código QR. Sigues los logs en tiempo real en el panel, la CLI, VS Code o la app móvil, y ves el motivo de cada desconexión. Baileys, WPPConnect, whatsapp-web.js y la Cloud API oficial son compatibles.

Un bot pequeño cabe en el plan Hobby (R$12,49 al mes, 1 GB de RAM), con un mínimo de 256 MB por aplicación en segundo plano. Los detalles están en bots de WhatsApp.

Hosting de bots

Tu bot en línea 24/7, con reinicio automático

Más información

Preguntas frecuentes

¿Todo bot con Baileys o whatsapp-web.js termina baneado?

No. Pero estas librerías no son oficiales y usarlas puede violar los términos de WhatsApp, así que el riesgo siempre existe. Crece con los envíos masivos, los mensajes a quien no los pidió y las denuncias.

¿La API oficial (Cloud API) impide el baneo?

No. Es el camino permitido, pero Meta puede limitar o retirar el acceso a quien recibe muchos bloqueos y denuncias o viola la política. La diferencia es que sigues las reglas de la plataforma.

Mi bot dejó de responder. ¿Me banearon?

No siempre. Lo más común es que la sesión se haya cerrado (logout), que el teléfono principal haya estado inactivo demasiado tiempo o que el proceso se haya caído. Revisa el log de desconexión antes de suponer un baneo.

¿Puedo recuperar un número baneado?

Depende del caso y no hay garantía. La política de WhatsApp Business remite a la información de apelación en el Centro de ayuda. Por eso nunca uses tu número principal en un bot.

Siguiente artículoBot de WhatsApp se desconecta: sesión y código QRUn bot de WhatsApp que se desconecta o vuelve a pedir el QR casi siempre perdió la sesión. Conoce las causas, los códigos de Baileys y cómo corregirlas.