Skip to content

Disbursement

Tip

Payout API is used to initiate transfer requests to e-wallets or bank accounts.

  • All requests are Post requests, and the data format is json
Brief Description
  • None
Request URL
  • /v1/vexora/disbursements
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
tradeNo Yes String Unique identifier (recommended format: YYYYMMDDHHMMSS + random number)
amount Yes String Payment amount (no decimals allowed, minimum amount is 100 PKR)
name Yes String Recipient's name
customerCert Yes String Recipient's identification number (CNIC - 13 digits - format XXXXXYYYYYYZ) with strong validation
email Yes String Recipient's email
mobile Yes String Recipient's mobile number with strong validation. Supported formats: a 10-digit number starting with 3, or an 11-digit number starting with 03.
accountType Yes String Recipient's account type. Supported values: BANK, WALLET.
bankName Yes String Bank or wallet code. When accountType=BANK, use a value from the Bank List. When accountType=WALLET, use a value from the Wallet Bank List such as EASYPAISA or JAZZCASH.
bankNumber Yes String Recipient account number. When accountType=BANK, submit the bank account number. When accountType=WALLET, submit the recipient wallet mobile number.
notifyUrl Yes String Asynchronous callback URL
remark Yes String Request remarks
timestamp Yes String Timestamp (e.g., 1715941383720)
sign Yes String Generate the sign by sorting the body fields alphabetically to form key1=value1key2=value2, then use the app secret as salt for MD5 encryption; the final sign should be in lowercase.
Example of Request Parameters
{
    "amount": "5000",
    "tradeNo": "order67890",
    "name": "Jane Doe",
    "customerCert": "1730123456789",
    "email": "jane@gmail.com",
    "mobile": "3115112345",
    "accountType": "BANK",
    "bankName": "ALLIED_BANK_LIMITED",
    "bankNumber": "9876543210",
    "notifyUrl": "https://yourcallbackurl.com/notify",
    "remark": "Payment for invoice #1001",
    "timestamp": "1730057564000",
    "sign": "xxxx"
}
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 timestamp
success Yes Boolean 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)
Example of Successful Return
{
    "msg": "success",
    "code": "0000",
    "data": {
        "platFormTradeNo": "dxy6779lhk4vofur",
        "remark": "Payment for invoice #1001",
        "status": "0015",
        "desc": "CREATED"
    },
    "success": true,
    "timestamp": 1731656734898
}