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, UGX, etc.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
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.

Support & Feedback

For help, contact support@bobplus.africa.
Feedback on this documentation? Let us know.


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.