# OpenClaw en WhatsApp: cómo usarlo sin arriesgar tu número

> El canal de WhatsApp de OpenClaw vincula tu cuenta con Baileys. Por qué se aconseja un segundo número, cómo conseguirlo y cómo conectar un número gestionado por HTTP.

Source: https://whasp.ai/es/blog/openclaw-whatsapp-segundo-numero · 2026-10-20

## Lo esencial

- El canal de WhatsApp de OpenClaw funciona sobre WhatsApp Web con la librería Baileys y se vincula con un código QR, así que la cuenta de WhatsApp, y cualquier baneo, pertenece a quien sea dueño del número.
- La documentación de WhatsApp y de instalación de OpenClaw recomienda un segundo número dedicado por control de acceso y para evitar la confusión del self-chat, y no dice nada del riesgo de baneo, mientras que la propia página de ayuda de WhatsApp advierte de que vincular mediante apps no oficiales puede acabar en un baneo.
- Un segundo número puede ser una SIM de prepago, una eSIM o un número gestionado, y no encontramos documentación de WhatsApp sobre si los números virtuales se registran, así que trátalos como no confirmados.
- El canal de WhatsApp de OpenClaw no puede usar una API alojada como whasp, pero un puente corto a través del endpoint compatible con OpenAI del Gateway sí puede.
- Todo lo que permita que desconocidos escriban a un agente de OpenClaw debe ir a un agente dedicado con una política de herramientas restringida, porque sus mensajes son entrada no confiable.

El canal de WhatsApp de OpenClaw vincula tu gateway a una cuenta de WhatsApp como dispositivo vinculado, con la librería Baileys y un código QR. La cuenta es tuya, así que el baneo también. La documentación de OpenClaw recomienda un segundo número dedicado: una SIM, una eSIM o una línea de prepago. Si prefieres no ser dueño de ese número, uno gestionado puede conectarse por HTTP con un puente corto.

## ¿Cómo funciona el canal de WhatsApp de OpenClaw?

OpenClaw es un [gateway autoalojado](https://github.com/openclaw/openclaw) de código abierto (MIT) que conecta apps de chat con agentes de IA. Su [canal de WhatsApp](https://docs.openclaw.ai/channels/whatsapp) está "listo para producción mediante WhatsApp Web (Baileys)", según la propia documentación, y el gateway es dueño de la sesión vinculada y de su bucle de reconexión. La documentación afirma que no existe un canal de WhatsApp de Twilio aparte. Los datos de este artículo salen de la documentación y del repositorio de OpenClaw tal como estaban el 19 de octubre de 2026.

La instalación es corta:

1. Instala el plugin: `openclaw plugins install @openclaw/whatsapp`.
2. Vincula la cuenta: `openclaw channels login --channel whatsapp`. El inicio de sesión es solo por QR, así que en un servidor sin pantalla necesitas una forma fiable de hacer llegar el QR en vivo a tu teléfono.
3. Arranca el gateway con `openclaw gateway`.

El `dmPolicy` por defecto es `pairing`. Un remitente desconocido recibe una solicitud de emparejamiento, y tú la apruebas con `openclaw pairing approve whatsapp <CODE>`. Las solicitudes caducan a la hora y cada cuenta admite como máximo tres. Las otras políticas son `allowlist` (solo los números de `allowFrom`), `open` y `disabled`. El canal maneja chats directos, grupos, imágenes, vídeo, audio y documentos, y envía presencia de escritura mientras trabaja y confirmaciones de lectura por defecto.

La vinculación se hace escaneando desde un teléfono, así que el número vive en un teléfono, y OpenClaw va de acompañante como dispositivo vinculado. Ese detalle condiciona casi todo lo que sigue.

## ¿Por qué OpenClaw quiere un segundo número?

La documentación de OpenClaw recomienda un número dedicado por razones de control de acceso, y las propias páginas de WhatsApp describen un riesgo que las páginas de WhatsApp y de instalación de OpenClaw no tratan.

| Fuente | Qué dice |
| --- | --- |
| [Documentación de WhatsApp de OpenClaw](https://docs.openclaw.ai/channels/whatsapp) | Se recomienda un número aparte: listas de permitidos y enrutamiento más claros, menos confusión de self-chat. Un número personal funciona en modo self-chat. |
| [Guía de asistente personal de OpenClaw](https://docs.openclaw.ai/start/openclaw) | Usa un número dedicado. Requisito previo: "Un segundo número de teléfono (SIM/eSIM/prepago)". Vincular tu WhatsApp personal convierte en entrada del agente todos los mensajes que recibes. |
| [Issue 91 de OpenClaw](https://github.com/openclaw/openclaw/issues/91), 2 de enero de 2026 | Un usuario informó de que WhatsApp había baneado el número habitual que vinculó a OpenClaw, y supuso que la causa fue chatear consigo mismo. La respuesta fue que el onboarding incluiría una nota. El hilo no confirma una causa. |
| [WhatsApp: dispositivos vinculados](https://faq.whatsapp.com/378279804439436) | Vincular mediante apps o sitios web no oficiales "puede provocar un baneo temporal o permanente de la cuenta". |

La página de WhatsApp define las apps no oficiales como apps y sitios web falsos de WhatsApp creados por terceros, y no nombra ni a OpenClaw ni a Baileys. OpenClaw es un cliente de terceros que se vincula como dispositivo, así que da por hecho que la advertencia te afecta. Un segundo número limita el daño: si WhatsApp banea la cuenta, es el número del asistente y no el que usan tu familia y tus clientes.

El modo de número personal es una alternativa admitida. El onboarding escribe entonces `dmPolicy: "allowlist"`, tu propio número en `allowFrom` y `selfChatMode: true`, y la documentación avisa de que una comprobación de actividad enviada a tu propio número puede convertirse en entrada del agente salvo que pongas `selfChatMode: false`.

## ¿Cómo consigues el segundo número?

| Opción | Cómo funciona | Qué vigilar |
| --- | --- | --- |
| SIM de prepago en un teléfono de repuesto | La configuración con dos teléfonos de la guía de OpenClaw: registras WhatsApp en el teléfono de repuesto y escaneas desde él el QR de inicio de sesión | Los dispositivos vinculados se desconectan si el teléfono no se usa durante más de 14 días, así que mantenlo cargado y la SIM activa |
| eSIM | OpenClaw la menciona junto a la SIM y el prepago | La misma regla que una SIM de prepago, en un teléfono compatible |
| Número virtual (VoIP o alquiler para SMS) | Recibe el código de verificación en línea | No confirmado. No encontramos ninguna página de WhatsApp con los tipos de número aceptados, y un número que alquilas pueden quitártelo |
| Número gestionado | Un proveedor como whasp se encarga del teléfono y te da una API | No es un canal integrado de OpenClaw, mira más abajo. whasp cuesta $49 por número cada 30 días |

La regla de los 14 días sale de la página de dispositivos vinculados de WhatsApp, que también dice que los dispositivos vinculados funcionan con el teléfono sin conexión y se desconectan tras 30 días de inactividad. Si ya ejecutas OpenClaw con tu número personal, añade el asistente como una cuenta con nombre en lugar de reinstalar: `openclaw channels login --channel whatsapp --account assistant`. Las cuentas viven en `channels.whatsapp.accounts.<id>`, y cada una conserva sus propias credenciales.

## ¿Cómo evitas un baneo con OpenClaw?

Ningún ajuste está documentado como a prueba de baneos, y quien decide es WhatsApp. Estos hábitos encajan con lo que dicen la documentación y WhatsApp:

- **Usa una lista de permitidos.** Pon `dmPolicy: "allowlist"` y `allowFrom` con las personas que deben llegar al agente. El modo de emparejamiento por defecto ya te obliga a aprobar a los remitentes desconocidos.
- **Mantén ajustada la política de herramientas.** La guía de OpenClaw dice que un agente conectado puede, según la política, ejecutar comandos, usar archivos y escribir a personas en tu nombre. Un agente que escribe a gente que nunca le escribió es contacto en frío desde tu número, una de las señales que trata [Por qué WhatsApp banea números](https://whasp.ai/es/blog/motivos-baneo-numero-whatsapp).
- **Haz una copia antes de volver a vincular.** Copia `~/.openclaw/credentials/whatsapp/<accountId>`, luego `openclaw channels logout` y `openclaw channels login`, como describe la documentación de solución de problemas.
- **Calienta antes el número.** [Cómo calentar un número nuevo de WhatsApp](https://whasp.ai/es/blog/calentar-numero-whatsapp-nuevo) separa lo que se sabe de la práctica de la comunidad.

## ¿Puede OpenClaw usar un número gestionado como whasp?

No mediante el canal de WhatsApp. Ese canal es WhatsApp Web con Baileys, y la documentación de OpenClaw no lista ningún otro transporte de WhatsApp. whasp es una API HTTP: los mensajes entrantes llegan a tu webhook y una llamada a la API responde. Por eso OpenClaw no tiene una forma integrada de tomar a whasp como su WhatsApp. Sí tiene dos puertas documentadas.

**El endpoint compatible con OpenAI del Gateway.** El [`/v1/chat/completions`](https://docs.openclaw.ai/gateway/openai-http-api) de OpenClaw está desactivado por defecto y ejecuta un turno normal del agente. El campo `model` nombra a un agente (`openclaw/<agentId>`), y una cadena `user` de OpenAI da una sesión estable, así que las llamadas repetidas continúan una misma conversación. Un puente conecta los dos lados:

```js
import { createServer } from "node:http";
import { Webhook } from "standardwebhooks";

const wh = new Webhook(process.env.WHASP_WEBHOOK_SECRET); // whsec_... de whasp
const seen = new Set(); // deduplica por id de evento (usa un almacén real en producción)

async function askOpenClaw(user, text) {
  const res = await fetch(`${process.env.OPENCLAW_URL}/v1/chat/completions`, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.OPENCLAW_TOKEN}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      model: process.env.OPENCLAW_AGENT ?? "openclaw/default",
      user, // mismo valor por conversación = misma sesión de OpenClaw
      messages: [{ role: "user", content: text }],
    }),
  });
  if (!res.ok) throw new Error(`OpenClaw answered ${res.status}`);
  const data = await res.json();
  return data.choices?.[0]?.message?.content ?? "";
}

async function sendToWhasp(to, text, eventId) {
  const res = await fetch("https://api.whasp.ai/v1/messages", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.WHASP_API_KEY}`,
      "Content-Type": "application/json",
      "Idempotency-Key": eventId,
    },
    body: JSON.stringify({ to, text: text.slice(0, 4096) }),
  });
  if (!res.ok) throw new Error(`whasp answered ${res.status}`);
}

createServer(async (req, res) => {
  if (req.method !== "POST") return res.writeHead(405).end();
  const chunks = [];
  for await (const chunk of req) chunks.push(chunk);
  const body = Buffer.concat(chunks).toString("utf8"); // cuerpo en bruto, antes de parsear

  let event;
  try {
    event = wh.verify(body, req.headers);
  } catch {
    return res.writeHead(401).end();
  }
  res.writeHead(204).end(); // confirma ya, trabaja después

  if (event.type !== "message.received" || seen.has(event.id)) return;
  seen.add(event.id);
  const { number, chat, text } = event.data.message;
  if (!text || /^(STOP|UNSUBSCRIBE|OPTOUT|CANCEL|END|QUIT)$/.test(text.trim())) return; // whasp gestiona el opt-out

  try {
    const answer = await askOpenClaw(`whasp:${number}:${chat}`, text);
    if (answer) await sendToWhasp(chat, answer, event.id);
  } catch (err) {
    console.error(event.id, err.message);
  }
}).listen(8790);
```

Ejecutamos esto contra simulaciones de ambas APIs, construidas a partir de la documentación de OpenClaw y de whasp. No lo ejecutamos contra un gateway de OpenClaw real. Para usarlo, activa `gateway.http.endpoints.chatCompletions.enabled`, registra la URL HTTPS pública del puente con `PUT /v1/webhook` y define `WHASP_WEBHOOK_SECRET`, `WHASP_API_KEY`, `OPENCLAW_URL` (la documentación usa `http://127.0.0.1:18789`), `OPENCLAW_TOKEN` y `OPENCLAW_AGENT`. La comprobación de la firma y el manejo de duplicados se explican en [Webhook de WhatsApp: firma, reintentos y eventos duplicados](https://whasp.ai/es/blog/webhook-whatsapp-firma-reintentos-duplicados).

Tres cosas a vigilar. Primero, la documentación de OpenClaw llama a este endpoint acceso completo de operador al gateway: mantenlo en loopback o en una red privada, de modo que solo el puente pueda llamarlo. Segundo, los textos de desconocidos son entrada no confiable, así que apunta `OPENCLAW_AGENT` a un agente dedicado cuyas herramientas hayas restringido. El [README](https://github.com/openclaw/openclaw) de OpenClaw dice que trates los mensajes entrantes como entrada no confiable. Tercero, OpenClaw ahora ve un cliente de API genérico, no un canal de WhatsApp. Su emparejamiento, sus listas de permitidos, los grupos, las reacciones, la escritura y las notas de voz no se aplican, y whasp tiene sus propios límites: los usuarios escriben primero, y no hay grupos, indicadores de escritura ni notas de voz salientes.

**Un plugin de canal.** La documentación de OpenClaw dice que [construyas un plugin de canal](https://docs.openclaw.ai/plugins/sdk-channel-plugins) cuando integras una red de mensajería externa con su propia entrega por webhook o su propio transporte de salida. Eso da enrutamiento y control de acceso nativos, a cambio de escribir y mantener TypeScript contra el SDK de plugins. Nosotros no hemos construido ninguno.

## ¿Qué hacer ahora?

Elige la ruta según quién va a escribir al agente:

- **Solo tú.** Una SIM de prepago o una eSIM más el canal propio de OpenClaw es una configuración razonable, siempre que aceptes que el número es el riesgo. Deja `dmPolicy` en `allowlist`.
- **Unas pocas personas que conoces.** La misma configuración, con cada persona en `allowFrom` o aprobada mediante emparejamiento, y una política de herramientas con la que estarías cómodo si una de ellas fuera descuidada.
- **Clientes o desconocidos.** Pon la cuenta donde un baneo no toque tu propio número: un número gestionado a través del puente de arriba, o la WhatsApp Business Platform oficial si tu bot cumple los requisitos.

[APIs no oficiales de WhatsApp: Baileys, WAHA y Evolution](https://whasp.ai/es/blog/api-no-oficial-whatsapp-comparativa) expone las contrapartidas entre las opciones que ejecutas tú mismo, y el [servidor MCP de WhatsApp](https://whasp.ai/es/blog/servidor-mcp-whatsapp-claude-chatgpt) muestra otra forma de dar un número a un agente.

## Preguntas

### ¿Necesita OpenClaw un segundo número de WhatsApp?

No es obligatorio, porque OpenClaw admite un número personal en modo self-chat. Su documentación recomienda un número dedicado, y la página de ayuda de WhatsApp advierte de que vincular una cuenta mediante apps no oficiales puede provocar un baneo temporal o permanente.

### ¿Cómo se conecta OpenClaw a WhatsApp?

A través de WhatsApp Web, con la librería Baileys. Instalas el plugin @openclaw/whatsapp, ejecutas openclaw channels login --channel whatsapp y escaneas un código QR. El inicio de sesión es solo por QR, y el gateway conserva la sesión vinculada.

### ¿Puede OpenClaw usar la API de WhatsApp Business?

No en el canal de WhatsApp descrito en su documentación el 19 de octubre de 2026, que cubre WhatsApp Web con Baileys y afirma que no hay un canal de WhatsApp de Twilio aparte. OpenClaw tiene un SDK de plugins para construir tu propio canal.

### ¿Puedo usar un número virtual como segundo número de WhatsApp de OpenClaw?

No está confirmado. La guía de OpenClaw menciona una SIM, una eSIM o un número de prepago, y no encontramos ninguna página de WhatsApp que indique qué tipos de número acepta. Un número alquilado que no puedes conservar es un riesgo en sí mismo.

### ¿Puedo conectar OpenClaw a whasp?

No como canal integrado. whasp es una API HTTP con un webhook, así que lo conectas con un puente pequeño que envía cada mensaje entrante al endpoint compatible con OpenAI de OpenClaw y publica la respuesta de vuelta.
