Payout API
Tips
Payout API is used to initiate transfer requests to e-wallets or bank accounts.
- All requests are
Post
requests, and the data format isjson
Request URL
/api/payout
Request Method
- POST
Header
header | Required | Type | Description |
---|---|---|---|
merchantNo | Yes | string | None |
Request Body Parameters
Parameter | Required | Type | Description |
---|---|---|---|
sign | Yes | string | Except for the sign field, all remaining fields should be sorted alphabetically by their first letter, combined into key1=value1key2=value2, and encrypted using the app secret as salt via MD5. The final sign value should be in lowercase. |
timestamp | Yes | integer | Timestamp |
amount | Yes | string | Payment amount ๏ผThe minimum amount is recommended to be greater than KSH.50, and only integers are supported๏ผ |
remark | No | string | Request remark |
tradeNo | Yes | string | Uniqueness (recommended to use year, month, day, hour, minute, second + random number) |
mobile | Yes | string | Mobile number๏ผ12-digit number prefixed with 2541 or 2547๏ผ |
notifyUrl | No | string | Asynchronous callback URL |
Request Parameter Example
{
"sign": "000000",
"timestamp": "1715941383720",
"amount": "50",
"remark": "000000",
"tradeNo": "1000023",
"mobile": "254115555088"
}
Response Result
Parameter | Required | Type | Description |
---|---|---|---|
msg | Yes | string | Request result (when returning success, it only indicates that the request was successful and cannot be used for merchant-side logic judgment) |
code | Yes | string | Request response code (when returning 0000, it only indicates that the request was successful and cannot be used for merchant-side logic judgment). For specific error codes, please refer to the business error code enumeration. |
timestamp | Yes | string | Transaction time |
success | Yes | string | Transaction result |
data | Yes | Object | Return object |
data.serialNumber | Yes | string | Result ID returned by paypro, unique |
data.status | Yes | string | Request result, merchants can use this for logic processing. When the result is 0000, it indicates a successful transaction; 0015 indicates processing; all other codes indicate errors and can be treated as failures. |
data.desc | Yes | string | Error description |
data.remark | Yes | string | Request return content (returned as-is) |
Successful Response Example
{
"msg": "success",
"code": "0000",
"timestamp": 1719829933893,
"success": true,
"data": {
"serialNumber": "32e936de44164512abe419a9d1b2449a",
"status": "0015",
"desc": "CREDIT_INPROGRESS"
}
}