Skip to content

Payout/Withdrawal API

Initiate Payout/Withdrawal

Initiate a withdrawal request. The following situations will cause the API call to fail. Please pay attention to the error messages returned by the API:

  1. If the withdrawal amount exceeds the merchant's minimum and maximum withdrawal limits (refer to the merchant backend for withdrawal range limits, and consult customer service for withdrawal fees), the response will be 'Withdrawal amount exceeds limit'.
  2. If the recipient bank card submitted for payout is incorrect, such as an invalid card number, the API will return 'Invalid card number...'. Please be sure to return this error message to the downstream for display, so that customer service can know the reason for withdrawal failure as soon as possible.
  3. For Alipay payouts, please fill in the relevant payment account information, set the bank to 'Alipay', leave 'Bank Branch' blank, and fill in the Alipay phone number or email in 'Account Number'.
  • Request Method: POST
  • Endpoint: http://[API Domain]/api/v1/mch/wdl-orders
  • Request Parameters:
ParameterTypeViet.Thail.BrazilIndiaPh.Description
mch_idnumberMerchant ID, view in merchant backend configuration
trans_idstringMerchant transaction ID, provided by merchant
channelstringChannel code, use 'mock' for testing. For other countries, see System Channel Codes
amountstringOrder amount, keep two decimal places, use string like "100.00"
currencystringCurrency code, see System Currency Codes
account_nostringRecipient account or digital wallet account/address, GCASH uses phone number
account_namestringRecipient account name
account_orgstring⭕️Recipient bank name (see appendix for Vietnamese banks)
account_org_codestring⭕️⭕️⭕️Recipient bank code (see appendix for Vietnamese banks, India uses IFSC)
account_sub_orgstring⭕️⭕️⭕️⭕️⭕️Bank branch
account_typestring⭕️⭕️⭕️⭕️Account type, Brazil uses: CPF, CNPJ, PHONE, EMAIL, EVP
account_tinstring⭕️⭕️⭕️⭕️Account tax number, Brazil uses: CPF or CNPJ number
account_phonestring⭕️⭕️⭕️⭕️Account phone, required if Brazil's account_type is PHONE
account_emailstring⭕️⭕️⭕️⭕️Account email, required if Brazil's account_type is EMAIL
callback_urlstringCallback URL, used to notify payout result
noncestringRandom string, at least 6 characters
timestampnumberUNIX timestamp, 10 digits
signstringsignature. See Signature Algorithm
  • Response:
ParameterTypeDescription
idstringPlatform unique order ID
mch_idnumberMerchant ID
trans_idstringTransaction ID
channelstringChannel code
order_amountnumberOrder amount
currencystringCurrency
account_namestringRecipient name
account_nostringRecipient account
account_orgstringRecipient bank name
account_org_codestringRecipient bank code
account_sub_orgstring(Optional) Bank branch
created_atstringOrder creation time
statusnumberOrder status, 50 means canceled or rejected, 60 means success, 10, 20 means processing

Response Example:

json
{
  "code": 200,
  "payload": {
    "id": "WT1729187424AJCT",
    "trans_id": "2019uZP8KImVd2Xbzae",
    "mch_id": "8888",
    "channel": "bank",
    "order_amount": 100,
    "account_no": "2333667799212341",
    "account_name": "Nguyễn Xuân Hưng",
    "account_org": "PVCOMOBANK",
    "account_org_code": "970425",
    "account_suborg": "Ho Chi Minh City",
    "account_email": "demouser@gmail.com",
    "account_tel_no": "+969839182913",
    "currency": "VND",
    "attatch": "withdrawal",
    "created_at": "2019-04-12 14:12:31",
    "status": 20
  }
}

After successful payout, the system will send a notification to the platform. See Payout Callback for details.

Payout/Withdrawal Query

Query withdrawal status.

  • Request Method: GET
  • Endpoint: http://[API Domain]/api/v1/mch/wdl-orders
  • Request Example: http://[API Domain]/api/v1/mch/wdl-orders?id=OrderID&mch_id=MerchantID&sign=Signature
  • Request Parameters:
ParameterTypeRequiredDescription
idstringOrder ID or Transaction ID. Note: this parameter must be included in the signature
mch_idnumberMerchant ID, view in merchant backend configuration
noncestringRandom string, at least 6 characters
timestampnumberUNIX timestamp, 10 digits
signstringsignature. See Signature Algorithm
  • Response:
ParameterTypeDescription
idstringPlatform unique order ID
mch_idnumberMerchant ID
trans_idstringTransaction ID
order_amountnumberOrder amount
currencystringCurrency, default is CNY
account_namestringRecipient name
account_nostringRecipient account
account_orgstringRecipient bank name
account_org_codestringRecipient bank code
account_suborgstringBank branch
attachmentsstring[]proof files
created_atstringWithdrawal time
statusnumberOrder status, 50 means canceled or rejected, 60 means success, others mean processing
  • Response Example
json
{
  "code": 200,
  "payload": {
    "id": "WOu154sgKfZB",
    "trans_id": "2019uZP8KImVd2Xbzae",
    "mch_id": "8888",
    "channel": "bank",
    "amount": 100,
    "account_no": "2333667799212341",
    "account_name": "Nguyễn Xuân Hưng",
    "account_org": "PVCOMOBANK",
    "account_org_code": "970425",
    "account_email": "demouser@gmail.com",
    "account_tel_no": "+969839182913",
    "currency": "VND",
    "attachments": [],
    "created_at": "2019-04-12 14:12:31",
    "status": 10
  }
}

Released under the MIT License.