Aller au contenu

Authentification

L'API utilise des clés API pour authentifier les requêtes. Chaque clé est associée à un tenant (établissement).

Obtenir une clé API

  1. Connectez-vous à l'interface d'administration (/control/)
  2. Allez dans Configuration > Clés API
  3. Cliquez sur Ajouter une clé API
  4. Saisissez un libellé (ex: PMS Production)
  5. La clé sera affichée une seule fois — conservez-la précieusement

Sécurité

La clé API donne un accès complet aux données de paiement de votre établissement. Ne la partagez jamais et ne la stockez pas dans du code source.

Utilisation

Incluez la clé dans le header X-API-Key de chaque requête :

curl -X GET \
  -H "X-API-Key: abc12345.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  https://votre-domaine.com/api/payment-requests/

Format de la clé

<prefix>.<secret>
  • prefix (8 caractères) : identifiant visible dans l'administration
  • secret (56 caractères) : partie secrète, hachée en base

Exemples par langage

import requests

API_KEY = "abc12345.votre-clé-secrète"
BASE_URL = "https://votre-domaine.com/api"

response = requests.get(
    f"{BASE_URL}/payment-requests/",
    headers={"X-API-Key": API_KEY},
)
print(response.json())
const API_KEY = "abc12345.votre-clé-secrète";
const BASE_URL = "https://votre-domaine.com/api";

const response = await fetch(`${BASE_URL}/payment-requests/`, {
  headers: { "X-API-Key": API_KEY },
});
const data = await response.json();
$apiKey = "abc12345.votre-clé-secrète";
$baseUrl = "https://votre-domaine.com/api";

$ch = curl_init("$baseUrl/payment-requests/");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "X-API-Key: $apiKey",
    "Content-Type: application/json",
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response, true);
curl -H "X-API-Key: abc12345.votre-clé-secrète" \
     https://votre-domaine.com/api/payment-requests/

Erreurs d'authentification

Code HTTP Signification
401 Unauthorized Clé API manquante ou invalide
403 Forbidden Clé API révoquée ou expirée
{
  "detail": "Unauthorized"
}

Bonnes pratiques

  • Utilisez des variables d'environnement pour stocker la clé
  • Créez des clés séparées pour le dev et la production
  • Révoquez immédiatement une clé compromise
  • Utilisez HTTPS exclusivement (HTTP est rejeté en production)