Mobile Money Deposit
Overview

This API enables your business to seamlessly accept mobile money payments through mobile channels across multiple countries. It provides a reliable and secure payment processing solution that allows businesses to receive funds from customers using various mobile money services.

  • Purpose: Accept mobile money payments from customers in multiple countries and currencies.
  • Target Audience: Merchants, fintechs, and developers integrating mobile money payments.

Quickstart: Mobile Money Deposit
  1. Obtain your Bearer Token and generate the required signature.
  2. Send a POST request to the deposit endpoint with the required parameters.
  3. Parse the response to get the transaction status and details.

Endpoint Reference
HTTP MethodPOST
Endpoint URL/api/v2/payment/
Base URLhttps://base-url-here.com
DescriptionInitiate a mobile money deposit from a customer to your business wallet.
Request Body
FieldTypeDescriptionRequired
wallet_nostringBusiness wallet account number assigned.Yes
referencestringOrder reference, unique per request.Yes
acc_namestringCustomer name.Yes
emailstringCustomer email.Yes
acc_nostringCustomer Mobile Money registered phone number. Format: {countryCode=254}{phone=7XXXXXXXX} e.g. 2547XXXXXXXXYes
amountnumericOrder amount to be paid (no commas as thousands separator).Yes
currencystringCurrency (e.g. KES, TZS, XOF, MWK, RWF, UGX, ZMW, BWP, XAF, CDF, EGP, GMD, GHS, GNF, LSL, MRU, MZN, NGN, SLL, ZAR).Yes
descriptionstringYour order description.Yes
channelnumericChannel unique code. e.g. 100000 for M-PESA-KENYA. See table below for channel codes.Yes
result_urlstringURL to your server for callback response.Yes
Channel Codes
Channel CodeNameCurrency
100000MOBILE MONEY - KENYAKES
300001MOBILE MONEY - TANZANIATZS
300011MOBILE MONEY - UGANDAUGX
220000MOBILE MONEY - BENINXOF
230000MOBILE MONEY - MALAWIMWK
240000MOBILE MONEY - RWANDARWF
260000MOBILE MONEY - ZAMBIAZMW
210000MOBILE MONEY - BOTSWANABWP
250000MOBILE MONEY - BURKINA FASOXOF
270003MOBILE MONEY - CAMEROONXAF
280000MOBILE MONEY - CENTRAL AFRICAN REPUBLICXAF
290000MOBILE MONEY - CHADXAF
310000MOBILE MONEY - CONGO BRAZZAVILLEXAF
320000MOBILE MONEY - DRCCDF
330000MOBILE MONEY - EGYPTEGP
340000MOBILE MONEY - EQUATORIAL GUINEAXAF
350000MOBILE MONEY - GABONXAF
360000MOBILE MONEY - GAMBIAGMD
370000MOBILE MONEY - GHANAGHS
380000MOBILE MONEY - GUINEAGNF
390000MOBILE MONEY - GUINEA BISSAUXOF
410000MOBILE MONEY - IVORY COASTXOF
420000MOBILE MONEY - LESOTHOLSL
430000MOBILE MONEY - MALIXOF
440000MOBILE MONEY - MAURITANIAMRU
450000MOBILE MONEY - MOZAMBIQUEMZN
460000MOBILE MONEY - NIGERXOF
470000MOBILE MONEY - NIGERIANGN
480000MOBILE MONEY - SENEGALXOF
490000MOBILE MONEY - SIERRA LEONESLL
500000MOBILE MONEY - SOUTH AFRICAZAR
510000MOBILE MONEY - TOGOXOF
Request Headers
HeaderTypeDescriptionRequired
AuthorizationstringBearer token used to access the APIYes
SignaturestringSHA-256 signature. Concatenate channel+reference+currency+amount, sign with your private key, and Base64 encode.Yes

Example Request
curl --location --request POST 'https://base-url-here.com/api/v2/payment/' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <token>' \
--header 'Signature: xxx' \
--header 'x-hash: xxxxxx' # Generated X-Hash header \
--data-raw '{
"wallet_no": "xxxxxxx",
"reference": "TRXXXX79",
"acc_name": "JOHN DOE",
"acc_no": "2547XXXXXXXX",
"currency": "KES",
"amount": 10,
"channel": 100000,
 "email": "johndoe@gmail.com",
"description": "Deposit to order",
"result_url": "https://webhook.site/947e8f48-c03a-4717-a2dd-8cdb2f64e897"
}'

Success Response
FieldTypeDescription
successbooleanIndicates if the request was successful
messagestringResponse message
data.transaction_idstringTransaction ID
data.statusstringTransaction status
data.status_descriptionstringTransaction status description
data.datestringTransaction timestamp
{
    "success": true,
    "message": "Successfully initiated",
    "data": {
        "transaction_id": "056341150381",
        "status": "PENDING",
        "status_description": "Transaction Initiated successfully",
        "date": "2024-02-17 13:34:02 PM"
    }
}

Security Best Practices
  • Always use HTTPS for all API requests.
  • Keep your private key secure and never share it.
  • Verify the signature on the server side for every request.

Terms of Use & Legal

By using this API, you agree to our Terms of Service and Privacy Policy. Do not share sensitive data or credentials.