MoMo Payout (Business to Client)
Overview

This API empowers your business to efficiently send money and process payouts for business operations, including employee salary disbursements, vendor payments, and other financial transactions.

  • Purpose: Disburse funds to mobile money wallets for payroll, vendor payments, and other financial operations.
  • Target Audience: Merchants, fintechs, and developers integrating mobile money payout functionality.

Quickstart: MoMo Payout
  1. Obtain your Bearer Token and generate the required signature and X-Hash.
  2. Send a POST request to the payout 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 payout to a recipient's wallet.
Request Body
FieldTypeDescriptionRequired
wallet_nostringBusiness wallet account number assigned.Yes
referencestringOrder reference, unique per request.Yes
acc_namestringRecipient name.Yes
emailstringRecipient email.Yes
acc_nostringRecipient 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).Yes
descriptionstringYour order description.Yes
channelnumericChannel unique code. e.g. 100003 for M-PESA-KENYA. See table below for channel codes.Yes
result_urlstringURL to your server for callback response.Yes
Channel Codes
Channel CodeNameCurrency
100003MOBILE MONEY - KENYAKES
300002MOBILE 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
x-hashstringGenerated X-Hash header for additional security.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": 100003,
    "email": "johndoe@gmail.com",
    "description": "Pay for order #23243222",
    "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 and X-Hash 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.