Skip to content

Checkout

Tip

  • All requests use POST
  • Content type is application/json
Brief Description

Use this API to create a hosted checkout order and obtain the cashier page URL for the payer.

Request URL
  • /v1/vexora/checkout
Request Method
  • Method: POST
  • Content-Type: application/json
Headers
Header Required Type Description
merchantNo Yes String Merchant number
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 transaction number (recommended format: yyyymmddhhmmss + random number)
amount Yes String Transaction amount: For KHR, only whole numbers are supported (unit: KHR). For USD, up to two decimal places are supported (unit: USD).
firstname Yes String Payer's legal first name. The submitted payer information must match the actual payer information.
lastname Yes String Payer's legal last name. The submitted payer information must match the actual payer information.
mobile Yes String The payer's actual mobile phone number. For Cambodia mobile numbers, the format should be 8 to 9 digits, excluding the country code.
email Yes String Payer's email address.
channelCode Yes String Refer to the Deposit WayCode appendix.
wayCode Yes String Refer to the Deposit WayCode appendix.
notifyUrl Yes String Asynchronous callback URL
returnUrl Yes String URL to redirect the customer after successful authorization
remark Yes String Remarks (this field will be returned asโ€‘is)
Request Body Example
{
  "sign": "a8f5f167f44f4964e6c998dee827110c",
  "timestamp": "1719876543210",
  "tradeNo": "VX20260331000125",
  "amount": "300",
  "mobile": "09123456789",
  "firstname": "Rizky",
    "lastname": "Pratama",
    "email": "123@gmail.com",
  "channelCode":"KHQR",
  "wayCode":"KHQR",
  "notifyUrl": "https://merchant-api.com/vexora/payment/notify",
  "returnUrl": "https://merchant.com/payment/result",
  "remark": "order_vx_000125"
}
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 Merchant transaction number
data.platFormTradeNo Yes String Unique 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 (as is)
data.paymentLink Yes String Hosted cashier URL
data.payInfo No String For payment information, the original QR code is currently returned only in the case of KHQR.
Successful Response Example
{
  "msg": "success",
  "code": "0000",
  "timestamp": 1719876543210,
  "success": true,
  "data": {
    "tradeNo": "VX20260331000125",
    "platFormTradeNo": "vx8f3k29d0qplm7x2",
    "status": "0015",
    "message": "Processing",
    "remark": "order_vx_000125",
    "paymentLink": "https://checkout.vexora.com/pay?token=8f3k29d0qplm7x2a9bc45de7812fg90",
    "payInfo":"00020101021229440013testkhqr@01099691002030210Pay5204599953038405402105802KH591284-2925433416010PHNOMPENH62290302PX071920367761265847910429934001317
  }
}