Skip to content

checkout API

Tip

  • All requests are Post requests, and the data format is json
Brief Description
  • None
Request URL
  • /v1/vexora/checkout
Request Method
  • Method: POST
  • Content-Type: application/json
Header Required Type Description
merchantNo Yes String -
Body
Parameter Name 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 Transaction number (must be unique, recommended format: YYYYMMDDHHMMSS + random digits; max 32 characters)
subMerchantNo Yes String Terminal merchant. Please consult your operations personnel and submit terminal merchant information to obtain it.
amount Yes String Transaction amount (integer only)
mobile Yes String Payer's actual mobile number (11-digit number starting with 0, without country code; e.g., 01XXXXXXXXX). Note: The mobile number and payer information in the request must match the actual payer information.
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.
email Yes String Payer's email address
channelCode Yes String Payment method (see WayCode appendix for details)
wayCode Yes String Payment channel (see WayCode appendix for details)
payerId No String NizPay account ID. Required when wayCode is NIZPAY and the Vexora-hosted cashier is not used. In this case, the paymentLink returned in the response can be ignored.
ipAddress Yes String Payer's IP address (must be the real IP). Each IP is limited to 10 transactions per day, with a maximum of 3 successful transactions.
dateOfBirth No String Payerโ€™s date of birth. This is only required when the wayCode is VA. The payer must be between 18 and 59 years old. Format: YYYY-MM-DD.
notifyUrl Yes String Asynchronous callback URL
returnUrl Yes String URL to redirect the customer after successful authorization
kycReturnUrl No String If provided, after the user completes KYC verification and the payment information is ready, the user's browser is redirected to this URL. After the redirect, the merchant should call the Pay-In Payment Details Query API to retrieve the payment information and display it on its own cashier page. Currently supported for VA payments only.
remark No String Remarks (this field will be returned as-is)
Request Parameter Example
{
  "sign": "363b4674a1c1772e8a50295dc19d6727",
  "timestamp": "1732988442913",
  "tradeNo": "0b4ece82fa9749e8b8e57fa64931b7f8",
  "subMerchantNo": "982773727848278231",
  "amount": 1000000,
  "mobile": "01012459077",
  "firstname": "abc",
  "lastname": "efg",
  "email": "123@gmail.com",
  "channelCode": "NET_BANKING",
  "wayCode": "BANK_TRANSFER",
  "ipAddress": "192.168.0.1",
  "dateOfBirth": "1992-08-15",
  "notifyUrl": "http://abc.com/callback_page",
  "returnUrl": "http://abc.com/callback_page",
  "kycReturnUrl": "http://abc.com/kyc_return_page",
  "remark": "test"
}
Response Result
Parameter Name Required Type Description
msg Yes String Request result (Returning "success" only indicates the request was successful; it should not be used for merchant-side logic)
code Yes String Request response code (Returning "0000" only indicates the request was successful; it should not be used for merchant-side logic)
timestamp Yes String Transaction time
success Yes String Transaction result
data Yes Object Response object
data.tradeNo Yes String Merchant transaction number returned
data.platFormTradeNo Yes String Unique vexora transaction number
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 content of the request (returned as is)
data.paymentLink Yes string Payment link
data.payInfo Yes Object Payment information. Currently, only Virtual Account (VA) payment method returns collection details. The VA information is as follows:
data.payInfo.bankName Yes string Bank name of the Virtual Account
data.payInfo.virtualAccountNumber Yes string Virtual Account number
data.payInfo.virtualAccountHolder Yes string Account holder name of the Virtual Account
data.payInfo.registrationTimestamp Yes string Virtual Account creation time
data.payInfo.expirationTimestamp Yes string Virtual Account expiration time
Successful Response Example
{
    "msg": "success",
    "code": "0000",
    "timestamp": 1748247675703,
    "success": true,
    "data": {
        "tradeNo": "pSPqrzJJ3MHkdyzS",
        "platFormTradeNo": "7gwtljttc64lu4e2",
        "status": "0015",
        "message": "PAYING",
        "paymentLink": "https://sandbox-casher-sk.vexora.com/sk/f024b03c653aa1b3d7c257cf37d9ae92",
        "payInfo": {
            "bankName": "KB๊ตญ๋ฏผ์€ํ–‰",
            "virtualAccountNumber": "12345678900000",
            "virtualAccountHolder":"VXR",
            "registrationTimestamp": "2026-04-09 17:00:50",
            "expirationTimestamp": "2026-04-09 18:00:00",
        },
        "remark": "test"
    }
}

KYC Authentication Redirect to Merchant-Hosted Cashier

Brief Description

After the user completes KYC verification and the payment information is ready, the user's browser is redirected to the merchant-specified kycReturnUrl. After receiving the redirect, the merchant uses the merchant transaction number to call the Pay-In Payment Details Query API, then displays the retrieved payment information on its own cashier page.

Request URL
  • /v1/vexora/queryPayInDetails
Request Method
  • Method: POST
  • Content-Type: application/json
Header
Header Required Type Description
merchantNo Yes String Merchant number
Body
Parameter Name Required Type Description
tradeNo Yes String Merchant transaction number provided for the Pay-In request
timestamp Yes String Timestamp
sign Yes String Signature generated according to the API signature rules
Request Parameter Example
{
    "tradeNo": "test_00000008",
    "timestamp": "1728613488294",
    "sign": "Generate according to the API signature rules"
}
Response Result
Parameter Name Required Type Description
msg Yes String Request result. A value of success only indicates that this request succeeded and must not be used for merchant-side business logic.
code Yes String Response code. A value of 0000 only indicates that this request succeeded. For error codes, refer to the business error code documentation.
timestamp Yes String Transaction time
success Yes Boolean Request processing result
data Yes Object Response object
data.tradeNo Yes String Merchant transaction number
data.platFormTradeNo Yes String Unique transaction number on the Vexora platform
data.status Yes String Transaction status
data.message Yes String Error description or status information
data.paymentLink No String Payment link
data.payInfo No Object Payment information. May be empty if upstream payment information is not yet available or the query fails.
data.payInfo.bankName No String Bank name associated with the Virtual Account (VA)
data.payInfo.virtualAccountNumber No String Virtual Account (VA) number
data.payInfo.virtualAccountHolder No String Virtual Account (VA) account holder name
data.payInfo.registrationTimestamp No String Virtual Account (VA) creation time
data.payInfo.expirationTimestamp No String Virtual Account (VA) expiration time
data.remark No String Original request content returned as-is
Successful Response Example
{
    "msg": "success",
    "code": "0000",
    "timestamp": "1728613488294",
    "success": true,
    "data": {
        "tradeNo": "test_00000008",
        "platFormTradeNo": "c167o1itir0fypid",
        "status": "0015",
        "message": "Paying",
        "paymentLink": "https://sandbox-casher-sk.vexora.com/sk/example",
        "payInfo": {
            "bankName": "KB๊ตญ๋ฏผ์€ํ–‰",
            "virtualAccountNumber": "12345678900000",
            "virtualAccountHolder": "VXR",
            "registrationTimestamp": "2026-04-09 17:00:50",
            "expirationTimestamp": "2026-04-09 18:00:00"
        },
        "remark": "test"
    }
}