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 :
- 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.
- 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_idunique. - 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 :
- Renseignez votre URL de webhook :
https://votre-plateforme.com/webhooks/whatsapp. - Choisissez les champs à recevoir :
messages,statuses. - 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.

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 gratuitArticles similaires
API WhatsApp pour les intégrateurs : cas pratique 2026
Cas pratique : comment un éditeur CRM a intégré l'API WhatsApp Business via Whakup pour proposer WhatsApp en canal natif à ses clients en 2026.
API WhatsApp pour les intégrateurs : FAQ 2026
FAQ complète pour les intégrateurs qui connectent l'API WhatsApp Business à une plateforme en 2026 : certification Meta, multi-tenant, webhooks, tarifs et RGPD.
API WhatsApp pour les intégrateurs : guide complet 2026
Guide complet pour les intégrateurs qui connectent l'API WhatsApp Business à des solutions tierces en 2026 : architecture, BSP, webhooks et bonnes pratiques.