Documentation API

Intégrez WhatsApp dans vos applications. Authentifiez-vous via Authorization: Bearer (token Sanctum, accès complet) ou X-API-Key (clé API, envoi de messages uniquement).

Authentification

Deux modes selon l'usage :

Clé API Envoi uniquement

Créez une clé depuis le dashboard. Utilisez le header X-API-Key. Uniquement disponible pour les routes d'envoi de messages.

header
X-API-Key: {VOTRE_CLE_API}
bash
curl -X POST "https://api-tchati.bouda.dev/api/v1/whatsapp-sessions/SESSION_REF/send" \
  -H "X-API-Key: {VOTRE_CLE_API}" \
  -H "Content-Type: application/json" \
  -d '{ "to": "22890000000", "message": "Bonjour !" }'

Token Sanctum Accès complet

Token retourné après connexion. Donne accès à toutes les routes (sessions, messages, contacts, groupes…).

header
Authorization: Bearer {TOKEN_LOGIN}
bash
curl -X POST "https://api-tchati.bouda.dev/api/v1/auth/login" \
  -H "Content-Type: application/json" \
  -d '{ "email": "[email protected]", "password": "..." }'
RouteX-API-KeyBearer Token
Sessions (lister, créer, supprimer…)
Envoyer un message texte
Envoyer voix, sticker, localisation…
Contacts, groupes, webhooks

Ne partagez jamais vos clés API. Utilisez des variables d'environnement côté serveur.

URL de base

url
https://api-tchati.bouda.dev/api/v1

Toutes les routes sessions sont préfixées par /whatsapp-sessions/{ref}/.

Sessions WhatsApp

Une session = un numéro WhatsApp connecté via scan QR ou code de couplage.

Messages

Contacts

Groupes

Webhooks

Configurez une URL webhook dans vos paramètres pour recevoir les événements en temps réel.

message.receivedMessage entrant reçu
message.sentMessage envoyé avec succès
message.failedÉchec d'envoi
message.editedMessage modifié
message.deletedMessage supprimé
session.connectedSession connectée
session.disconnectedSession déconnectée
session.qrNouveau QR code disponible
json
{
  "event": "message.received",
  "session_ref": "SESSION_REF",
  "data": {
    "from": "+22890000000",
    "text": "Bonjour !",
    "timestamp": "2025-01-15T10:30:00Z"
  }
}

Codes d'erreur

CodeSignification
200Succès
201Ressource créée
401Non authentifié — clé API invalide ou absente
403Accès refusé — session ne vous appartient pas ou limite plan atteinte
404Session ou ressource introuvable
422Erreur de validation — vérifiez les champs envoyés
429Trop de requêtes — rate limit atteint
500Erreur interne — le service Baileys est peut-être indisponible