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.
X-API-Key: {VOTRE_CLE_API}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…).
Authorization: Bearer {TOKEN_LOGIN}curl -X POST "https://api-tchati.bouda.dev/api/v1/auth/login" \
-H "Content-Type: application/json" \
-d '{ "email": "[email protected]", "password": "..." }'| Route | X-API-Key | Bearer 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
https://api-tchati.bouda.dev/api/v1Toutes 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çumessage.sentMessage envoyé avec succèsmessage.failedÉchec d'envoimessage.editedMessage modifiémessage.deletedMessage supprimésession.connectedSession connectéesession.disconnectedSession déconnectéesession.qrNouveau QR code disponible{
"event": "message.received",
"session_ref": "SESSION_REF",
"data": {
"from": "+22890000000",
"text": "Bonjour !",
"timestamp": "2025-01-15T10:30:00Z"
}
}Codes d'erreur
| Code | Signification |
|---|---|
200 | Succès |
201 | Ressource créée |
401 | Non authentifié — clé API invalide ou absente |
403 | Accès refusé — session ne vous appartient pas ou limite plan atteinte |
404 | Session ou ressource introuvable |
422 | Erreur de validation — vérifiez les champs envoyés |
429 | Trop de requêtes — rate limit atteint |
500 | Erreur interne — le service Baileys est peut-être indisponible |