La sécurité d'abord
Gardez les clés API uniquement sur votre backend. N'envoyez jamais les clés ni l'URL de base de votre déploiement dans le navigateur ou une app mobile.
Ordre d'intégration
- Créer une clé API dans la console développeur du workspace (gérée par le propriétaire). Le secret en clair n'est affiché qu'une fois — enregistrez-le dans votre coffre de secrets ou les variables d'environnement du serveur.
- Configurer l'URL de base sur votre serveur : utilisez votre hôte HTTPS plus
/api/wazaj/business. Exemple d'hôte de production :https://transuptech.online. Privilégiez la lecture depuis les variables d'environnement plutôt qu'un durcissement dans les bundles clients. - Authentifier chaque requête avec la clé API (voir ci-dessous). Ces routes n'utilisent pas les cookies de session du navigateur.
- Envoyer des messages avec POST
…/messages/textou…/messages/template, toujours avecContent-Type: application/json. - Gérer les erreurs et les nouvelles tentatives: traitez explicitement 401, 403, 422 et 503 ; utilisez un backoff exponentiel pour les pannes transitoires.
- Gérer les clés avec prudence: faites tourner les clés selon un calendrier et révoquez immédiatement en cas de fuite.
URL de base
Préfixe API complet pour la messagerie métier (exemple de déploiement) : https://transuptech.online/api/wazaj/business
Exemple concret (copiez depuis le bloc ci-dessous) :
https://transuptech.online/api/wazaj/businessRemplacez par votre propre origine dans le code ; les extraits ci-dessous utilisent $BASE_URL qui est remplacé par cet exemple lors de la copie.
Authentification
Les endpoints métier acceptent votre clé API sous l'une de ces formes :
X-API-Key: wzj_…Authorization: Bearer wzj_…Authorization: ApiKey wzj_…
Les clés manquantes, invalides, expirées ou révoquées renvoient 401.
Content-Type: application/json
X-API-Key: wzj_xxx1. Envoyer un message texte
POST/messages/text
Chemin complet : https://transuptech.online/api/wazaj/business/messages/text
Corps de la requête
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| to | string | Oui | Destination au format E.164 (ex. +50912345678) |
| body | string | Oui | Texte du message |
| preview_url | boolean | Non | Comportement d'aperçu d'URL |
| reply_to_meta_message_id | string | null | Non | Identifiant Meta du message auquel répondre |
Exemple JSON
{
"to": "+50912345678",
"body": "Hello from Wazaj API",
"preview_url": false,
"reply_to_meta_message_id": null
}Succès (200)
{
"success": true,
"message_id": 12345
}cURL
curl -X POST "https://transuptech.online/api/wazaj/business/messages/text" \
-H "Content-Type: application/json" \
-H "X-API-Key: $WAZAJ_API_KEY" \
-d '{
"to": "+50912345678",
"body": "Hello from Wazaj API",
"preview_url": false
}'2. Envoyer un message modèle
POST/messages/template
Mêmes en-têtes que pour le texte : Content-Type: application/json et votre clé API.
Corps de la requête
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| to | string | Oui | Destination au format E.164 |
| template_name | string | Oui | Nom du modèle approuvé par Meta |
| template_language | string | Oui | Code langue du modèle (ex. en) |
| template_components | array | Non | Composants / paramètres du modèle Meta |
Exemple JSON
{
"to": "+50912345678",
"template_name": "order_update",
"template_language": "en",
"template_components": [
{
"type": "body",
"parameters": [{ "type": "text", "text": "John" }]
}
]
}Succès (200)
{
"success": true,
"message_id": 12346
}cURL
curl -X POST "https://transuptech.online/api/wazaj/business/messages/template" \
-H "Content-Type: application/json" \
-H "X-API-Key: $WAZAJ_API_KEY" \
-d '{
"to": "+50912345678",
"template_name": "order_update",
"template_language": "en",
"template_components": [
{
"type": "body",
"parameters": [{ "type": "text", "text": "John" }]
}
]
}'Réponses d'erreur
401 Non autorisé— clé API manquante ou invalide.
{
"success": false,
"message": "Unauthorized"
}403 Interdit— compte déconnecté ou bloqué pour l'envoi.
{
"success": false,
"message": "Wazaj account disconnected"
}422 Entité non traitable — erreurs de validation ou règles métier (exemples : billing_send_denied, templates_not_entitled).
{
"success": false,
"message": "Validation failed",
"errors": {
"to": ["The to field is required."]
}
}503 Service indisponible— module de messagerie ou aval non prêt. Réessayez avec backoff.
Liste de contrôle
- Créer une clé API depuis la console développeur.
- Stocker le secret dans un coffre ou une variable d'environnement réservée au serveur.
- Appeler les endpoints métier uniquement depuis du code serveur à serveur.
- Journaliser les réponses non-2xx et mettre en place retry/backoff si pertinent.
- Faire tourner les clés selon un calendrier ; révoquer immédiatement en cas de compromission.