Aller au contenu principal

API WhatsApp pour les intégrateurs : tutoriel 2026

Tutoriel technique pour intégrer l'API WhatsApp Business dans une plateforme SaaS ou CRM en 2026 : authentification, envoi de messages, webhooks et gestion multi-tenant.

Ce tutoriel s'adresse aux développeurs qui intègrent l'API WhatsApp Business dans une plateforme SaaS, un CRM ou un outil de marketing automation. Il couvre l'authentification, l'envoi de messages, la réception de webhooks et la gestion de plusieurs comptes clients (multi-tenant). Les exemples utilisent l'API REST Whakup.

Étape 1 — Obtenir vos credentials Whakup

Avant d'écrire la moindre ligne de code, trois éléments sont nécessaires :

  1. Un compte opérateur Whakup : contactez Whakup pour ouvrir un compte partenaire. Whakup est un Meta Tech Provider certifié, ce qui vous dispense de toute démarche de certification Meta en propre.
  2. Un numéro WhatsApp Business activé : activé via le flux embedded signup depuis le tableau de bord Whakup. Chaque numéro reçoit un phone_number_id unique.
  3. Un token d'accès : généré depuis le tableau de bord, valide indéfiniment jusqu'à révocation manuelle.

Pour un environnement de test, Whakup fournit un numéro sandbox avec un phone_number_id de test. Tous les appels en sandbox sont gratuits et sans livraison réelle.

Étape 2 — Envoyer un premier message (template)

L'API Whakup suit la même structure que l'API Cloud Meta, avec un endpoint centralisé.

Requête HTTP :

POST https://api.whakup.com/v1/messages
Authorization: Bearer <votre_token>
Content-Type: application/json

{
  "messaging_product": "whatsapp",
  "to": "33600000000",
  "type": "template",
  "template": {
    "name": "order_confirmation_fr",
    "language": { "code": "fr" },
    "components": [
      {
        "type": "body",
        "parameters": [
          { "type": "text", "text": "Jean Dupont" },
          { "type": "text", "text": "#98765" }
        ]
      }
    ]
  }
}

Réponse en cas de succès (HTTP 200) :

{
  "messaging_product": "whatsapp",
  "contacts": [{ "input": "33600000000", "wa_id": "33600000000" }],
  "messages": [{ "id": "wamid.XXX" }]
}

L'identifiant wamid est l'ID unique du message. Conservez-le dans votre base de données pour corréler les statuts de livraison reçus via webhook.

Étape 3 — Configurer la réception des webhooks

Whakup vous envoie les événements en temps réel sur une URL HTTPS de votre choix. Deux types d'événements sont essentiels :

  • messages : messages entrants des utilisateurs.
  • statuses : accusés (envoyé, livré, lu, échoué).

Configuration dans le tableau de bord Whakup :

  1. Renseignez votre URL de webhook : https://votre-plateforme.com/webhooks/whatsapp.
  2. Choisissez les champs à recevoir : messages, statuses.
  3. Notez le verify token : Whakup envoie un challenge GET à votre endpoint lors de la configuration pour vérifier que vous contrôlez bien l'URL.

Exemple de handler webhook (Node.js / Express) :

// Vérification initiale du webhook
app.get('/webhooks/whatsapp', (req, res) => {
  const mode = req.query['hub.mode'];
  const token = req.query['hub.verify_token'];
  const challenge = req.query['hub.challenge'];

  if (mode === 'subscribe' && token === process.env.WEBHOOK_VERIFY_TOKEN) {
    return res.status(200).send(challenge);
  }
  res.sendStatus(403);
});

// Réception des événements
app.post('/webhooks/whatsapp', (req, res) => {
  // Répondre 200 immédiatement pour éviter les retransmissions
  res.sendStatus(200);

  const entry = req.body.entry?.[0];
  const changes = entry?.changes?.[0]?.value;

  if (changes?.messages) {
    const message = changes.messages[0];
    // Traiter le message entrant
    handleIncomingMessage(message);
  }

  if (changes?.statuses) {
    const status = changes.statuses[0];
    // Mettre à jour le statut du message en base
    updateMessageStatus(status.id, status.status);
  }
});

Le res.sendStatus(200) avant le traitement est critique. Si votre handler met plus de 3 secondes à répondre, Whakup considère l'envoi comme échoué et retente — ce qui crée des doublons.

Étape 4 — Architecture multi-tenant

Si votre plateforme gère plusieurs clients, chacun avec son propre numéro WhatsApp, voici l'architecture recommandée :

Élément Par client Partagé
phone_number_id Oui Non
Token d'accès Whakup Optionnel (peut être le même compte opérateur) Possible
Templates Par compte Meta Business client Non
Webhook URL Peut être unique avec routing interne Recommandé

Routing des webhooks entrants :

Un seul endpoint webhook peut recevoir les événements de tous vos numéros clients. Le payload Whakup inclut le phone_number_id de l'expéditeur. Votre handler identifie ainsi à quel client appartient le message et route vers la bonne logique.

const phoneNumberId = changes?.metadata?.phone_number_id;
const client = await db.clients.findBy({ phoneNumberId });
// router vers le handler du client

Pour les plateformes à fort volume, une file de messages (Redis + BullMQ, RabbitMQ) entre le webhook handler et les workers de traitement isole les pics d'activité et évite la perte de messages.

Étape 5 — Gestion des erreurs et monitoring

Les codes d'erreur à traiter impérativement :

Code Signification Action recommandée
429 Rate limit atteint Retry avec backoff exponentiel (1s, 2s, 4s…)
131026 Numéro destinataire non sur WhatsApp Marquer contact injoignable, ne pas retenter
131047 Message hors fenêtre 24h sans template Vérifier la logique d'envoi
132000 Template non approuvé ou suspendu Alerte immédiate, vérifier le statut du template
500 Erreur serveur Whakup Retry après 30s, puis alerter

Pour une vue d'ensemble de l'offre et des cas d'usage couverts, consultez le guide complet de l'API WhatsApp Business.

FAQ

Peut-on tester l'intégration sans envoyer de vrais messages ?

Oui. Whakup fournit un environnement sandbox avec des numéros de test. Les appels en sandbox suivent la même structure d'API mais ne livrent pas de messages réels. Idéal pour valider votre intégration avant la mise en production.

Comment gérer le renouvellement des tokens dans un système automatisé ?

Les tokens Whakup sont permanents (pas d'expiration). Stockez-les chiffrés dans votre base de données (variables d'environnement ou vault type HashiCorp Vault). Implémentez une rotation manuelle déclenchable depuis votre admin en cas de compromission.

L'API Whakup est-elle compatible avec les SDKs Meta officiels ?

L'API Whakup suit la même structure que l'API Cloud Meta. Les SDKs officiels Meta peuvent être utilisés en changeant l'URL de base. Vérifiez la documentation Whakup pour les éventuelles spécificités d'endpoint.

Combien coûte l'envoi en masse pour un intégrateur ?

Le coût se compose de 0,0088 €/message (Whakup) + les frais Meta selon la catégorie et le pays. Pour un message marketing vers un numéro français : ~0,08 € tout compris. Pour un message utility : ~0,0336 €. Consultez notre article sur les prix de l'API WhatsApp Business en 2026 pour le détail par pays.


Vous intégrez WhatsApp dans votre produit ? L'API WhatsApp Whakup fournit la documentation technique complète, un environnement sandbox et un support dédié pour les intégrateurs. Prenez contact pour démarrer.

#intégration whatsapp#api whatsapp intégrateur#tutoriel
Arthur Lyonnet
Arthur LyonnetCo-fondateur & CEO

Co-fondateur de Whakup, Arthur accompagne les entreprises africaines dans leur transformation digitale via WhatsApp depuis 2022. Passionné par le growth marketing et l'entrepreneuriat en Afrique francophone.

🚀

Prêt à passer à l'action ?

Essayez Whakup gratuitement pendant 15 jours. Aucune carte bancaire requise.

Démarrer l'essai gratuit