# OpenClaw sur WhatsApp sans risquer votre numéro personnel

> Le canal WhatsApp d'OpenClaw lie votre compte via Baileys. Pourquoi un deuxième numéro est conseillé, comment l'obtenir et comment relier un numéro géré par HTTP.

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

## L’essentiel

- Le canal WhatsApp d'OpenClaw fonctionne sur WhatsApp Web via la bibliothèque Baileys et se lie par QR code : le compte WhatsApp, et tout bannissement, appartient donc à celui qui possède le numéro.
- Les docs WhatsApp et d'installation d'OpenClaw recommandent un second numéro dédié, pour le contrôle d'accès et pour éviter la confusion du self-chat, sans rien dire du risque de bannissement, alors que la page d'aide de WhatsApp avertit que lier un compte via des applications non officielles peut entraîner un bannissement.
- Un second numéro peut être une SIM prépayée, une eSIM ou un numéro géré, et nous n'avons trouvé aucune documentation WhatsApp indiquant si les numéros virtuels s'enregistrent : considérez-les comme non confirmés.
- Le canal WhatsApp d'OpenClaw ne peut pas utiliser une API hébergée comme whasp, mais un court pont (bridge) passant par l'endpoint compatible OpenAI du Gateway le peut.
- Tout ce qui laisse des inconnus écrire à un agent OpenClaw doit passer par un agent dédié avec une politique d'outils restreinte, car leurs messages sont des entrées non fiables.

Le canal WhatsApp d'OpenClaw relie votre gateway à un compte WhatsApp comme appareil associé, avec la bibliothèque Baileys et un QR code. Le compte est le vôtre, donc un bannissement l'est aussi. Les docs d'OpenClaw recommandent un second numéro dédié : une SIM, une eSIM ou une ligne prépayée. Si vous préférez ne pas posséder ce numéro, un numéro géré peut se connecter par HTTP avec un court pont (bridge).

## Comment fonctionne le canal WhatsApp d'OpenClaw ?

OpenClaw est un [gateway auto-hébergé](https://github.com/openclaw/openclaw) open source (MIT) qui relie des applications de chat à des agents IA. Son [canal WhatsApp](https://docs.openclaw.ai/channels/whatsapp) est, selon les termes de la doc, « production-ready via WhatsApp Web (Baileys) », et le gateway possède la session liée et sa boucle de reconnexion. La doc précise qu'il n'existe pas de canal Twilio WhatsApp séparé. Les faits de cet article viennent de la doc et du dépôt d'OpenClaw, tels que lus le 19 octobre 2026.

L'installation est courte :

1. Installez le plugin : `openclaw plugins install @openclaw/whatsapp`.
2. Liez le compte : `openclaw channels login --channel whatsapp`. La connexion se fait uniquement par QR code : sur un serveur sans écran, il vous faut un moyen fiable de faire parvenir le QR code en direct à votre téléphone.
3. Démarrez le gateway avec `openclaw gateway`.

Le `dmPolicy` par défaut est `pairing`. Un expéditeur inconnu reçoit une demande d'appairage, que vous approuvez avec `openclaw pairing approve whatsapp <CODE>`. Les demandes expirent au bout d'une heure et chaque compte peut en garder trois au plus. Les autres politiques sont `allowlist` (seulement les numéros de `allowFrom`), `open` et `disabled`. Le canal gère les conversations directes, les groupes, les images, la vidéo, l'audio et les documents, et il envoie l'indicateur de saisie pendant qu'il travaille ainsi que des accusés de lecture par défaut.

Le lien se fait en scannant depuis un téléphone : le numéro vit donc sur un téléphone, et OpenClaw s'y ajoute comme appareil associé. Ce détail explique l'essentiel de ce qui suit.

## Pourquoi OpenClaw veut-il un second numéro ?

Les docs d'OpenClaw recommandent un numéro dédié pour des raisons de contrôle d'accès, et les pages de WhatsApp décrivent un risque dont les pages WhatsApp et d'installation d'OpenClaw ne parlent pas.

| Source | Ce qu'elle dit |
| --- | --- |
| [Docs WhatsApp d'OpenClaw](https://docs.openclaw.ai/channels/whatsapp) | Un numéro séparé est recommandé : listes d'autorisation et routage plus clairs, moins de confusion en self-chat. Un numéro personnel fonctionne en mode self-chat. |
| [Guide de l'assistant personnel OpenClaw](https://docs.openclaw.ai/start/openclaw) | Utilisez un numéro dédié. Prérequis : « A second phone number (SIM/eSIM/prepaid) ». Lier votre WhatsApp personnel fait de chaque message que vous recevez une entrée pour l'agent. |
| [Issue 91 d'OpenClaw](https://github.com/openclaw/openclaw/issues/91), 2 janvier 2026 | Un utilisateur a signalé que WhatsApp avait banni le numéro habituel qu'il avait lié à OpenClaw, et supposait que la cause était de discuter avec lui-même. La réponse indiquait que l'onboarding recevrait une note. Le fil ne confirme aucune cause. |
| [WhatsApp : appareils associés](https://faq.whatsapp.com/378279804439436) | Lier un compte via des applications ou des sites non officiels peut entraîner un bannissement temporaire ou définitif du compte. |

La page de WhatsApp définit les applications non officielles comme de fausses applications WhatsApp et des sites web créés par des tiers, et ne nomme ni OpenClaw ni Baileys. OpenClaw est un client tiers qui se lie comme un appareil : partez du principe que l'avertissement vous concerne. Un second numéro limite les dégâts : si WhatsApp bannit le compte, c'est le numéro de l'assistant, pas celui que votre famille et vos clients utilisent.

Le mode numéro personnel est une solution de repli prise en charge. L'onboarding écrit alors `dmPolicy: "allowlist"`, votre propre numéro dans `allowFrom` et `selfChatMode: true`, et la doc avertit qu'un message de test de présence (liveness check) envoyé à votre propre numéro peut devenir une entrée de l'agent, sauf si vous réglez `selfChatMode: false`.

## Comment obtenir le second numéro ?

| Option | Fonctionnement | À surveiller |
| --- | --- | --- |
| SIM prépayée dans un téléphone de rechange | La configuration à deux téléphones du guide d'OpenClaw : enregistrez WhatsApp sur le téléphone de rechange, puis scannez-y le QR code de connexion | Les appareils associés sont déconnectés si le téléphone reste inutilisé plus de 14 jours : gardez-le chargé et la SIM active |
| eSIM | Citée par OpenClaw à côté de la SIM et du prépayé | Même règle qu'une SIM prépayée, sur un téléphone compatible |
| Numéro virtuel (VoIP ou location de numéro SMS) | Reçoit le code de vérification en ligne | Non confirmé. Nous n'avons trouvé aucune page WhatsApp listant les types de numéros acceptés, et un numéro loué peut vous être repris |
| Numéro géré | Un fournisseur comme whasp exploite le téléphone et vous donne une API | Pas un canal intégré à OpenClaw, voir plus bas. whasp coûte $49 par numéro tous les 30 jours |

La règle des 14 jours vient de la page des appareils associés de WhatsApp, qui précise aussi que les appareils associés fonctionnent sans que le téléphone soit en ligne et se déconnectent après 30 jours d'inactivité. Si vous utilisez déjà OpenClaw avec votre numéro personnel, ajoutez l'assistant comme compte nommé au lieu de tout réinstaller : `openclaw channels login --channel whatsapp --account assistant`. Les comptes se trouvent sous `channels.whatsapp.accounts.<id>`, et chacun garde ses propres identifiants.

## Comment éviter le bannissement avec OpenClaw ?

Aucun réglage n'est documenté comme à l'épreuve du bannissement, et c'est WhatsApp qui décide. Ces habitudes correspondent à ce que disent les docs et WhatsApp :

- **Utilisez une allowlist.** Réglez `dmPolicy: "allowlist"` et `allowFrom` sur les personnes qui doivent joindre l'agent. Le mode pairing par défaut vous fait déjà approuver les expéditeurs inconnus.
- **Gardez une politique d'outils stricte.** Le guide d'OpenClaw dit qu'un agent connecté peut, selon la politique, exécuter des commandes, utiliser des fichiers et écrire à des gens en votre nom. Un agent qui écrit à des personnes qui ne lui ont jamais écrit, c'est de la prospection à froid depuis votre numéro, l'un des signaux que traite [Pourquoi WhatsApp bannit des numéros](https://whasp.ai/fr/blog/pourquoi-whatsapp-bannit-numero).
- **Sauvegardez avant de relier.** Copiez `~/.openclaw/credentials/whatsapp/<accountId>`, puis lancez `openclaw channels logout` et `openclaw channels login`, comme le décrit la doc de dépannage.
- **Préchauffez le numéro d'abord.** [Comment préchauffer (warm-up) un nouveau numéro WhatsApp](https://whasp.ai/fr/blog/prechauffer-numero-whatsapp-warm-up) distingue ce qui est établi de la pratique de la communauté.

## OpenClaw peut-il utiliser un numéro géré comme whasp ?

Pas via le canal WhatsApp. Ce canal est WhatsApp Web via Baileys, et la doc d'OpenClaw ne liste aucun autre transport WhatsApp. whasp est une API HTTP : les messages entrants arrivent sur votre webhook et un appel d'API répond. OpenClaw n'a donc aucun moyen intégré de prendre whasp comme son WhatsApp. Il a toutefois deux portes documentées.

**L'endpoint compatible OpenAI du Gateway.** Le [`/v1/chat/completions`](https://docs.openclaw.ai/gateway/openai-http-api) d'OpenClaw est désactivé par défaut et exécute un tour d'agent normal. Le champ `model` désigne un agent (`openclaw/<agentId>`), et une chaîne `user` OpenAI donne une session stable : des appels répétés prolongent donc une même conversation. Un pont relie les deux côtés :

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

const wh = new Webhook(process.env.WHASP_WEBHOOK_SECRET); // whsec_... fourni par whasp
const seen = new Set(); // dédoublonnage sur l'identifiant d'événement (utilisez un vrai stockage en production)

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, // même valeur par conversation = même session 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"); // corps brut, avant analyse

  let event;
  try {
    event = wh.verify(body, req.headers);
  } catch {
    return res.writeHead(401).end();
  }
  res.writeHead(204).end(); // on acquitte tout de suite, on travaille ensuite

  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 gère la désinscription (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);
```

Nous avons exécuté ce code contre des doublures des deux API, construites d'après la documentation d'OpenClaw et de whasp. Nous ne l'avons pas exécuté contre un vrai gateway OpenClaw. Pour l'utiliser, activez `gateway.http.endpoints.chatCompletions.enabled`, enregistrez l'URL HTTPS publique du pont avec `PUT /v1/webhook`, et définissez `WHASP_WEBHOOK_SECRET`, `WHASP_API_KEY`, `OPENCLAW_URL` (la doc utilise `http://127.0.0.1:18789`), `OPENCLAW_TOKEN` et `OPENCLAW_AGENT`. La vérification de la signature et la gestion des doublons sont expliquées dans [Webhook WhatsApp : signature, nouvelles tentatives, doublons](https://whasp.ai/fr/blog/webhook-whatsapp-signature-doublons).

Trois points d'attention. D'abord, la doc d'OpenClaw qualifie cet endpoint d'accès opérateur complet au gateway : gardez-le sur la boucle locale ou sur un réseau privé, pour que seul le pont puisse l'appeler. Ensuite, les textes d'inconnus sont des entrées non fiables : pointez donc `OPENCLAW_AGENT` vers un agent dédié dont vous avez restreint les outils. Le [README](https://github.com/openclaw/openclaw) d'OpenClaw demande de traiter les messages entrants comme des entrées non fiables. Enfin, OpenClaw voit alors un client d'API générique, pas un canal WhatsApp. Son appairage, ses allowlists, ses groupes, ses réactions, l'indicateur de saisie et les messages vocaux ne s'appliquent pas, et whasp a ses propres limites : les utilisateurs écrivent en premier, et il n'y a ni groupes, ni indicateurs de saisie, ni messages vocaux sortants.

**Un plugin de canal.** La doc d'OpenClaw dit de [construire un plugin de canal](https://docs.openclaw.ai/plugins/sdk-channel-plugins) quand on intègre un réseau de messagerie externe avec sa propre livraison par webhook ou son propre transport sortant. Cela donne un routage et un contrôle d'accès natifs, au prix d'écrire et de maintenir du TypeScript contre le SDK de plugins. Nous n'en avons pas construit.

## Que faire ensuite ?

Choisissez la voie selon la personne qui écrira à l'agent :

- **Vous seul.** Une SIM prépayée ou une eSIM avec le canal d'OpenClaw est une configuration raisonnable, à condition d'accepter que le numéro soit le risque. Gardez `dmPolicy` sur `allowlist`.
- **Quelques personnes que vous connaissez.** La même configuration, avec chaque personne dans `allowFrom` ou approuvée par appairage, et une politique d'outils qui vous conviendrait si l'une d'elles était négligente.
- **Des clients ou des inconnus.** Placez le compte là où un bannissement ne touche pas votre propre numéro : un numéro géré via le pont ci-dessus, ou la WhatsApp Business Platform officielle si votre bot y est éligible.

[API WhatsApp non officielles comparées : Baileys, WAHA, Evolution](https://whasp.ai/fr/blog/api-whatsapp-non-officielle-comparatif) expose les compromis entre les options que l'on exploite soi-même, et [Serveur MCP WhatsApp : donner un numéro à Claude ou ChatGPT](https://whasp.ai/fr/blog/serveur-mcp-whatsapp-claude-chatgpt) montre une autre façon de donner un numéro à un agent.

## Questions

### OpenClaw a-t-il besoin d'un second numéro WhatsApp ?

Ce n'est pas obligatoire, car OpenClaw prend en charge un numéro personnel en mode self-chat. Ses docs recommandent un numéro dédié, et la page d'aide de WhatsApp avertit que lier un compte via des applications non officielles peut entraîner un bannissement temporaire ou définitif.

### Comment OpenClaw se connecte-t-il à WhatsApp ?

Via WhatsApp Web, avec la bibliothèque Baileys. Vous installez le plugin @openclaw/whatsapp, lancez openclaw channels login --channel whatsapp et scannez un QR code. La connexion se fait uniquement par QR code, et le gateway conserve la session liée.

### OpenClaw peut-il utiliser l'API WhatsApp Business ?

Pas dans le canal WhatsApp décrit dans ses docs au 19 octobre 2026, qui couvre WhatsApp Web via Baileys et précise qu'il n'existe pas de canal Twilio WhatsApp séparé. OpenClaw dispose d'un SDK de plugins pour construire son propre canal.

### Puis-je utiliser un numéro virtuel comme second numéro WhatsApp d'OpenClaw ?

Ce n'est pas confirmé. Le guide d'OpenClaw cite une SIM, une eSIM ou un numéro prépayé, et nous n'avons trouvé aucune page WhatsApp listant les types de numéros acceptés. Un numéro loué que vous ne pouvez pas conserver est un risque en soi.

### Puis-je connecter OpenClaw à whasp ?

Pas comme canal intégré. whasp est une API HTTP avec un webhook : vous la connectez avec un petit pont (bridge) qui envoie chaque message entrant à l'endpoint compatible OpenAI d'OpenClaw et renvoie la réponse.
