Chaque requête vers l'API Kanal est authentifiée par une clé API transmise dans l'en-tête Authorization.
Authorization: Bearer 8fK2pX9mWq4Ld7Vb3Nc6Ts1ZLa 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.
Rendez-vous dans Settings puis API Keys.
Cliquez sur Add API key, donnez-lui un nom explicite (par exemple production-shop), puis validez avec Create.
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 My API keys, et en supprimer une à tout moment. La suppression est immédiate et irréversible.
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 Settings > API Keys 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. Si vous ne le connaissez pas, demandez-le à votre contact Kanal.
Une requête est autorisée lorsque l'équipe propriétaire de la clé possède la boutique ciblée dans l'URL. Les clés créées depuis Settings > API Keys couvrent toute l'équipe. Kanal peut aussi restreindre une clé à une seule boutique : elle ne fonctionnera alors que pour ce store_id. Toute autre combinaison retourne une erreur 403, ce qui garantit qu'une clé ne peut jamais écrire dans une boutique extérieure à son équipe.
Les endpoints de l'API Messaging ne prennent pas de store_id : la clé détermine directement le numéro WhatsApp d'envoi.
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 "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é.