Mobile money
Collect payments via our mobile money api
Follow these steps to accept payment using our mobile money API:
Initiate the Payment via API
Customer validates OTP on their device(optional)
Check Status via API
You would need to pass, as header the
x-auth-token. This can be obtained from your merchant dashboard → Settings → Generate API keys → Merchant public key.
Coverage
The gateway parameter should be set to anyone of the following currencies.
Democratic Republic of the Congo
COD
CDF
vodacom, airtel, orange, mpesa
Republic of the Congo
COG
XAF
airtel, mtn
Kenya
KEN
KES
mpesa
Uganda
UGA
UGX
airtel, mtn
Senegal
SEN
XOF
free, orange
Tanzania
TZS
TZS
airtel, tigo, halotel
Ivory Coast (Côte d'Ivoire)
CIV
XOF
mtn, orange
Rwanda
RWA
RWF
airtel, mtn
Zambia
ZMB
ZMW
mtn, zamtel
Sierra Leone
SLE
SLE
orange
Gabon
GAB
XAF
airtel
Initiate the Payment
POST - {{env_url}}/pay/aggregators/{{gateway}}/mobilemoney/v3
NB: Request on this api must be encrypted. See encryption algorithm here
Headers
Content-Type
application/json
x-auth-token*
Your merchant public key
Request Body (plain version)
*must be encrypted before sending
{
"fullname": "Francisca Reuben",
"email": "[email protected]",
"phone_number": "260953456700",
"tx_ref": "de43d7a1-569c-4348-abd8-75246e81d500", // must be UUID generated
"network": "mtn",
"description": "payment for airpod",
"country": "ZMB",
"amount": "10",
"currency": "ZMW",
"rate": 1,
"paymentType": "woo", // should be left has woo
"sourceCurrency": "ZMW",
"sourceAmount": 1,
"rememberMe": false,
"productType": "COLLECTION"
}Request Body (encrypted)
{
"message": "encrypted-body"
}Response
The customer will need to enter the OTP sent to their provided phone number when the payment is initiated and the message in the response message is "Please enter otp".
{
"message": "success",
"error": null,
"data": {
"message": "success",
"error": null,
"data": {
"amount": "10",
"charged_amount": "10",
"currency": "ZMW",
"message": "Please enter otp",
"status": "pending",
"customer": {
"country": "ZMB",
"name": "Francisca Reuben",
"phone_number": "260763456789",
"operator": "mtn"
}
}
}
}{
"message": "success",
"error": null,
"data": {
"message": "success",
"error": null,
"data": {
"amount": "10",
"charged_amount": "10",
"currency": "ZMW",
"message": "Transaction in progress",
"status": "pending",
"customer": {
"country": "ZMB",
"name": "Francisca Reuben",
"phone_number": "260763456789",
"operator": "mtn"
}
}
}
}{
"message": "failed",
"error": "Bad Request",
"data": {
"status": "error",
"error": "failed",
"message": "Duplicate reference provided"
}
}Check Status
Use the Transaction status API here to check the status of the transaction by passing your transaction reference as tnx_ref in the request body.
Last updated
