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.

Country
Country Code
Currency
Network

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

Name
Value

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"
            }
        }
    }
}

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