# OpenClaw no WhatsApp sem arriscar o seu próprio número

> O canal de WhatsApp do OpenClaw vincula sua conta pelo Baileys. Veja por que ele pede um segundo número, como conseguir um e como ligar um número gerenciado por HTTP.

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

## O essencial

- O canal de WhatsApp do OpenClaw roda no WhatsApp Web pela biblioteca Baileys e se vincula com um QR code, então a conta de WhatsApp, e qualquer banimento, é de quem é dono do número.
- As páginas de WhatsApp e de configuração do OpenClaw recomendam um segundo número dedicado, por controle de acesso e para evitar confusão com o chat consigo mesmo, e não dizem nada sobre risco de banimento, enquanto a página de ajuda do próprio WhatsApp avisa que vincular a conta por apps não oficiais pode levar ao banimento.
- Um segundo número pode ser um chip pré-pago, um eSIM ou um número gerenciado, e não encontramos nenhuma documentação do WhatsApp sobre se números virtuais conseguem se registrar, então trate-os como não confirmados.
- O canal de WhatsApp do OpenClaw não consegue usar uma API hospedada como a whasp, mas uma ponte curta pelo endpoint compatível com a OpenAI do Gateway consegue.
- Tudo o que deixa desconhecidos mandarem mensagem a um agente do OpenClaw deve ir para um agente dedicado, com uma política de ferramentas restrita, porque as mensagens deles são entrada não confiável.

O canal de WhatsApp do OpenClaw liga o seu gateway a uma conta de WhatsApp como dispositivo vinculado, usando a biblioteca Baileys e um QR code. A conta é sua, então um banimento também é seu. A documentação do OpenClaw recomenda um segundo número dedicado: um chip, um eSIM ou uma linha pré-paga. Se você prefere não ser dono desse número, um número gerenciado pode se conectar por HTTP com uma ponte curta.

## Como funciona o canal de WhatsApp do OpenClaw?

O OpenClaw é um [gateway auto-hospedado](https://github.com/openclaw/openclaw) de código aberto (MIT) que conecta apps de chat a agentes de IA. O [canal de WhatsApp](https://docs.openclaw.ai/channels/whatsapp) dele é "production-ready via WhatsApp Web (Baileys)", nas palavras da documentação, e o gateway é dono da sessão vinculada e do loop de reconexão. A documentação afirma que não existe um canal separado de WhatsApp pela Twilio. Os fatos deste artigo vêm da documentação e do repositório do OpenClaw lidos em 19 de outubro de 2026.

A configuração é curta:

1. Instale o plugin: `openclaw plugins install @openclaw/whatsapp`.
2. Vincule a conta: `openclaw channels login --channel whatsapp`. O login é só por QR, então em um servidor sem tela você precisa de um jeito confiável de levar o QR ao vivo até o seu celular.
3. Inicie o gateway com `openclaw gateway`.

O `dmPolicy` padrão é `pairing`. Um remetente desconhecido recebe um pedido de pareamento, e você o aprova com `openclaw pairing approve whatsapp <CODE>`. Os pedidos expiram depois de uma hora e cada conta comporta no máximo três. As outras políticas são `allowlist` (só os números em `allowFrom`), `open` e `disabled`. O canal trata chats diretos, grupos, imagens, vídeo, áudio e documentos, e envia presença de digitação enquanto trabalha e confirmações de leitura por padrão.

A vinculação acontece escaneando com um celular, então o número mora em um celular, e o OpenClaw vai junto como dispositivo vinculado. Esse detalhe explica a maior parte do que vem a seguir.

## Por que o OpenClaw quer um segundo número?

A documentação do OpenClaw recomenda um número dedicado por motivos de controle de acesso, e as páginas do próprio WhatsApp descrevem um risco que as páginas de WhatsApp e de configuração do OpenClaw não discutem.

| Fonte | O que diz |
| --- | --- |
| [Documentação de WhatsApp do OpenClaw](https://docs.openclaw.ai/channels/whatsapp) | Recomenda-se um número separado: listas de permissão e roteamento mais claros, menos confusão com o chat consigo mesmo. Um número pessoal funciona no modo self-chat. |
| [Guia de assistente pessoal do OpenClaw](https://docs.openclaw.ai/start/openclaw) | Use um número dedicado. Pré-requisito: "A second phone number (SIM/eSIM/prepaid)". Vincular o seu WhatsApp pessoal faz de toda mensagem enviada a você uma entrada do agente. |
| [Issue 91 do OpenClaw](https://github.com/openclaw/openclaw/issues/91), 2 de janeiro de 2026 | Um usuário relatou que o WhatsApp baniu o número normal que ele vinculou ao OpenClaw, e supôs que a causa foi conversar consigo mesmo. A resposta foi que o onboarding ganharia um aviso. A thread não confirma uma causa. |
| [WhatsApp: dispositivos vinculados](https://faq.whatsapp.com/378279804439436) | Vincular por apps ou sites não oficiais pode resultar em banimento temporário ou permanente da conta. |

A página do WhatsApp define apps não oficiais como apps e sites falsos do WhatsApp feitos por terceiros, e não cita nem o OpenClaw nem o Baileys. O OpenClaw é um cliente de terceiros que se vincula como dispositivo, então parta do princípio de que o aviso vale para você. Um segundo número limita o estrago: se o WhatsApp banir a conta, ela é o número do assistente, e não aquele que a sua família e os seus clientes usam.

O modo com número pessoal é uma alternativa suportada. O onboarding então grava `dmPolicy: "allowlist"`, o seu próprio número em `allowFrom` e `selfChatMode: true`, e a documentação avisa que uma checagem de funcionamento enviada ao seu próprio número pode virar entrada do agente, a menos que você defina `selfChatMode: false`.

## Como conseguir o segundo número?

| Opção | Como funciona | O que observar |
| --- | --- | --- |
| Chip pré-pago em um celular reserva | A configuração com dois celulares do guia do OpenClaw: registre o WhatsApp no celular reserva e escaneie dele o QR do login | Os dispositivos vinculados são desconectados se o celular ficar sem uso por mais de 14 dias, então mantenha-o carregado e o chip ativo |
| eSIM | Listado pelo OpenClaw ao lado de SIM e pré-pago | Mesma regra do chip pré-pago, em um celular compatível |
| Número virtual (VoIP ou aluguel de SMS) | Recebe o código de verificação online | Não confirmado. Não encontramos nenhuma página do WhatsApp com os tipos de número aceitos, e um número alugado pode ser tomado de volta |
| Número gerenciado | Um provedor como a whasp opera o celular e entrega uma API | Não é um canal nativo do OpenClaw, veja abaixo. A whasp custa $49 por número a cada 30 dias |

A regra dos 14 dias vem da página de dispositivos vinculados do WhatsApp, que também diz que os dispositivos vinculados funcionam sem o celular online e são desconectados depois de 30 dias de inatividade. Se você já roda o OpenClaw no seu número pessoal, adicione o assistente como uma conta nomeada em vez de reinstalar: `openclaw channels login --channel whatsapp --account assistant`. As contas ficam em `channels.whatsapp.accounts.<id>`, e cada uma guarda as próprias credenciais.

## Como não ser banido usando o OpenClaw?

Nenhuma configuração está documentada como à prova de banimento, e quem decide é o WhatsApp. Estes hábitos combinam com o que a documentação e o WhatsApp dizem:

- **Use uma allowlist.** Defina `dmPolicy: "allowlist"` e `allowFrom` com as pessoas que devem chegar ao agente. O modo `pairing` padrão já faz você aprovar remetentes desconhecidos.
- **Mantenha a política de ferramentas restrita.** O guia do OpenClaw diz que um agente conectado pode, dependendo da política, rodar comandos, usar arquivos e mandar mensagens para pessoas em seu nome. Um agente que escreve para quem nunca escreveu para ele é abordagem fria a partir do seu número, um dos sinais que [Motivos de banimento no WhatsApp: por que ele bane números](https://whasp.ai/pt/blog/motivos-banimento-whatsapp-numero) cobre.
- **Faça backup antes de vincular de novo.** Copie `~/.openclaw/credentials/whatsapp/<accountId>`, depois rode `openclaw channels logout` e `openclaw channels login`, como descreve a documentação de solução de problemas.
- **Aqueça o número primeiro.** [Como aquecer um número novo de WhatsApp](https://whasp.ai/pt/blog/aquecer-numero-whatsapp-aquecimento-chip) separa o que é sabido da prática da comunidade.

## O OpenClaw pode usar um número gerenciado como a whasp?

Não pelo canal de WhatsApp. Esse canal é o WhatsApp Web pelo Baileys, e a documentação do OpenClaw não lista nenhum outro transporte de WhatsApp. A whasp é uma API HTTP: as mensagens recebidas chegam ao seu webhook e uma chamada de API responde. Então o OpenClaw não tem um jeito nativo de usar a whasp como o seu WhatsApp. Ele tem duas portas documentadas.

**O endpoint compatível com a OpenAI do Gateway.** O [`/v1/chat/completions`](https://docs.openclaw.ai/gateway/openai-http-api) do OpenClaw vem desativado por padrão e roda um turno normal de agente. O campo `model` nomeia um agente (`openclaw/<agentId>`), e uma string `user` da OpenAI dá uma sessão estável, então chamadas repetidas continuam uma única conversa. Uma ponte liga os dois lados:

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

const wh = new Webhook(process.env.WHASP_WEBHOOK_SECRET); // whsec_... da whasp
const seen = new Set(); // deduplica pelo id do evento (use um armazenamento de verdade em produção)

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, // mesmo valor por conversa = mesma sessão do 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"); // corpo bruto, antes do parse

  let event;
  try {
    event = wh.verify(body, req.headers);
  } catch {
    return res.writeHead(401).end();
  }
  res.writeHead(204).end(); // confirma agora, trabalha depois

  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; // a whasp trata o 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);
```

Rodamos este código contra simulações das duas APIs (stubs), montadas a partir da documentação do OpenClaw e da whasp. Não rodamos contra um gateway OpenClaw de verdade. Para usar, ative `gateway.http.endpoints.chatCompletions.enabled`, registre a URL HTTPS pública da ponte com `PUT /v1/webhook` e defina `WHASP_WEBHOOK_SECRET`, `WHASP_API_KEY`, `OPENCLAW_URL` (a documentação usa `http://127.0.0.1:18789`), `OPENCLAW_TOKEN` e `OPENCLAW_AGENT`. A checagem da assinatura e o tratamento de duplicatas estão explicados em [Webhook do WhatsApp: assinatura, novas tentativas e duplicatas](https://whasp.ai/pt/blog/webhook-whatsapp-assinatura-tentativas-duplicatas).

Três pontos de atenção. Primeiro, a documentação do OpenClaw chama este endpoint de acesso total de operador ao gateway: mantenha-o em loopback ou em uma rede privada, para que só a ponte consiga chamá-lo. Segundo, textos de desconhecidos são entrada não confiável, então aponte `OPENCLAW_AGENT` para um agente dedicado, com ferramentas restritas por você. O [README](https://github.com/openclaw/openclaw) do OpenClaw manda tratar as mensagens recebidas como entrada não confiável. Terceiro, o OpenClaw agora enxerga um cliente de API genérico, não um canal de WhatsApp. O pareamento, as allowlists, os grupos, as reações, a digitação e as mensagens de voz dele não se aplicam, e a whasp tem seus próprios limites: os usuários escrevem primeiro, e não há grupos, indicadores de digitação nem mensagens de voz de saída.

**Um plugin de canal.** A documentação do OpenClaw diz para [criar um plugin de canal](https://docs.openclaw.ai/plugins/sdk-channel-plugins) quando você integra uma rede de mensagens externa com entrega por webhook ou transporte de saída próprios. Isso dá roteamento e controle de acesso nativos, ao preço de escrever e manter TypeScript contra o SDK de plugins. Não construímos um.

## O que fazer agora

Escolha o caminho por quem vai mandar mensagem ao agente:

- **Só você.** Um chip pré-pago ou um eSIM com o canal próprio do OpenClaw é uma configuração razoável, desde que você aceite que o número é o risco. Mantenha o `dmPolicy` em `allowlist`.
- **Algumas pessoas que você conhece.** A mesma configuração, com cada pessoa em `allowFrom` ou aprovada pelo pareamento, e uma política de ferramentas com a qual você ficaria tranquilo se uma delas fosse descuidada.
- **Clientes ou desconhecidos.** Ponha a conta onde um banimento não alcance o seu próprio número: um número gerenciado pela ponte acima, ou a WhatsApp Business Platform oficial, se o seu bot se qualificar.

[API não oficial do WhatsApp: Baileys, WAHA e Evolution comparados](https://whasp.ai/pt/blog/api-nao-oficial-whatsapp-baileys-waha-evolution) mostra as contrapartidas entre as opções que você mesmo opera, e [Servidor MCP para WhatsApp](https://whasp.ai/pt/blog/servidor-mcp-whatsapp-claude-chatgpt) mostra outro jeito de dar um número a um agente.

## Perguntas

### O OpenClaw precisa de um segundo número de WhatsApp?

Não é obrigatório, porque o OpenClaw aceita um número pessoal no modo de chat consigo mesmo (self-chat). A documentação recomenda um número dedicado, e a página de ajuda do WhatsApp avisa que vincular uma conta por apps não oficiais pode causar um banimento temporário ou permanente.

### Como o OpenClaw se conecta ao WhatsApp?

Pelo WhatsApp Web, usando a biblioteca Baileys. Você instala o plugin @openclaw/whatsapp, roda openclaw channels login --channel whatsapp e escaneia um QR code. O login é só por QR, e o gateway guarda a sessão vinculada.

### O OpenClaw pode usar a API do WhatsApp Business?

Não no canal de WhatsApp descrito na documentação em 19 de outubro de 2026, que cobre o WhatsApp Web pelo Baileys e afirma que não existe um canal separado de WhatsApp pela Twilio. O OpenClaw tem um SDK de plugins para você criar o seu próprio canal.

### Posso usar um número virtual como segundo número de WhatsApp do OpenClaw?

Não está confirmado. O guia do OpenClaw lista um chip, um eSIM ou um número pré-pago, e não encontramos nenhuma página do WhatsApp que diga quais tipos de número ele aceita. Um número alugado que você não pode manter é um risco à parte.

### Posso conectar o OpenClaw à whasp?

Não como canal nativo. A whasp é uma API HTTP com um webhook, então você a conecta com uma ponte pequena que envia cada mensagem recebida ao endpoint compatível com a OpenAI do OpenClaw e devolve a resposta.
