One REST API to collect from and pay out to mobile money wallets. Asynchronous, idempotent and webhook-driven, so your platform never waits on a network round trip.
Two endpoints move money. The rest tell you what happened.
The API moves value in two directions over mobile money. Everything else in the reference exists to tell you where a transaction stands and what it did to your balance.
Pull funds from a customer's mobile money wallet into your position. The customer approves the prompt on their handset; you get a webhook the moment it settles.
success, failed or expiredPush funds out to a customer's wallet. There is no approval step and nothing to time out, so a payout either succeeds or fails.
success or failedMobile money is slow and unreliable underneath. The API is shaped so that never becomes your problem.
Every create returns 202 immediately and settles later by webhook. No polling loops, no threads parked waiting on an operator.
Every payment and payout carries an idempotency key, so a timeout or a retry can never charge a customer twice.
HMAC-SHA256 over the timestamp and raw body, with a five-minute replay window. Verification is a few lines in any language.
Amounts are minor units as strings. Phone numbers are digits only. That is most of what you need to know before your first call.
# Collect XAF 11,800 from a customer curl -X POST "$BASE_URL/payments" \ -H "X-Api-Key: $MALY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "method": "mobile_money_mtn", "country": "CG", "amount": { "value": "11800", "currency": "XAF" }, "customer": { "phone": "242064661331" }, "idempotency_key": "8f14e45f-ea0a-4c1b-9f2d", "reference": "ORDER-4471" }' # → 202 Accepted, status: pending # → webhook: payment.succeeded
X-Api-Key, from your backend only.202 Accepted and a transaction id straight away. The customer approves on their handset.Being precise about this matters, to you and to your compliance team.
Provides the gateway. Maly is a technology provider: it does not hold, own or take custody of funds, and does not carry out regulated payment activity.
Holds and safeguards all funds, operates the merchant and customer wallets, and performs regulated payment activity under its own permissions.
Instructs collections and payouts through the API, and owns its own customer relationship and use case.
The full reference is public and needs no login. The commercial and legal set sits behind a partner password.
API reference, integration guide, webhooks and signature verification, error handling, reconciliation, and the go-live checklist.
Open the documentation →Partnership agreement, schedule of charges, governance pack and appendices. Maly shares the password with approved partners directly.
Go to partner area →