L'envoi d'un template est la seule manière de contacter un client en premier sur WhatsApp, c'est-à-dire en dehors de la fenêtre de conversation de 24 heures. Le template doit être approuvé par Meta avant tout envoi.
La référence complète et toujours à jour de cet endpoint est disponible sur developers.getkanal.com.
POST https://api.getkanal.com/api/v1/templatesCet endpoint nécessite un abonnement actif et est limité à 60 requêtes par minute par clé API.
Authorization: Bearer <VOTRE_CLE_API>
Content-Type: application/json
Idempotency-Key (optionnel) : rejouer la même clé n'envoie pas le message une seconde fois.
Champ | Type | Description |
|---|---|---|
| entier, requis | L'identifiant du template à envoyer. |
| chaîne, requis | Le numéro du destinataire. Les caractères non numériques sont ignorés. |
| objet, conditionnel | Requis si le template contient des variables. Objet plat, chaque clé portant le nom de la variable déclarée dans le template. |
| chaîne, optionnel | Avec la valeur « FR », retire le 0 initial et ajoute l'indicatif 33 s'il est absent. |
| chaîne, optionnel | Nom attribué au contact à sa création. Par défaut « Unknown ». |
| chaîne, optionnel | E-mail attribué au contact à sa création. |
variables est un objet dont les clés sont les noms des variables du template, et non un tableau ordonné. Kanal construit ensuite la charge utile WhatsApp côté serveur.Deux méthodes :
Appelez GET /api/v1/get_templates pour lister vos templates approuvés et leurs identifiants.
Ou rendez-vous dans Settings puis WhatsApp Templates, cliquez sur le template : l'identifiant figure à la fin de l'URL.
Un template destiné à l'API se crée depuis Settings > WhatsApp Templates, et non depuis une automatisation ou une campagne.
curl -X POST https://api.getkanal.com/api/v1/templates \
-H "Authorization: Bearer VOTRE_CLE_API" \
-H "Content-Type: application/json" \
-d '{
"template_id": 1234,
"phone_number": "+33612345678",
"name": "Jane Doe",
"variables": { "first_name": "Jane", "order_id": "10456" }
}'{
"success": true,
"message": "Template message sent successfully",
"message_id": 987654,
"contact_id": 54321,
"phone_number": "33612345678"
}Code | Cause |
|---|---|
| Clé API manquante ou invalide. |
| L'équipe n'a pas d'abonnement actif. |
| Template introuvable pour ce numéro. |
| Plus de 60 requêtes par minute. |
| Paramètre manquant, numéro invalide, contact désinscrit, ou variable du template absente. |