Payment API
Tips
- All requests are
Post
requests, and the data format isjson
Brief Description
Request URL
/api/payin
Request Method
- POST
Header
header | Required | Type | Description |
---|---|---|---|
merchantNo | Yes | string | None |
Body
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 | long | Timestamp (1715941383720) |
amount | Yes | string | Amount๏ผThe minimum amount is recommended to be greater than KSH.50, and only integers are supported๏ผ |
remark | No | string | Remark, this field will be returned as-is |
tradeNo | Yes | string | Transaction number (uniqueness recommended: year, month, day, hour, minute, second + random number) |
mobile | Yes | string | Mobile number (in some countries, the mobile number is the account number) |
notifyUrl | Yes | string | Asynchronous callback URL |
Request Parameter Example
{
"sign": "000000",
"timestamp": "1715941383720",
"amount": "3",
"remark": "000000",
"tradeNo": "00000001",
"mobile": "mobile",
"notifyUrl": "https://google.com"
}
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": 1719829837779,
"success": true,
"data": {
"serialNumber": "5286e98841194687a95d25b5f3be346d",
"status": "0015",
"desc": "CREDIT_INPROGRESS"
}
}