Disbursement
Tip
Payout API is used to initiate transfer requests to e-wallets or bank accounts.
- All requests are
Post requests, and the data format is json
Request URL
Request Method
- Method: POST
- Content-Type: application/json
| header |
Required |
Type |
Description |
| merchantNo |
yes |
String |
no |
Request Body Parameters
| Parameter name |
Required |
Type |
Description |
| sign |
yes |
String |
Except for sign, the remaining fields are sorted by first letter to form key1=value1key2=value2, and app secrect is used as salt for md5 encryption. The sign is finally lowercase. |
| timestamp |
yes |
String |
Timestamp๏ผ1715941383720๏ผ |
| tradeNo |
yes |
String |
Transaction number (unique (recommended year month day hour minute second + random number)) |
| amount |
Yes |
String |
Payment amount (integer only, unit: yuan, minimum value: 100) |
| accountNo |
Yes |
String |
Beneficiary bank account number |
| mobile |
Yes |
String |
Beneficiaryโs actual mobile number (10โdigit number starting with 0, without country code), e.g., 09XXXXXXXX |
| email |
Yes |
String |
Beneficiaryโs email address |
| firstname |
Yes |
String |
Payer's actual first name. Note: The mobile number and payer information in the request must match the actual payer information. |
| lastname |
Yes |
String |
Payer's actual last name. Note: The mobile number and payer information in the request must match the actual payer information. |
| notifyUrl |
Yes |
String |
Asynchronous callback URL |
| remark |
No |
String |
Remarks (this field will be returned asโis) |
Request Parameter Example
{
"amount": "100.00",
"mobile": "081234567890",
"email": "rizky.pratama@example.com",
"accountNo": "880123456789012345",
"firstname": "Rizky",
"lastname": "Pratama",
"tradeNo": "VX20260331008901",
"notifyUrl": "https://api.merchant.com/vexora/collection/notify",
"sign": "7c6a180b36896a0a8c02787eeafb0e4c",
"timestamp": "1719876543210"
}
Response Results
| Parameter name |
Required |
Type |
Description |
| msg |
yes |
String |
Request result (when success is returned, it only means that the request for this time is successful and cannot be used for merchant-side logical judgment) |
| code |
yes |
String |
Request response code (when 0000 is returned, it only means that the request for this time is successful, and cannot be used for merchant-side logical judgment). For specific status/error codes, please check the status/error code directory |
| timestamp |
yes |
String |
Transaction timestamp |
| success |
yes |
String |
Transaction result |
| data |
yes |
Object |
Return Object |
| data.tradeNo |
yes |
String |
Merchant transaction number |
| data.platFormTradeNo |
yes |
String |
vexora transaction number, unique |
| data.status |
yes |
String |
Transaction results,Merchants can process subsequent workflows based on the returned status in the transaction result. For details, please refer to the status code reference table. |
| data.message |
yes |
String |
Error description |
| data.remark |
yes |
String |
remark |
Successful Returned Example
{
"msg": "success",
"code": "0000",
"timestamp": 1719876543210,
"success": true,
"data": {
"tradeNo": "VX20260331011223",
"platFormTradeNo": "vx4m8k2d9pl0q7f1a",
"status": "0015",
"message": "Processing",
"remark": "collection_vx_11223"
}
}