---
title: "Authentification et clés API"
description: "Créer une clé API depuis Paramètres > Développeurs > Clés API, trouver votre store_id, sécuriser vos clés et diagnostiquer les erreurs d'authentification."
url: https://help.getkanal.com/fr-fr/articles/14-authentification-et-cles-api
collection: "API"
updated: 2026-10-21
language: fr-fr
alternates: [en]
---

# Authentification et clés API

Créer une clé API depuis Paramètres > Développeurs > Clés API, trouver votre store_id, sécuriser vos clés et diagnostiquer les erreurs d'authentification.

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.

```text
Authorization: Bearer 8fK2pX9mWq4Ld7Vb3Nc6Ts1Z
Accept: application/json
```

La 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.

## Créer une clé API

1.  Cliquez sur le nom de votre équipe, puis sur **Paramètres**.
    
2.  Ouvrez **Développeurs** > **Clés API**.
    
3.  Cliquez sur **Ajouter une clé API**, donnez-lui un nom explicite (par exemple `production-shop`), puis validez avec **Créer**.
    
4.  Copiez immédiatement la clé affichée dans votre gestionnaire de mots de passe ou votre coffre à secrets.
    

> **Warning:** **La clé n'est affichée en entier qu'une seule fois**, au moment de sa création. Ensuite, elle reste visible sous forme masquée, avec seulement ses 4 derniers caractères. Si vous la perdez, supprimez-la et créez-en une nouvelle.

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.

## À quoi la clé est rattachée

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.
    

## Sécuriser vos clés

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.

## Votre store\_id et les clés limitées à une boutique

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)](https://help.getkanal.com/fr-fr/articles/126-connecter-une-boutique-hors-shopify-boutique-personnalisee.md).

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.

> **Info:** Une clé d'ingestion fonctionne aussi sur l'API Messaging : elle permet d'envoyer des messages, pas seulement des données de boutique. Protégez-la comme une clé API classique.

## Erreurs d'authentification

<table style="min-width: 75px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p><strong>Situation</strong></p></th><th colspan="1" rowspan="1"><p><strong>Code</strong></p></th><th colspan="1" rowspan="1"><p><strong>Réponse</strong></p></th></tr><tr><td colspan="1" rowspan="1"><p>En-tête Authorization absent</p></td><td colspan="1" rowspan="1"><p><code>401</code></p></td><td colspan="1" rowspan="1"><p><code>API key is missing</code></p></td></tr><tr><td colspan="1" rowspan="1"><p>Clé inconnue ou supprimée</p></td><td colspan="1" rowspan="1"><p><code>401</code></p></td><td colspan="1" rowspan="1"><p><code>Invalid API key</code></p></td></tr><tr><td colspan="1" rowspan="1"><p>Clé valide mais non autorisée pour cette boutique</p></td><td colspan="1" rowspan="1"><p><code>403</code></p></td><td colspan="1" rowspan="1"><p><code>API key does not authorize this store</code></p></td></tr><tr><td colspan="1" rowspan="1"><p>store_id inconnu ou boutique en pause</p></td><td colspan="1" rowspan="1"><p><code>404</code></p></td><td colspan="1" rowspan="1"><p><code>Store not found or paused</code></p></td></tr><tr><td colspan="1" rowspan="1"><p>Équipe sans abonnement actif (API Messaging)</p></td><td colspan="1" rowspan="1"><p><code>403</code></p></td><td colspan="1" rowspan="1"><p><code>Team has no active subscription</code></p></td></tr></tbody></table>

## Vérifier votre configuration

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 :

```bash
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é.
