WhatsApp as a Service (WAAS)

Documentation Développeur

Automatisez vos communications WhatsApp avec une API simple, robuste et sécurisée.

Introduction

WhatsFlow expose une API REST complète (v1) permettant d'envoyer des messages, de gérer des sessions WhatsApp et d'écouter des événements en temps réel via des webhooks.

API RESTful

Endpoints simples pour le texte et les médias.

Webhooks

Réception instantanée des messages et statuts.

Sécurité HMAC

Payloads signés pour garantir l'intégrité.

Haute Disponibilité

Infrastructure scalable basée sur BullMQ.

Authentification

Toutes les requêtes vers l'API v1 doivent inclure votre clé API dans le header X-API-Key.

Vous pouvez générer vos clés API dans vos Paramètres Développeur.

Exemple de header
curl -X GET "https://api.unlineservice.com/api/v1/sessions" \
     -H "X-API-Key: wf_your_api_key_here"

Endpoints API

Swagger UI

Envoyer un message

POST /api/v1/messages

curl -X POST "https://api.unlineservice.com/api/v1/messages" \
     -H "X-API-Key: YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{
       "sessionId": "session_id",
       "to": "2376XXXXXXXX@s.whatsapp.net",
       "text": "Bonjour depuis l\'API WhatsFlow !"
     }'

Créer une session

POST /api/v1/sessions

curl -X POST "https://api.unlineservice.com/api/v1/sessions" \
     -H "X-API-Key: YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{ "label": "Mon Service Web" }'

Webhooks

Les webhooks vous permettent de recevoir des notifications lorsque des événements surviennent sur votre compte WhatsApp.

Payload standard

{
  "event": "message.received",
  "payload": {
    "sessionId": "...",
    "messageId": "...",
    "remoteJid": "237... @s.whatsapp.net",
    "content": "Salut !",
    "timestamp": 1716285600
  },
  "timestamp": "2026-05-21T13:45:00Z"
}

Vérification de la signature

WhatsFlow signe chaque requête avec HMAC-SHA256. Le secret est unique à chaque webhook. La signature est envoyée dans le header X-WhatsFlow-Signature.

Exemple Node.js
const crypto = require('crypto');
const signature = req.headers['x-whatsflow-signature'];
const body = JSON.stringify(req.body);
const expected = crypto.createHmac('sha256', WEBHOOK_SECRET)
                       .update(body).digest('hex');

if (signature === expected) { /* Authentique */ }

Prêt à démarrer votre intégration ?