Disbursement
Tip
- Use this API to initiate a payout to a Vietnam bank account
- All requests use
POST
- Content type is
application/json
Brief Description
This API is used to submit payout instructions to beneficiary bank accounts in Vietnam.
Request URL
Request Method
- Method: POST
- Content-Type: application/json
| header |
Required |
Type |
Description |
| merchantNo |
yes |
String |
Merchant number |
Request Body Parameters
| Parameter name |
Required |
Type |
Description |
| sign |
yes |
String |
Except for sign, all fields are sorted alphabetically and concatenated as key=value pairs. Append the app secret and generate the MD5 result in lowercase. |
| timestamp |
yes |
String |
Timestamp๏ผ1715941383720๏ผ |
| tradeNo |
yes |
String |
Merchant transaction number. Uniqueness is required. |
| amount |
Yes |
String |
Payout amount (integer only, minimum value: 100) |
| bankCode |
Yes |
String |
Beneficiary bank code. Refer to the Vietnam disbursement bank code list. |
| bankNumber |
Yes |
String |
Beneficiary bank account number |
| name |
Yes |
String |
Beneficiary name (must be the actual/legal name) |
| mobile |
Yes |
String |
Beneficiary mobile number |
| email |
Yes |
String |
Beneficiary email address |
| notifyUrl |
Yes |
String |
Asynchronous callback URL |
| remark |
No |
String |
Remarks (this field will be returned asโis) |
Request Parameter Example
{
"amount": "100",
"bankCode": "0003",
"bankNumber": "3560123456789012",
"name": "NGUYEN VAN A",
"mobile": "09123456789",
"email": "nguyenvana@gmail.com",
"tradeNo": "VX20260331004567",
"notifyUrl": "https://merchant-api.com/payment/vexora/payout/notify",
"sign": "e10adc3949ba59abbe56e057f20f883e",
"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 |
Returned remark value |
Successful Returned Example
{
"msg": "success",
"code": "0000",
"timestamp": 1719876543210,
"success": true,
"data": {
"tradeNo": "VX20260331004567",
"platFormTradeNo": "vx8f3k29d0qplm7x2",
"status": "0015",
"message": "Processing",
"remark": "payout_vx_04567"
}
}