Aller au contenu

Authentification

L’API Sangho utilise des clés API pour authentifier les requêtes. Chaque App dispose d’une clé publique et d’une clé secrète.

Types de clés

TypePréfixe (prod)Préfixe (test)Usage
Clé Publiquepk_prod_pk_test_Initialisation SDK côté client uniquement
Clé Secrètesk_prod_sk_test_Requêtes serveur uniquement — ne jamais exposer
Note

L’environnement s’appelle prod, pas live — la clé sk_prod_ est la seule à déclencher des transactions réelles.

Utilisation en header HTTP

Ajoutez votre clé secrète dans le header Authorization de chaque requête, préfixée par Bearer.

Sandbox vs. Production

Les clés sk_test_ pointent vers la base Sandbox — aucune transaction réelle. Les clés sk_prod_ déclenchent des transactions réelles.

Important

Ne jamais utiliser une clé sk_prod_ en frontend ou dans du code JavaScript côté client. Elle pourrait être exposée et compromise.

Rotation de clés

  • 1. Créez une nouvelle clé depuis Dashboard → Paramètres → Clés API
  • 2. Mettez à jour votre configuration serveur avec la nouvelle clé
  • 3. Révoquez l’ancienne clé — elle est immédiatement invalidée
  • 4. Toutes les requêtes avec l’ancienne clé retourneront 401

Idempotency Key

Pour les requêtes POST critiques (PaymentIntent, Refund), ajoutez un header Idempotency-Key unique — un UUID par exemple. Si vous re-soumettez la même requête avec la même clé dans les 24h, Sangho retourne la réponse déjà produite (avec l’en-tête Idempotency-Replayed: true) au lieu de créer un doublon.

Attention

Si la même clé est réutilisée avec un corps de requête différent, Sangho refuse la requête avec une erreur 409 IDEMPOTENCY_CONFLICT plutôt que de deviner quelle version traiter.

Header d’authentification

http
Authorization: Bearer sk_prod_xxxxxxxxxxxxxxxxxxxx
Content-Type: application/json

Avec Idempotency Key

http
Authorization: Bearer sk_prod_xxxx
Content-Type: application/json
Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000

Exemple d’appel authentifié

bash
curl https://api.sangho.ga/v1/apps/ \
  -H "Authorization: Bearer sk_prod_xxxx" \
  -H "Content-Type: application/json"

Réponse — Clé invalide (401)

ResponseRéponse
json
{
  "status": 401,
  "type": "AUTHENTICATION_ERROR",
  "code": "INVALID_API_KEY",
  "message": "Clé API invalide ou expirée.",
  "doc_url": "https://docs.sangho.ga/errors#INVALID_API_KEY",
  "request_id": "req_5d0cc04ea0664a50a14a247f"
}
Note

Récupérez vos clés depuis Dashboard → Développeurs → Clés API. Les clés test sont visibles dès l’inscription, sans KYC requis.