Mobile Money Wallet

This section outlines the required parameters for processing payments to mobile money wallets. Transfers to bank accounts follow a similar format—simply make a POST request to our Payout API. However, depending on the beneficiary type and the currency of the account, additional information may be required.

For a complete list of currencies supported for mobile money transfers, please refer to the Supported Currencies page.

Common Details
So first, let's go through the basic information needed for any account. You'll need to provide these details.

FieldMandatoryTypeDescription
businessYesStringThe ID of the business making the payout.
sourceCurrencyYesStringThe currency which is used to fund the payout
destinationCurrencyYesStringThe currency in which the recipient will be receiving funds
amountYesStringThe value that is to be transferred from the source currency wallet.
Note: Decimals are not allowed as 'amount', for mobile money payouts with mobileMoneyCode:"AIRTEL".
descriptionYesStringThis is the type of account you want to send your payments to; see payment destinations for more details
paymentDestinationYesStringThe value should be sent as mobile_money_wallet
customerReferenceYesStringThe transaction's unique identifier on your system. Customer references prevent duplicate transactions. We advice that you add it to your payload
quoteReferenceNoStringThis is the reference generated when the source currency is compared against the destination currency.This is required when the source currency is not the same as the destination currency. You can generate a quote using the Generate quote endpoint.

In addition to the common details needed to process successful payments, the following fields are also required when sending money to a mobile money wallet.

FieldMandatoryTypeDescription
beneficiaryYesObjectThe recipient of the funds. Depending on the currency and beneficiary type, the properties of the beneficiaries are different.
beneficiary.firstNameYesStringThe first name of the beneficiary.
beneficiary.lastNameYesStringThe last name of the beneficiary
beneficiary.phoneNoStringThe mobile number of the beneficiary. It should be in this format countryCallingCode(mobile number).e.g 2348027438483. NB: please exclude passing the plus(+) with the number
beneficiary.accountHolderNameYesStringThis field is required by all types of beneficiaries.
beneficiary.accountNumberYesStringThe mobile number of the beneficiary. It should be in this format countryCallingCode(mobile number).e.g 2348027438483. NB: please exclude passing the plus(+) with the number
beneficiary.typeYesStringThe type of beneficiary, see beneficiary types for more details
beneficiary.countryYesStringThe country in which the bank of the beneficiary is located. This field should be in ISO 3166-1 alpha-2 codes e.g NG, GB
beneficiary.emailNoStringThe beneficiary's email
beneficiary.mobileMoneyCodeYesStringThis value is the mobile money wallet provider's code. You must use the List bank endpoint to obtain this value.Note: When mobileMoneyCode is "AIRTEL", the 'amount' field must be a whole number, not a decimal.

The payload should look like this:

{
    "business": "{{The business ID}}",
    "sourceCurrency": "KES",
    "destinationCurrency": "KES",
    "amount": "1000",
    "description": "I want to pay my vendor",
    "paymentDestination": "mobile_money_wallet",
    "customerReference": "b67vfv",
    "quoteReference": "1330bd3c-1e09-4c1c-887f-7f1d72ff905e",
    "beneficiary": {
        "firstName": "Hassan",
        "lastName": "Sarz",
        "accountHolderName": "Hassan Sarz",
        "country": "KE",
        "phone": "2548034567898",
        "mobileMoneyCode": "SAFARICOM",
        "accountNumber": "2548034567898",
        "type": "individual",
        "email": "[email protected]"
    }
}
{
    "business": "{{The business ID}}",
    "sourceCurrency": "GHS",
    "destinationCurrency": "GHS",
    "amount": "1000",
    "description": "i want to pay my vendor",
    "paymentDestination": "mobile_money_wallet",
    "customerReference": "b67vfv",
    "quoteReference": "1330bd3c-1e09-4c1c-887f-7f1d72ff905e",
    "beneficiary": {
        "firstName": "Hassan",
        "lastName": "Sarz",
        "accountHolderName": "Hassan Sarz",
        "country": "GH",
        "phone": "2330803443433",
        "mobileMoneyCode": "AIRTEL",
        "accountNumber": "2330803443433",
        "type": "individual",
        "email": "[email protected]"
    }
}
{
    "business": "{{The business ID}}",
    "sourceCurrency": "UGX",
    "destinationCurrency": "UGX",
    "amount": "1000",
    "description": "I want to pay my vendor",
    "paymentDestination": "mobile_money_wallet",
    "customerReference": "b67vfv",
    "quoteReference": "1330bd3c-1e09-4c1c-887f-7f1d72ff905e",
    "beneficiary": {
        "firstName": "Hassan",
        "lastName": "Sarz",
        "accountHolderName": "Hassan Sarz",
        "country": "KE",
        "phone": "2548034567898",
        "mobileMoneyCode": "SAFARICOM",
        "accountNumber": "2548034567898",
        "type": "individual",
        "email": "[email protected]"
    }
}