Vue d'ensemble

Kratos Pay API est la passerelle de paiement de Kratos Financials Inc. Elle permet à n'importe quelle application — boutique en ligne, plateforme SaaS, application mobile — d'encaisser (Cash-In) et de reverser (Cash-Out) des paiements Mobile Money et carte bancaire en Afrique centrale.

Authentification

Utilisez la clé publique Live dans l’en-tête X-MoK-Public-Key. N’envoyez ni clé secrète ni applicationId. La clé publique doit rester côté serveur dans votre intégration.

X-MoK-Public-Key: <VOTRE_CLE_PUBLIQUE_LIVE>
Content-Type: application/json

Payin — encaissement

Méthode POSThttps://dev-aggregator-api.kratospay.com/api/v1/live/payin

Payload JSON

{
  "amount": 5000,
  "currency": "XAF",
  "phoneNumber": "237690000000",
  "operator": "orange_money_cm",
  "reference": "INV-123456",
  "description": "Paiement facture internet"
}

Réponse de succès

{
  "status": "SUCCESS",
  "reference": "INV-123456",
  "amount": 5000,
  "currency": "XAF",
  "timestamp": "2026-09-10T15:30:00Z",
  "gatewayMessage": "Transaction réussie"
}

Payout — décaissement

Méthode POSThttps://dev-aggregator-api.kratospay.com/api/v1/live/payout

Payload JSON

{
  "amount": 5000,
  "currency": "XAF",
  "phoneNumber": "237690000000",
  "operator": "mtn_momo_cm",
  "reference": "OUT-123456",
  "description": "Paiement fournisseur"
}

Réponse de succès

{
  "status": "SUCCESS",
  "reference": "OUT-123456",
  "amount": 5000,
  "currency": "XAF",
  "timestamp": "2026-09-10T15:30:00Z",
  "gatewayMessage": "Transaction réussie"
}

Exemple de réponse d’erreur

Exemple de structure de validation. Le code HTTP et le détail exact dépendent de l’erreur renvoyée par l’API.

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "The provided data is invalid.",
    "details": {
      "phoneNumber": [
        "The phone number field is required."
      ]
    }
  },
  "meta": {
    "request_id": "example-request-id",
    "timestamp": "2026-09-10T15:30:00Z"
  }
}

À vérifier côté intégration

  • Utilisez une référence unique par transaction et vérifiez le statut métier retourné par l’API.
  • Un statut SUCCESS confirme la réussite ; une réponse HTTP réussie ne suffit pas à elle seule.
  • Traitez les erreurs selon error.code et error.details, sans supposer que tous les échecs ont le même code HTTP.
  • Ces endpoints Live peuvent déplacer de vrais fonds. Vérifiez le numéro, l’opérateur, le montant et l’environnement avant l’envoi.

Ce que permet l'API

  • Encaisser un paiement Mobile Money ou carte depuis votre application (Cash-In).
  • Reverser des fonds vers un portefeuille Mobile Money ou un compte bancaire (Cash-Out).
  • Être notifié en temps réel de chaque changement de statut via des webhooks signés.
  • Tester l'intégralité du parcours sans argent réel grâce à l'environnement Sandbox.

Vocabulaire clé

  • Wallet : le portefeuille Mobile Money d'un utilisateur final (numéro de téléphone associé à un opérateur).
  • Transaction : un mouvement d'argent identifié par un transaction_id unique, dans un des statuts PENDING, SUCCESS ou FAILED.
  • Webhook : une notification HTTP POST envoyée par Kratos Pay vers votre serveur à chaque changement de statut d'une transaction.
  • Idempotency key : un identifiant unique que vous générez pour chaque requête, pour éviter qu'une même transaction soit créée deux fois en cas de nouvel essai réseau.