Chaque requête vers l'API Kanal est authentifiée par une clé API transmise dans l'en-tête Authorization. Nous recommandons d'ajouter aussi l'en-tête Accept: application/json, pour recevoir des réponses au format JSON, y compris en cas d'erreur.
Authorization: Bearer 8fK2pX9mWq4Ld7Vb3Nc6Ts1Z
Accept: application/jsonLa clé est un jeton de 24 caractères. Elle n'a aucun préfixe : transmettez-la exactement telle qu'elle apparaît dans l'application.
Cliquez sur le nom de votre équipe, puis sur Paramètres.
Ouvrez Développeurs > Clés API.
Cliquez sur Ajouter une clé API, donnez-lui un nom explicite (par exemple production-shop), puis validez avec Créer.
Copiez immédiatement la clé affichée dans votre gestionnaire de mots de passe ou votre coffre à secrets.
Vous pouvez créer plusieurs clés, les retrouver dans le tableau Mes clés API, et en supprimer une à tout moment. La suppression est immédiate et irréversible.
Une clé API est rattachée à un numéro WhatsApp, et non à l'équipe. Si votre équipe utilise plusieurs numéros, chaque numéro a sa propre liste de clés. L'équipe de la clé est celle du compte WhatsApp Business auquel appartient ce numéro.
API Messaging : la clé détermine directement le numéro WhatsApp d'envoi. Ces endpoints ne prennent pas de store_id.
API Commerce : la clé donne accès aux boutiques de cette équipe.
Conservez vos clés côté serveur uniquement. Ne les intégrez jamais dans un navigateur, une application mobile, ou tout autre environnement contrôlé par le client final. En cas de fuite, supprimez la clé depuis Paramètres > Développeurs > Clés API et générez-en une nouvelle.
Les endpoints de l'API Commerce contiennent un identifiant numérique store_id dans leur chemin. Il désigne la boutique à laquelle les données appartiennent.
Vous gérez vous-même ces informations dans Paramètres > Boutiques, sur une boutique de type Boutique personnalisée :
l'onglet Guide affiche le store_id de la boutique : c'est le nombre qui suit /stores/ dans l'exemple cURL ;
l'onglet API & ingestion fournit une Clé d'ingestion API limitée à cette seule boutique, que vous pouvez régénérer ou révoquer. Comme une clé API, elle ne s'affiche en entier qu'une seule fois : copiez-la tout de suite.
Le pas-à-pas complet est décrit dans Connecter une boutique hors Shopify (boutique personnalisée).
Une requête est autorisée lorsque l'équipe de la clé possède la boutique ciblée dans l'URL. Une clé d'ingestion ne fonctionne que pour le store_id de sa boutique. Toute autre combinaison retourne une erreur 403 : une clé ne peut jamais écrire dans une boutique extérieure à son équipe.
Situation | Code | Réponse |
|---|---|---|
En-tête Authorization absent |
|
|
Clé inconnue ou supprimée |
|
|
Clé valide mais non autorisée pour cette boutique |
|
|
store_id inconnu ou boutique en pause |
|
|
Équipe sans abonnement actif (API Messaging) |
|
|
L'appel le plus simple pour valider d'un coup la clé, la boutique et l'autorisation est un upsert client. Une réponse 2xx confirme que tout est correct :
curl -X POST https://api.getkanal.com/api/v1/stores/123/customers \
-H "Authorization: Bearer VOTRE_CLE_API" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{ "phone": "+33612345678", "first_name": "Test" }'Pour vérifier une clé destinée à l'API Messaging, appelez plutôt POST /api/v1/me : la réponse indique le numéro WhatsApp et le nom vérifié rattachés à la clé.