L'API Kanal permet à n'importe quel back-office e-commerce d'alimenter vos automatisations WhatsApp, sans connexion Shopify. Si votre boutique est sur mesure, headless, ou sur une plateforme que Kanal n'intègre pas nativement, c'est la voie à emprunter.
La référence technique complète et toujours à jour se trouve sur developers.getkanal.com.
Kanal expose deux ensembles d'endpoints, avec des usages et des prérequis différents.
Elle sert à pousser vos données de boutique vers Kanal : commandes, paniers abandonnés, clients et expéditions. Les commandes et les expéditions déclenchent ensuite vos automatisations. Les paniers abandonnés sont enregistrés, mais les relances de panier ne sont pas encore disponibles pour une boutique personnalisée. Elle ne nécessite pas d'abonnement actif.
Pour une boutique hors Shopify, commencez par créer une boutique personnalisée : elle vous donne votre store_id et une clé d'ingestion. Voir Connecter une boutique hors Shopify (boutique personnalisée).
Elle sert à envoyer des messages et à gérer vos contacts WhatsApp : messages libres, templates, déclenchement d'automatisations, changement du nom d'un contact et lecture des informations de votre compte. Elle nécessite un abonnement actif. Sans cela, chaque appel retourne une erreur 403.
https://api.getkanal.comTous les chemins commencent par /api/v1/, par exemple https://api.getkanal.com/api/v1/templates.
Chaque requête porte l'en-tête Authorization: Bearer <votre clé API>, et Content-Type: application/json pour les requêtes avec un corps JSON. Ajoutez aussi Accept: application/json pour recevoir des réponses JSON, y compris en cas d'erreur. Voir Authentification et clés API.
Les endpoints Commerce sont rattachés à une boutique via un identifiant numérique store_id :
/api/v1/stores/{store_id}/orders
/api/v1/stores/{store_id}/checkouts
/api/v1/stores/{store_id}/customers
/api/v1/stores/{store_id}/shipmentsLes endpoints Messaging ne prennent pas de store_id : la clé API, rattachée à un numéro WhatsApp, détermine le numéro utilisé pour l'envoi.
Chemins relatifs à /api/v1/stores/{store_id}.
Méthode | Chemin | Rôle |
|---|---|---|
|
| Créer ou mettre à jour une commande |
|
| Modifier le statut d'une commande |
|
| Créer ou mettre à jour un panier |
|
| Modifier le statut d'un panier |
|
| Créer ou mettre à jour un client |
|
| Supprimer un client (RGPD) |
|
| Créer ou mettre à jour une expédition |
Détail : API Commerce : envoyer vos données de boutique à Kanal.
Méthode | Chemin | Rôle |
|---|---|---|
|
| Envoyer un message libre |
|
| Envoyer un template |
|
| Lister vos templates approuvés |
|
| Déclencher une automatisation |
|
| Renommer un contact ( |
|
| Informations du compte |
Détail : API Messaging : envoyer des messages et déclencher des automatisations et Envoyer un template WhatsApp via l'API.
Pour recevoir les messages entrants sur votre serveur, voir Recevoir les messages WhatsApp via webhook Kanal.
POST /api/v1/templates : 60 requêtes par minute par clé API. C'est le seul endpoint soumis à cette limite.
API Commerce : 500 requêtes par minute et par boutique, partagées entre tous les endpoints de la boutique.
Autres endpoints Messaging : seule la limite globale de l'API s'applique, soit 3 000 requêtes par minute par adresse IP.
En cas de dépassement, l'API retourne une erreur 429, sans en-tête Retry-After : le corps de la réponse indique retry_after: 60 (en secondes). Attendez ce délai avant de rejouer la requête, idéalement avec un backoff exponentiel.
Création d'une commande, qui déclenchera vos automatisations post-achat :
curl -X POST https://api.getkanal.com/api/v1/stores/123/orders \
-H "Authorization: Bearer VOTRE_CLE_API" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"external_id": "ORDER-1001",
"placed_at": "2026-05-18T10:00:00Z",
"total_price": 49.90,
"currency": "EUR",
"customer": { "phone": "+33612345678", "first_name": "Marie" }
}'L'API Commerce est en écriture seule. Il n'existe aucun endpoint de lecture ou de pagination pour les commandes, paniers, clients ou expéditions : vous poussez des données, vous ne les relisez pas. Votre système reste la source de vérité. Pour corriger un enregistrement, renvoyez-le avec le même external_id.
Une commande envoyée sans numéro de téléphone client est enregistrée, mais elle ne déclenche aucune automatisation.
Les paniers abandonnés envoyés pour une boutique personnalisée ne déclenchent pas encore de relance : aucun déclencheur n'est proposé pour l'instant dans les automatisations.