Technique 20 Juin 2026 · 20 min

WhatsApp Business API : le guide complet pour les développeurs

Par KOUAME Ulrich

WhatsApp est le canal de communication numéro 1 en Afrique avec 94% des internautes ivoiriens qui l'utilisent quotidiennement. Pour une entreprise qui veut toucher des clients en Afrique francophone, WhatsApp n'est pas une option, c'est le point d'entrée principal.

Prérequis

  • Un compte Meta Business (anciennement Facebook Business)
  • Un numéro de téléphone dédié (pas déjà utilisé sur WhatsApp)
  • Un Business Solution Provider ou accès direct à l'API Cloud de Meta

Étape 1 : Configuration du compte

La méthode la plus simple est d'utiliser WhatsApp Cloud API (hébergée par Meta). Pas besoin de serveur dédié.

const WHATSAPP_API_VERSION = 'v21.0';
const WHATSAPP_PHONE_NUMBER_ID = process.env.WA_PHONE_NUMBER_ID;
const WHATSAPP_ACCESS_TOKEN = process.env.WA_ACCESS_TOKEN;
const BASE_URL = 'https://graph.facebook.com/' +
  WHATSAPP_API_VERSION + '/' +
  WHATSAPP_PHONE_NUMBER_ID;

Étape 2 : Envoyer un message texte

async function envoyerMessage(telephone, texte) {
  const response = await fetch(BASE_URL + '/messages', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer ' + WHATSAPP_ACCESS_TOKEN,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      messaging_product: 'whatsapp',
      to: telephone,
      type: 'text',
      text: { body: texte },
    }),
  });
  return response.json();
}

Étape 3 : Templates et messages approuvés

WhatsApp impose l'utilisation de templates approuvés pour les messages initiés par l'entreprise (notifications, rappels, confirmations).

async function envoyerTemplate(telephone, templateName, variables) {
  const response = await fetch(BASE_URL + '/messages', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer ' + WHATSAPP_ACCESS_TOKEN,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      messaging_product: 'whatsapp',
      to: telephone,
      type: 'template',
      template: {
        name: templateName,
        language: { code: 'fr' },
        components: [{
          type: 'body',
          parameters: variables.map(v => ({ type: 'text', text: v })),
        }],
      },
    }),
  });
  return response.json();
}

Étape 4 : Webhooks

Pour recevoir les messages entrants, vous devez configurer un webhook qui écoute les notifications de Meta.

export async function handleWhatsAppWebhook(req) {
  const body = await req.json();
  if (req.method === 'GET') {
    const url = new URL(req.url);
    const mode = url.searchParams.get('hub.mode');
    const token = url.searchParams.get('hub.verify_token');
    const challenge = url.searchParams.get('hub.challenge');
    if (mode === 'subscribe' && token === process.env.WA_VERIFY_TOKEN) {
      return new Response(challenge, { status: 200 });
    }
    return new Response('Forbidden', { status: 403 });
  }
  for (const entry of body.entry || []) {
    for (const change of entry.changes || []) {
      for (const message of change.value.messages || []) {
        await traiterMessageEntrant(message);
      }
    }
  }
  return new Response('OK', { status: 200 });
}

Cas d'usage africains

1. Confirmation de commande WhatsApp

Un client commande via un agent vocal, et reçoit automatiquement un récapitulatif sur WhatsApp. C'est exactement ce que fait Allo.

2. Notifications de paiement Mobile Money

Quand un paiement Wave ou Orange Money est reçu, le commerçant reçoit une notification WhatsApp automatisée.

3. Support client conversationnel

Un chatbot WhatsApp qui répond aux questions fréquentes, avec escalade vers un humain si nécessaire.

Limitations et bonnes pratiques

  • 24h rule : Vous ne pouvez envoyer des messages libres que dans les 24h suivant le dernier message du client.
  • Opt-in obligatoire : Le client doit avoir accepté de recevoir des messages.
  • Qualité du numéro : Si votre note de qualité est trop basse, vous pouvez être limité.
  • Coûts : Chaque template envoyé coûte environ 5-15 FCFA selon le pays.

Vous voulez intégrer WhatsApp API dans votre application ? Contactez notre équipe.