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

# Authentification

> Comment authentifier vos requêtes API

## Clés API

CaurisFlux utilise des clés API pour authentifier les requêtes. Vous trouverez vos clés dans le [Dashboard](https://dash-app.caurisflux.com/settings/api).

<Warning>
  Ne partagez jamais vos clés secrètes (`sk_*`). Elles donnent un accès complet à votre compte.
</Warning>

## Types de clés

| Type             | Préfixe                 | Utilisation                   |
| ---------------- | ----------------------- | ----------------------------- |
| **Clé publique** | `pk_test_` / `pk_live_` | Identification du marchand    |
| **Clé secrète**  | `sk_test_` / `sk_live_` | Authentification côté serveur |

<Info>
  Les deux clés sont nécessaires pour authentifier vos requêtes. Le format est `clé_publique:clé_secrète`.
</Info>

## Environnements

<Tabs>
  <Tab title="Sandbox (Test)">
    **URL de base** : `https://sandbox-api.caurisflux.com/api/v1`

    **Préfixe des clés** : `pk_test_` / `sk_test_`

    * Aucune transaction réelle
    * Numéros de test disponibles
    * Idéal pour le développement
  </Tab>

  <Tab title="Production">
    **URL de base** : `https://prod-api.caurisflux.com/api/v1`

    **Préfixe des clés** : `pk_live_` / `sk_live_`

    * Transactions réelles
    * Vérification KYC requise
    * Utilisez avec précaution
  </Tab>
</Tabs>

## Méthodes d'authentification

Vous avez deux options pour authentifier vos requêtes :

### Option 1 : Header X-API-Key (recommandé)

Ajoutez le header `X-API-Key` avec la valeur `pk_xxx:sk_xxx`.

### Option 2 : Bearer Token

Ajoutez le header `Authorization` avec la valeur `Bearer pk_xxx:sk_xxx`.

## Endpoints publics (sans authentification)

Certains endpoints ne nécessitent pas d'authentification :

| Endpoint                           | Description                    |
| ---------------------------------- | ------------------------------ |
| `GET /payments/providers`          | Liste des méthodes de paiement |
| `GET /countries/active`            | Liste des pays disponibles     |
| `GET /payments/public/status/:id`  | Statut public d'un paiement    |
| `GET /payouts/reference/corridors` | Corridors de payout            |
| `GET /payouts/reference/purposes`  | Motifs de paiement             |
| `GET /health`                      | État de l'API                  |

## Bonnes pratiques

<Steps>
  <Step title="Variables d'environnement">
    Stockez vos clés dans des variables d'environnement, jamais dans le code source.
  </Step>

  <Step title="Fichier .gitignore">
    Ajoutez vos fichiers de configuration (`.env`, `config.json`) à `.gitignore`.
  </Step>

  <Step title="Clés différentes par environnement">
    Utilisez des clés différentes pour le développement, le staging et la production.
  </Step>
</Steps>

## Rotation des clés

Pour des raisons de sécurité, vous pouvez régénérer vos clés à tout moment :

1. Allez dans **Dashboard > Paramètres > API**
2. Cliquez sur **Régénérer** à côté de la clé
3. Mettez à jour votre application avec la nouvelle clé

<Note>
  L'ancienne clé reste active pendant 24h pour vous laisser le temps de migrer.
</Note>

## Erreurs d'authentification

| Code  | Message         | Solution                                 |
| ----- | --------------- | ---------------------------------------- |
| `401` | Non authentifié | Vérifiez le format de vos clés           |
| `403` | Non autorisé    | Vérifiez les permissions de votre compte |
