> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pulse-sell.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Authentification

> Clés d'API par boutique : format, permissions, adresses IP autorisées, expiration et rotation.

Chaque requête doit prouver qui elle est avec une clé d'API, envoyée dans l'en-tête `Authorization`.

```http theme={null}
Authorization: Bearer psk_9f2c1a7d3b8e4f60_Zk3...
```

## Format d'une clé

Une clé ressemble à `psk_<identifiant>_<secret>` : un préfixe, un identifiant public de 16 caractères, puis un secret de 256 bits. Seul un haché du secret est conservé : même une fuite de base de données ne donnerait aucune clé utilisable.

> [!WARNING]
>
> La clé complète n'est affichée **qu'une seule fois**, à la création. Si vous la perdez, créez-en une nouvelle et révoquez l'ancienne.

## Une clé = une boutique

Chaque clé est liée à **une** boutique. Elle ne peut lire ni modifier les données d'une autre boutique, même si elles vous appartiennent. Si vous gérez plusieurs boutiques, créez une clé par boutique.

## Créer et gérer vos clés

Dans le tableau de bord, ouvrez **Développeurs & API**, puis **Nouvelle clé**. Vous choisissez :

**Nom** `string` *required*

Un nom clair (60 caractères maximum) : « Serveur de licences », « Zapier ». Il vous aidera à retrouver quelle clé fait quoi.

**Permissions** `liste` *required*

Cochez le strict nécessaire. Voir [Permissions](https://docs.pulse-sell.com/concepts/permissions.md).

**Expiration** `1 à 730 jours`

Optionnelle. Après cette durée, la clé est refusée automatiquement. Idéal pour un prestataire temporaire.

**Adresses IP autorisées** `liste`

Optionnelle (20 entrées maximum) : adresses IPv4, plages `a.b.c.d/n` (de /8 à /32) ou adresses IPv6 exactes. Vide = toutes les adresses. Une requête venant d'une autre adresse reçoit `403 ip_not_allowed`.

Vous pouvez avoir jusqu'à **10 clés actives par boutique**. Le tableau de bord indique pour chaque clé sa dernière utilisation, l'adresse détectée et le nombre de requêtes : une activité inattendue est un signal de fuite.

## Si une clé est compromise

**1. Révoquez-la immédiatement**

Dans **Développeurs & API**, révoquez la clé. Elle est refusée dès la requête suivante (`401 api_key_revoked`).

**2. Créez une clé de remplacement**

Avec les mêmes permissions, idéalement restreinte à vos adresses IP.

**3. Mettez à jour votre serveur**

Remplacez la variable d'environnement puis redéployez.

## Erreurs d'authentification

| Statut | Code | Signification |
| - | - | - |
| 401 | `missing_api_key` | Aucun en-tête `Authorization: Bearer ...`. |
| 401 | `invalid_api_key` | Clé mal formée, inconnue ou secret incorrect. |
| 401 | `api_key_revoked` | La clé a été révoquée. |
| 401 | `api_key_expired` | La date d'expiration est dépassée. |
| 403 | `ip_not_allowed` | L'adresse de l'appelant n'est pas dans la liste autorisée. |
| 403 | `missing_scope` | La clé n'a pas la permission requise. `errors.scopes` indique laquelle. |
| 403 | `store_unavailable` | La boutique liée à la clé n'existe plus. |
| 429 | `rate_limited` | Trop de tentatives ou de requêtes. Voir [Limites de débit](https://docs.pulse-sell.com/concepts/rate-limits.md). |

> [!NOTE]
>
> Trop d'essais avec des clés inventées depuis une même adresse sont limités à 30 par minute.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.