Overview
Kratos Pay API is Kratos Financials Inc.'s payment gateway. It lets any application — online store, SaaS platform, mobile app — collect (Cash-In) and disburse (Cash-Out) Mobile Money and card payments across Central Africa.
Live endpoints
Download the guide for offline useAuthentication
Send your Live public key in the X-MoK-Public-Key header. Do not send a secret key or applicationId. Keep the public key on your server-side integration.
X-MoK-Public-Key: <VOTRE_CLE_PUBLIQUE_LIVE>
Content-Type: application/jsonPayin — collection
Method POSThttps://dev-aggregator-api.kratospay.com/api/v1/live/payin
JSON payload
{
"amount": 5000,
"currency": "XAF",
"phoneNumber": "237690000000",
"operator": "orange_money_cm",
"reference": "INV-123456",
"description": "Paiement facture internet"
}Successful response
{
"status": "SUCCESS",
"reference": "INV-123456",
"amount": 5000,
"currency": "XAF",
"timestamp": "2026-09-10T15:30:00Z",
"gatewayMessage": "Transaction successful"
}Payout — disbursement
Method POSThttps://dev-aggregator-api.kratospay.com/api/v1/live/payout
JSON payload
{
"amount": 5000,
"currency": "XAF",
"phoneNumber": "237690000000",
"operator": "mtn_momo_cm",
"reference": "OUT-123456",
"description": "Paiement fournisseur"
}Successful response
{
"status": "SUCCESS",
"reference": "OUT-123456",
"amount": 5000,
"currency": "XAF",
"timestamp": "2026-09-10T15:30:00Z",
"gatewayMessage": "Transaction successful"
}Example error response
Example validation structure. The HTTP status and exact details depend on the error returned by the 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"
}
}Integration checks
- Use a unique reference for each transaction and inspect the business status returned by the API.
- A SUCCESS status confirms success; an HTTP success alone is not sufficient.
- Handle errors using error.code and error.details without assuming every failure has the same HTTP status.
- These Live endpoints may move real funds. Verify the phone number, operator, amount and environment before submitting.
What the API lets you do
- Collect a Mobile Money or card payment from your application (Cash-In).
- Disburse funds to a Mobile Money wallet or bank account (Cash-Out).
- Get notified in real time of every status change via signed webhooks.
- Test the entire flow without real money using the Sandbox environment.
Key vocabulary
- Wallet: an end user's Mobile Money wallet (a phone number tied to an operator).
- Transaction: a money movement identified by a unique transaction_id, in one of the PENDING, SUCCESS or FAILED statuses.
- Webhook: an HTTP POST notification sent by Kratos Pay to your server on every transaction status change.
- Idempotency key: a unique identifier you generate for each request, to prevent the same transaction being created twice after a network retry.