Authentification
Ikawaari utilise plusieurs types de credentials selon le contexte. Les clés API ik_XXX sont réservées aux intégrations serveur-à-serveur. Les apps interactives Ikawaari comme le dashboard, l’ops console et la marketplace utilisent des access tokens OpenIddict.
Bearer Token
Pour une intégration serveur, incluez votre clé API secrète dans le header Authorization :
curl https://api.ikawaari.com/api/v1/payment-intents \
-H "Authorization: Bearer ik_test_sk_your_key_here" \
-H "X-Environment: sandbox"
Environnements
| Préfixe de credential | Usage | Environnement |
|---|---|---|
ik_test_sk_ | Clé secrète serveur | Sandbox |
ik_live_sk_ | Clé secrète serveur | Live |
ik_test_pk_ | Clé publishable côté client | Sandbox |
ik_live_pk_ | Clé publishable côté client | Live |
L’environnement doit aussi être transmis avec X-Environment: sandbox ou X-Environment: live. Une clé live ne doit jamais être utilisée pour simuler un appel sandbox.
Modèle De Credentials
| Credential | Émetteur | Usage |
|---|---|---|
| OpenIddict access token | Ikawaari Identity | Sessions interactives first-party : dashboard, ops, marketplace |
ik_test_sk_ / ik_live_sk_ | Dashboard/API keys | Appels serveur-à-serveur |
ik_test_pk_ / ik_live_pk_ | Dashboard/API keys | Initialisation côté client uniquement, jamais pour APIs serveur |
| Restricted keys | Dashboard/API keys | Intégrations serveur avec scopes limités |
| App tokens | Marketplace apps | Appels effectués par une app installée |
| Flow session tokens | UIFlow runtime | Sessions courtes de vérification hébergée |
| MerchantJwt | Legacy | Compatibilité dashboard marchand existante |
OpenIddict ne valide pas les clés ik_XXX, et les handlers de clés API ne valident pas les tokens OpenIddict. Chaque credential est validé par son handler, puis Ikawaari résout un contexte marchand canonique.
Marketplace Apps
Le catalogue public de la marketplace est accessible sans authentification :
curl https://api.ikawaari.com/api/v1/public/marketplace/apps \
-H "X-Environment: sandbox"
Les actions marchandes, comme installer une app, nécessitent une session utilisateur OpenIddict et un contexte marchand :
curl https://api.ikawaari.com/api/v1/merchant/marketplace/apps/{appId}/install-consent \
-H "Authorization: Bearer OPENIDDICT_ACCESS_TOKEN" \
-H "X-Environment: sandbox" \
-H "X-Merchant-Account-Id: ma_xxxxx"
L’installation et le consentement marketplace sont réservés aux utilisateurs ayant un rôle marchand suffisant, comme owner ou admin.
Appels Serveur Avec Clé API
Les clés secrètes ik_XXX doivent être utilisées uniquement depuis votre backend :
curl https://api.ikawaari.com/api/v1/payment-intents \
-H "Authorization: Bearer ik_live_sk_your_key_here" \
-H "X-Environment: live" \
-H "Content-Type: application/json"
Ne placez jamais une clé ik_live_sk_ ou ik_test_sk_ dans une application navigateur, mobile ou dans un dépôt Git.
Bonnes pratiques de sécurité
- N’exposez jamais les clés API dans du code côté client, des dépôts Git ou des logs
- Utilisez des variables d’environnement pour stocker les clés API
- Restreignez les scopes des clés au minimum de permissions requis
- Faites tourner régulièrement les clés et révoquez celles inutilisées
- Utilisez le whitelisting IP pour les clés de production lorsque c’est possible
- Ne transmettez jamais d’access token dans l’URL ; utilisez le header
Authorization - Envoyez toujours
X-Environmentpour éviter toute ambiguïté sandbox/live