跳转到主要内容
EnvironmentRequest URL
Testhttps://uat-interface.haipay.asia
ProdProvided upon go-live
Through these API definitions, merchants can use the interfaces in different environments to complete order creation and payment flows. By continuously adding use case scenarios, more cases can be accumulated and refined.

APIs

Collection

Collection Apply

Create a collection order. URL: /{currency}/collect/apply, where is the currency. See Supported Countries and Currencies Request Method: POST Request Parameters:
ParameterRequiredTypeDescription
appIdYesLongBusiness ID (retrieved from backend, see Merchant Integration Process)
orderIdYesStringMerchant Order ID (must be unique, max length 48)
amountYesStringTransaction amount
nameNoStringPayee name (required for certain scenarios, TODO XXX)
phoneNoStringReal phone number (required for certain scenarios, TODO XXX)
emailNoStringReal email (required for certain scenarios, TODO XXX)
subjectNoStringPayment note
bodyNoStringDetailed remark
inBankNoNoStringCompany collection bank account number
inBankCodeYesStringCollection code
payTypeYesStringUser payment method
callBackUrlYesStringRedirect URL after successful payment
callBackFailUrlYesStringRedirect URL after failed payment
expiryPeriodNoIntegerExpiration time
clientTypeNoStringClient type
signYesStringSignature
outBankNoNoStringPayer bank account number
outBankCodeNoStringCollection code
countryNoStringCredit Card - European Cashier - Country Code (optional)
currencyNoStringUser payment currency
userIdNoLongUser ID (required for GatePay channel, must be numeric)
uuidNoStringUnique user ID
goodNameNoStringProduct name
goodsQuantityNoStringProduct quantity
goodsPriceNoStringProduct unit price
goodsSkuNoStringProduct ID
goodsAvatarNoStringProduct image
platformNoStringPlatform name
Response:
ParameterRequiredTypeDescription
statusYesIntegerResponse code, 1 = success, 0 = failure
errorNoIntegerError code, see Error Codes
msgYesStringError message
dataorderIdYesStringMerchant Order ID
orderNoYesStringPlatform Order ID
payUrlYesStringCollection URL
exchangeRateNoStringExchange rate, returned when user currency differs from merchant base currency
orderAmountNoStringOrder amount, returned when user currency differs from merchant base currency
amountNoStringTransaction amount, returned when user currency differs from merchant base currency
signYesStringSignature
Asynchronous Notification When a collection succeeds or fails, we will push the order status. Notifications are sent every 5 minutes, up to 5 times. The pushed data contains details of the current payment attempt, including: payment amountm and handling fee. URL: Provided by merchant, see Merchant Integration Process Request Method: POST Request Parameters:
ParameterRequiredTypeDescription
appIdYesLongBusiness ID
currencyYesStringCurrency
orderIdYesStringMerchant Order ID (must be unique)
orderNoYesStringPlatform Order ID
amountYesStringCollection amount
feeYesStringHandling fee amount
statusYesIntegerOrder status (2 = success, 3 = failed, 4 = partial, 5 = overpaid)
payTimeYesStringPayment success time (when status = 2,4,5) (local time), format: yyyy-MM-dd HH:mm:ss
errorMsgNoStringPayment failure reason (when status = 3)
signYesStringSignature
After receiving the callback notification, please return body “SUCCESS” (uppercase). Otherwise, notifications will continue up to 5 times.

Collection Query

Query a collection order. Request Parameters:
ParameterRequiredTypeDescription
appIdYesLongBusiness ID (retrieved from backend, see Merchant Integration Process)
orderIdYesStringMerchant Order ID
orderNoNoStringPlatform Order ID (faster response)
signYesStringSignature
Response:
ParameterRequiredTypeDescription
orderIdYesStringMerchant Order ID (must be unique, max length 48)
orderNoYesStringPlatform Order ID
amountYesStringTransaction amount
actualAmountYesStringAmount received
feeYesStringHandling fee
statusYesIntegerStatus (0 = not started, 1 = in progress, 2 = success, 3 = failed, 4 = partial, 5 = overpaid, -1 = exception pending confirmation)
payTimeYesStringPayment success time (for status = 2,4,5) (Philippines time), format: yyyy-MM-dd HH:mm:ss
errorMsgNoStringFailure reason (returned when status = 3)
inBankCodeNoStringCollection code
signYesStringSignature

Refund Apply

TODO

Disbursement

Disbursement Apply

Create a disbursement order. URL: /{currency}/pay/apply, where is the currency. See Supported Countries and Currencies Request Method: POST Request Parameters:
ParameterRequiredTypeDescription
appIdYesLongBusiness ID (retrieved from backend, see Merchant Integration Process)
orderIdYesStringMerchant Order ID (must be unique, max length 48)
amountYesStringTransaction amount
nameYesStringPayee name
phoneYesStringReal phone number
emailYesStringReal email
subjectNoStringPayment note
bodyNoStringDetailed remark
accountNoNoStringPayee account
accountTypeNoStringAccount type
bankNameNoStringDisbursing bank name
bankCodeNoStringDisbursing bank code
signYesStringSignature
identifyTypeNoStringAccount type - Brazil PIX disbursement
ibanAccountNoStringIBAN account - Saudi/Turkey disbursement
countryNoStringRequired for US ACH
address1NoStringRequired for US ACH
address2NoStringRequired for US ACH
address3NoStringRequired for US ACH
postalCodeNoStringRequired for US ACH
ifscNoStringIndia IFSC code
branchNumberNoStringBranch code - Turkey disbursement
birthNoStringPakistan date of birth [yyyy-MM-dd]
genderNoStringPakistan gender [MALE, FEMALE, OTHER]
Response:

Disbursement Query

Account Balance

Query Account

Last modified on April 15, 2026