Checkout
Tip
- All requests are
Post requests, and the data format is json
Brief Description
This section introduces the API endpoint for creating a payment link.
Request URL
Request Method
- Method: POST
- Content-Type: application/json
| Header |
Required |
Type |
Description |
| merchantNo |
Yes |
String |
Merchant Number๏ผMID๏ผ |
Body
| Parameter |
Required |
Type |
Description |
| sign |
Yes |
String |
The sign field is generated by sorting all fields except sign in alphabetical order and concatenating them as key1=value1key2=value2. Use app secret as salt for MD5 encryption. The sign field should be in lowercase. |
| timestamp |
Yes |
String |
Timestamp (e.g. 1715941383720) |
| tradeNo |
Yes |
String |
Unique disbursement ID for a specific request, generated by partner. |
| amount |
Yes |
float |
The amount your user must paid to complete the transaction, the minimum amount for Rp10.000 |
| username |
Yes |
String |
Customer name linked to the transaction. |
| mobile |
Yes |
String |
User's mobile phone number (starting with 08 or 628, a total of 10-13 digits of Indonesian mobile phone number) |
| email |
Yes |
String |
Email of user, using email standard format. |
| channelCode |
No |
String |
Payment channel code for limiting the displayed payment channels at the cashier. If not specified, all channels will be displayed. Options: QRIS, EWALLET, VA |
| wayCode |
No |
String |
Payment method code. Refer to the Deposit WayCode. Note: If using wayCode, channelCode is required; otherwise, wayCode is invalid. |
| notifyUrl |
Yes |
String |
The URL used by the system to send an automatic response or N otification after a transaction or process is completed. |
| returnUrl |
No |
String |
URL to redirect the customer to after successful authorization |
| remark |
No |
String |
Remarks (will be returned as is) |
Request Body Example
{
"sign": "363b4674a1c1772e8a50295dc19d6727",
"timestamp": "1732988442913",
"tradeNo": "0b4ece82fa9749e8b8e57fa64931b7f8",
"username": "jack",
"amount": 1000000,
"channelCode": "EWALLET",
"wayCode": "DANA",
"email": "user@gmail.com",
"mobile": "6281245907765",
"notifyUrl": "https://google.com",
"returnUrl": "http://abc.com/callback_page",
"remark": "test"
}
Response
| Parameter |
Required |
Type |
Description |
| msg |
Yes |
String |
Request result (success only indicates successful request, not for merchant logic judgment) |
| code |
Yes |
String |
Request response code (0000 indicates successful request, not for merchant logic judgment). For specific error codes, refer to the business error code enumeration |
| timestamp |
Yes |
String |
Transaction time |
| success |
Yes |
String |
Transaction result |
| data |
Yes |
Object |
Response object |
| data.tradeNo |
Yes |
String |
Unique disbursement ID which partner put on the request. |
| data.platFormTradeNo |
Yes |
String |
Unique disbursement ID from vexora, partners can use this ID for reconciliation. |
| 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.desc |
Yes |
String |
Error description |
| data.remark |
Yes |
String |
Returned content of the request (as is) |
| data.paymentUrl |
Yes |
String |
paymentUrl |
| data.qrString |
No |
String |
QR code information |
Successful Response Example
{
"msg": "success",
"code": "0000",
"timestamp": 1728609277476,
"success": true,
"data": {
"tradeNo": "428c430ce59b47138674c971ff07a711",
"platFormTradeNo": "c167o1itir0fypid",
"status": "0015",
"desc": "Paying",
"remark": "11111",
"paymentUrl": "http://vexora.tech/cashier/dsfjlsdkjflksdfjlkfs",
"qrString": "00020101021226670021ID/.HTTPS://CFSUKSESS011893600922376110100202097611010020303UMI51440014ID.CO.QRIS.WWW0215ID20243249690030303UMI520465335802ID5902CF6015 JAKARTA SELATA610512760540550000530336062360525db913be449be4568b21c4b19e0703A0163041909"
}
}