Skip to content

Checkout API

Tip

  • All requests are Post requests, and the data format is json
Brief Description
  • Collection payment method
Request URL
  • /v1/vexora/checkout
Request Method
  • Method: POST
  • Content-Type: application/json
Parameter Name Required Type Description
merchantNo Yes String None
Body
Parameter Name Required Type Description
tradeNo Yes String Transaction number (should be unique; recommended format: YYYYMMDDHHMMSS + random number)
amount Yes String Amount (no decimals allowed, minimum amount is 100 PKR)
name Yes String Payer's name
customerCert Yes String
Payer's identification number (CNIC - 13 digits - format XXXXXYYYYYYZ) with strong validation
email Yes String Payer's email (should use gmail.com domain, e.g., abc@gmail.com)
mobile Yes String
Payer's mobile number (10-digit number starting with 3) with strong validation
remark Yes String Remarks; this field will be returned as is
timestamp Yes String Timestamp (e.g., 1715941383720)
custId No String Customer ID (required when the collection amount exceeds 50,000). It is recommended to use a complex String to represent the user ID, e.g., m2hkCRuTCK5HKpEkA0ok.
Note: For large amounts, the same customer ID with the same amount can only appear once within one hour.
paymentType No String Payment type. Optional values: easypaisa, jazzcash.
sign Yes String Except for sign, the remaining fields should be sorted by the first letter to form key1=value1key2=value2, and then use the app secret as salt to perform MD5 encryption. The final sign should be in lowercase.
notifyUrl Yes String Asynchronous callback URL
returnUrl No String Cash register page redirect URL; remove escape characters “\”, reference format: https://www.abc.com/. If not provided, the system will redirect to the default success page.
Example of Request Parameters
{
    "returnUrl": "https://example.com/return",
    "amount": "10000",
    "tradeNo": "order45692193212we3111",
    "notifyUrl": "https://example.com/notify",
    "name": "John Doe",
    "customerCert": "1730123456789",
    "email": "johndoe@gmail.com",
    "mobile": "3115112345",
    "remark": "Payment for order #456",
    "custId": "m2hkCRuTCK5HKpEkA0ok",
    "timestamp": "1730431256223",
    "sign": "5b161d2dc6f09a061953bf9e062fcbf1"
}
Response Result
Parameter Name Required Type Description
msg Yes String Request result (when returning "success", it only indicates that this request was successful; it should not be used for merchant-side logic judgment)
code Yes String Request response code (when returning "0000", it only indicates that this request was successful; it should not be used for merchant-side logic judgment). For specific error codes, please refer to the business error code enumeration.
timestamp Yes String Transaction time
success Yes String Transaction result
data Yes Object Returned object
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.desc Yes String Error description
data.remark Yes String Content returned from the request (returned as is)
data.paymentLink Yes String Payment link, i.e., the cash register
Example of Successful Return
{
    "msg": "success",
    "code": "0000",
    "data": {
        "platFormTradeNo": "2kvziksxbvxg062d",
        "remark": "Payment for order #456",
        "paymentLink": "https://casher.pk.vexora.tech/A7-HinFioAA",
        "status": "0015",
        "desc": "CREATED"
    },
    "success": true,
    "timestamp": 1731653732177
}