Tous les montants sont en XOF (franc CFA ouest-africain), la devise dans laquelle
les opérateurs mobile money du Mali règlent. Le XOF n’a pas de sous-unité :
5000
signifie 5 000 francs — jamais des centimes. Le champ currency vaut XOF par défaut
et c’est la seule valeur que l’API renvoie.Les minimums diffèrent selon le sens : 100 XOF pour encaisser un paiement,
1 000 XOF pour en envoyer un (payouts, paiements en masse et /deposit). En
dessous, la requête est rejetée avec un 400 et un message indiquant le minimum.Démarrage rapide
Effectuez votre première requête authentifiée en quelques minutes.
Authentification
Échangez votre clé et votre secret contre un token Bearer.
Scopes
Comprenez ce que chaque permission d’une clé API autorise.
Référence API
Référence complète des endpoints, avec les schémas de requête et de réponse.
URL de base
/merchant/api, par exemple
https://api.kori.ml/merchant/api/balance.
Fonctionnement
1
Créez une clé API
Dans le tableau de bord, ouvrez Clés API et créez une clé. Choisissez les scopes
qu’elle doit porter (par exemple
pay, balance, webhooks). Vous recevez une
clé API (mk_...) et un secret (ms_...).2
Obtenez un token
Appelez
POST /merchant/api/auth avec votre clé et votre
secret pour recevoir un token Bearer de courte durée portant vos scopes.3
Appelez l'API
Envoyez le token dans
Authorization: Bearer <token> à chaque requête. Chaque
endpoint vérifie le scope qu’il exige.4
Recevez les webhooks
Enregistrez un endpoint webhook pour être notifié quand un paiement
est confirmé, qu’un payout aboutit, et plus encore.
Format des réponses
Toutes les réponses utilisent la même enveloppe :success vaut false et message explique le problème. Voir
Erreurs.
Les encaissements sont asynchrones.
POST /merchant/api/pay renvoie un 202 avec
status: "pending" — le client a seulement reçu une demande de confirmation. Ne
considérez une commande comme payée qu’après le webhook payment_received. Voir
Webhooks.