跳转到主要内容
Before reading this API documentation, be sure to review the API Description Guide

Limits

Transaction TypeLimit (Unit: USD)
Collection0.99 - 1000

Collection API

Collection Application

Brief Description:
  • Create a collection order
URL: USD: /usd/collect/apply Description: appId in USD, amount in USD, actual settlement in USD Parameters:
Parameter NameRequiredTypeDescription
appIdYesLongBusiness ID (obtain from backend, need to pass the corresponding business ID based on currency)
orderIdYesStringMerchant order number (must be unique, length cannot exceed 48)
nameYesStringCardholder name, format: firstName and lastName separated by space, example: Donald John Trump
phoneNoStringReal phone number (format reference Phone Number Format)
emailYesStringReal email address
amountYesStringTransaction amount, default in USD (rounded to two decimal places; no punctuation allowed, e.g., “,”)
payTypeYesStringBANK_TRANSFER
inBankCodeYesStringPayment Method
callBackUrlYesStringUser redirection URL after successful payment
notifyUrlYesStringAsynchronous notification URL
countryNoStringCountry
currencyNoStringCurrency
clientTypeYesStringClient type, possible values: APP, WEB, WAP, MINIAPP, OTHERS
accountNoYesStringCredit card number
expiryMonthYesStringCredit card expiry month, e.g., 02
expiryYearYesStringCredit card expiry year, e.g., 2031
cvvYesStringCard Security Code (CSC) or CVV or CVV2
refererYesStringCustomer’s payment page
userAgentYesStringUser agent, real information, used for risk control
customerIpYesStringCustomer IP address
subjectYesStringPayment description
bodyNoStringDetailed description of the order
partnerUserIdYesStringUnique user identifier (e.g., userId), used for risk control system; must be real and valid. Allowed characters: numbers, lowercase and uppercase letters, or common symbols -~!@#$%&*()_
signYesStringSignature
request
{
    "appId": 1054,
    "orderId": "1752751125282",
    "amount": "999.99",
    "name": "Master card",
    "phone": "09123456789",
    "email": "zhangsan@gmail.com",
    "customerIp": "142.250.191.174",
    "payType": "BANK_TRANSFER",
    "inBankCode": "CREDIT_CARD",
    "clientType": "WEB",
    "accountNo": "4000056655665556",
    "expiryMonth": "11",
    "expiryYear": "2028",
    "cvv": "234",
    "referer": "https://tn-cashier.haipay.top",
    "callBackUrl": "https://www.google.com",
    "userAgent": "Mozilla/5.0 (Linux; Android 10; PPA-LX2; HMSCore 6.15.0.311) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.196 HuaweiBrowser/15.0.10.302 Mobile Safari/537.36",
    "subject": "iPhone 16 ProMax 256G",
    "partnerUserId": "9527",
    "sign": "0Np0HI3bcjoVIX+RbdUwqIIYi75k98Z3djHRn4sNWKx6pM+NW6EWnCafMFDZMfUOSqm0Rt86NOX80a9W9i9cqeS6IIBl/naBfTa1Fo6nxwswztjY+xJkChn3BQ2/vWy0QTClY7594mhmMxbexr+Msr5QRs4j/jmxVzbN4xhwHAD4jsThk6pGyNa4hU8kE2bkPvegzXcjfWwZXpTxJhmHfwkrGvM1kpq9nETEFCGTWqDTKQ+eVncptAqWicECRvEKgt5nO09D3HeVrc8h4d9UxTrgoYi0umO11bSKpZTDG4WicXTasdbAbLBtbysqrebSihgsLrbtYYISWohyanXGkQ=="
}
response
{
    "status": "1",
    "error": "00000000",
    "msg": "",
    "data": {
        "orderId": "M233323000059",
        "orderNo": "6023071013539074",
        "payUrl": "",
        "sign": "YEoA8Y2JzQFGVzwJSqmemm1Kfv/bfyIfCqv2dp7RNzT5B72AQvdD+nt2nR4sL1HWscvmNHyVt5ovAi7MMhy3ziih/sMph+wPx4YjH3W1h5DyBvSlWvaKfKrK5ViomZ0pPYWydwRHnnRnicxToHK9S6qtSy7Q73O0hdz4hJ9p41Th3ycBl2Q9SeqSZYSY1ohcPDhdyRf2y0prb8rHgpBKzxZ5BKX/1bsE9OmsSEHAEYT8OGgko6aNe8XPAhr4G48cpWTftvnGQuzh0O65nuZRI/PF+Axt2zJCVbFHDDSREI9NlAT82ebDqhlVdxQzKE67D1nxgjb3dPmDUYHOBpmwxQ=="
    }
}

Return Data Parameters Description

ParameterTypeDescription
orderIdStringMerchant order number (must ensure uniqueness)
orderNoStringPlatform order number
payUrlStringVerification URL (for 3D verification)
signStringSignature

Collection Query

Brief Description:
  • Query collection orders.
URL:
  • /usd/collect/query (for USD)
Parameters:
ParameterRequiredTypeDescription
appIdYesLongBusiness ID (to be obtained from the backend, needs to pass the corresponding business ID based on the currency in the URL)
orderIdYesStringMerchant order number
orderNoNoStringPlatform order number (faster response)
signYesStringSignature
request
{
    "appId": 1054,
    "orderId": "M22222000028",
    "sign": "EmyJGm3ELzG4FsOd0Krs9ncbSjo4oTGuXWML+7djYla3+VAwd9wS17z38p/7U2ZAjroO04XrE7YXcB1o76Dtyipj3h3bJzs7FYma1QNkMUdt9hh7m8U6hMsMQX7vIWHtXNwz4pbTSC75+kQWXaCew7KoE6LXECdJU8AISgNgeki2TK9R0pCfshr0Z2SZBPeuT6OvIH5LdmqgdZhuqnffGU2qnXk4KMkO848e6/WALLBR+LE1wyKHfPnYVcuKSMVYxkvKyyIL5JIPEgW0o5bh4RCbaUn3NZtyYwrU1uQ3ZDFRThm9j6XAQP+LBlmq3nOePqBtp/VDVarRaV+7FbQg3A=="
}
response
{
    "status": "1",
    "error": "00000000",
    "msg": "",
    "data": {
        "orderId": "M22222000028",
        "orderNo": "6023042811314347",
        "amount": "50.00",
        "actualAmount": "0.00",
        "fee": "0.00",
        "status": 1,
        "sign": "fP433ygWVDLVGxYkVnIJj7riGq0U3vyVX+MbBAImxfGLZkZcEAHVEoVYuULZSmXAAXKRSyd67WlDNm+24pougM54ofAoH4HMtCL2tfCoBReFyz3z02AGKkrKE2xWhSpWoqfQoBvzwuN5iGMMu0s9Q1YvqiwJ8WDVIENnmiIyD8qDJN7caHTW2US14/faG+69AvnuIgJ/nu7/jogOlgEYdZdVYU7gcRDE+d47KjlFGswQkJ/h/uzV7cWtUqrtOO7ZnZ3/z33Xx8awokX36QoYcPSWAU0h+Ij9O9402HNhm1eTbYcLU0uI/z8xCAtyAI/tTyiFijpiNlxUKQj+zKsILw=="
    }
}

Return Data Parameters Description

ParameterTypeDescription
orderIdStringMerchant order number (must ensure uniqueness)
orderNoStringPlatform order number
amountStringTransaction amount
actualAmountStringAmount received
feeStringHandling fee
statusIntegerStatus (0: not started, 1: in payment, 2: success (final state), 3: failed (final state), -1: exception pending confirmation)
payTimeStringPayment success time (when status=2, this field has value) (local time), format: yyyy-MM-dd HH:mm:ss
errorMsgStringPayment failure reason (when status=3, this field has value)
signStringSignature

Refund

Payment Method

payTypeinBankCodeLimitDescription
BANK_TRANSFERCREDIT_CARD(0.99-1000)Only supports USD orders, Credit Cards (VISA, MasterCard)

Subscription API

Subscription Application

Brief Description:
  • Create a subscription order.
URL: /subscription/apply Parameters:
ParameterRequiredTypeDescription
appIdYesLongBusiness ID (to be obtained from the backend, needs to pass the corresponding business ID based on the currency in the URL)
subscriptionOrderIdYesStringMerchant order number (must ensure uniqueness, length no more than 48)
amountYesStringTransaction amount (accurate to two decimal places; punctuation marks like “,” are not allowed)
nameYesStringUser’s name, recommended to use real name, format: include firstName and lastName separated by space, e.g., Donald John Trump
phoneNoStringReal phone number (refer to Phone Number Format)
emailYesStringReal email address
subjectYesStringPayment remark
bodyNoStringRemark details
payTypeYesStringSubscription
inBankCodeYesStringPayment Method
callBackUrlYesStringURL to redirect the user after payment success
notifyUrlYesStringAsynchronous notification URL
countryNoStringCountry
currencyNoStringCurrency
clientTypeYesStringClient type, possible values: APP, WEB, WAP, MINIAPP, OTHERS
accountNoYesStringCredit card number
expiryMonthYesStringCredit card expiry month, e.g., 02
expiryYearYesStringCredit card expiry year, e.g., 2031
cvvYesStringCredit card security code (CSC) or CVV or card verification code (CCV)
refererYesStringThe customer payment page
userAgentYesStringUser agent, real information, used for risk control
customerIpYesStringClient IP address
partnerUserIdYesStringUnique user identifier (e.g., userID), used for risk control, must be real and valid, otherwise, it may affect the transaction. Format: numbers, letters, or common symbols -~!@#$%&*()_.
recurringIntervalYesStringRecurring interval: D, W, M, Y
recurringIntervalCountYesStringInterval count for the recurring period
retryTimesYesStringNumber of retry attempts
signYesStringSignature
request
{
    "appId": 1054,
    "subscriptionOrderId": "1752752449648",
    "amount": "999.99",
    "name": "Jon Smith",
    "email": "zhangsan@gmail.com",
    "subject": "iPhone 16 ProMax 256G",
    "payType": "SUBSCRIPTION",
    "inBankCode": "CREDIT_CARD",
    "callBackUrl": "https://www.google.com",
    "notifyUrl": "https://www.google.com",
    "clientType": "WEB",
    "accountNo": "4000056655665556",
    "expiryYear": "2028",
    "expiryMonth": "11",
    "cvv": "234",
    "referer": "https://tn-cashier.haipay.top",
    "userAgent": "Mozilla/5.0 (Linux; Android 10; PPA-LX2; HMSCore 6.15.0.311) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.196 HuaweiBrowser/15.0.10.302 Mobile Safari/537.36",
    "customerIp": "142.250.191.174",
    "partnerUserId": "9527",
    "recurringInterval": "D",
    "recurringIntervalCount": 2,
    "sign": "lNWHfQPubGzx97LQbDnorVUprfJkkzDyW4Ue/lDENfl6xDY7iyF3MWRv730q6tNFpDAuPH6ltdi+RWpaG4U6wKiGfSckCmJttPzaxxFelKsJvli33/Xp+qEBfLV/pk9bKVGo1Pwxlt59U3FzOHuXnMDDBD96pcWfYOg42Ry/vEUwUfPtYTE9rK6PraR7GDekS2mAiSs6XDAYjR8CbvQ0ZDNj/bElF747vLGqgo8nrArnjNdJTjtvzpwI0ZgSsHcto2w+rwW8RIQqdrcm+zyk4y8s/MWfTePKXxt2PdeYY9FelHtXSCaOb9KmnLdTlHiM40PVbobIISGg63wgGywFhA=="
}

response
{
    "status": "1",
    "error": "00000000",
    "msg": "",
    "data": {
      "subscriptionNo": "4025071719404220010",
      "subscriptionOrderId": "1752752449648",
      "appId": 1054,
      "subject": "Test subscription",
      "payType": "SUBSCRIPTION",
      "inBankCode": "CREDIT_CARD",
      "amount": 999.99,
      "recurringInterval": "D",
      "recurringIntervalCount": 2,
      "status": "1",
      "payUrl": "https://tn-uat-cashier.haipay.top/pay/usd/redirect/?orderNo=cmgjhy4v6v0a",
    }
}

Return Data Parameters Description

ParameterTypeDescription
subscriptionOrderIdStringMerchant subscription number (must ensure uniqueness)
subscriptionNoStringPlatform subscription number
appIdStringBusiness ID
subjectStringPayment remark
payTypeStringSubscription is fixed as SUBSCRIPTION
inBankCodeStringBank code
amountStringAmount
recurringIntervalStringRecurring interval: D, W, M, Y
recurringIntervalCountStringInterval count for the recurring period
statusStringSubscription status (-1: Subscription exception, 1: Processing, 2: Subscription successful, 3: Subscription failed, 4: Subscription canceled)
signStringSignature

Query Subscription

Brief Description:
  • Query subscription orders.
URL: /subscription/query Parameters:
ParameterRequiredTypeDescription
appIdYesLongBusiness ID (to be obtained from the backend, needs to pass the corresponding business ID based on the currency in the URL)
subscriptionNoYesStringPlatform subscription number
signYesStringSignature
request
{
    "appId": 1724,
    "sign": "gETp00ngwiG0qPVcpldPGEsWRCShOJUbwxWizbL9xGbWCtlBsTPFshQtClLtBCRAdhoVNZAD7UQXjdiAsr74neYu1akj1a6d3sNapGaqoTdBgykXyr1hLVe14AIUhLRg0Mj2elOlMPiWMdccSC+i4G/lfPpJLpS/T08S8qttExTOjML5Rrny5jNsYedjf+Jo3jrPsLcfZFX3QrWA4txPG+x7ZrShXUonOiZMoH6hwU8PcETrC0vpGqTwySJ6siS2AwyPOZElR6nf3geIx7GAllFUuZSyjCvRDE+9JeZl5Y2Ohlm9xcRxqHgMi4YB3jSJcwo7GqGqnPapZnO2GvcbGw==",
    "subscriptionNo": "4025011311423010028"
}
response
{
    "status": "1",
    "error": "00000000",
    "msg": "",
    "data": {
        "subscriptionOrderId": "1736739758574",
        "subscriptionNo": "4025011311423010028",
        "appId": 1724,
        "subject": "Test subscription",
        "payType": "SUBSCRIPTION",
        "inBankCode": "CREDIT_CARD",
        "amount": 0.50000000,
        "recurringInterval": "D",
        "recurringIntervalCount": 1,
        "status": "2",
        "sign": "fscM1XiVPqDb/NxrZuVv33zvqFxsXsKri6+MzIsWqdMlcsa7E3ayGNHg6ChiVxFVdow3NAlmg4szGXp0AtvOLDdQ/BAfC8DWpbktjDXeiEQ7ma1/ZKsmVrrLHzF01B5UI33xYX+qMsjMQ/yJBHwY1LTOhPq3lIwShwhB92CCd6IfPPkSi1EPDL6QLKAll3NNRVUw3vktIx+ghePojrmkgOesD7ujCPlXPjvznJ4o99BFhwPr6i+a0w++ZvfoE/NuClTCP4mf1n4umnw70GqHDv3OfwVk9FeE27SC/TMJIgVJiVc9L3o+mJNUyaIT3o9EyKkfUl+lNsz1KnUyfjycUg=="
    }
}

Return Data Parameters Description

ParameterTypeDescription
subscriptionOrderIdStringMerchant subscription number (must ensure uniqueness)
subscriptionNoStringPlatform subscription number
appIdStringBusiness ID
subjectStringPayment remark
payTypeStringSubscription is fixed as SUBSCRIPTION
inBankCodeStringBank code
amountStringAmount
recurringIntervalStringRecurring interval: D, W, M, Y
recurringIntervalCountStringInterval count for the recurring period
statusStringSubscription status (-1: Subscription exception, 1: Processing, 2: Subscription successful, 3: Subscription failed, 4: Subscription canceled)
signStringSignature

Cancel Subscription

Brief Description:
  • Cancel subscription.
URL: /subscription/cancel Parameters:
ParameterRequiredTypeDescription
appIdYesLongBusiness ID (to be obtained from the backend, needs to pass the corresponding business ID based on the currency in the URL)
subscriptionNoYesStringPlatform subscription number
signYesStringSignature
request
{
    "appId": 1724,
    "sign": "gETp00ngwiG0qPVcpldPGEsWRCShOJUbwxWizbL9xGbWCtlBsTPFshQtClLtBCRAdhoVNZAD7UQXjdiAsr74neYu1akj1a6d3sNapGaqoTdBgykXyr1hLVe14AIUhLRg0Mj2elOlMPiWMdccSC+i4G/lfPpJLpS/T08S8qttExTOjML5Rrny5jNsYedjf+Jo3jrPsLcfZFX3QrWA4txPG+x7ZrShXUonOiZMoH6hwU8PcETrC0vpGqTwySJ6siS2AwyPOZElR6nf3geIx7GAllFUuZSyjCvRDE+9JeZl5Y2Ohlm9xcRxqHgMi4YB3jSJcwo7GqGqnPapZnO2GvcbGw==",
    "subscriptionNo": "4025011311423010028"
}
response
{
    "status": "1",
    "error": "00000000",
    "msg": "",
    "data": {
        "appId": 1724,
        "subscriptionNo": "4025011311423010028",
        "status": "4",
        "payType": "SUBSCRIPTION",
        "inBankCode": "CREDIT_CARD",
        "sign": "lynHvI+9JhVbhwHiinJGlDEq7CVU67WkNUsNURs1wu4bI2/2ePVORGqbVdnaU+L9qV4JN35gM2hHadn4pye/Xk+iztLVSbDh5F9XpKAmLeLCcYj+II0pt4Eo4QPxnYJjmMzbDu6fdWgjgi/go2M75N7Fqv2QgV/tIu1O2pe4/LRPe3l/IODvW+ppvbf5FHk5hO2AaLUX/Fn7H0MIv6kcKAhu7ImBrNpF79VPj9YC1qXghJE11q4aHx7xfDDCn4GiqDJBXbzLtqGP6cS2CVXlyLxGziKDxM1+Bv02XNbjzYKwcaS1VDNfmzlglVH+GHZcgVpiEa3u4ffezu2NN2B4Yg=="
    }
}

Return Data Parameters Description

ParameterTypeDescription
subscriptionOrderIdStringMerchant subscription number (must be unique)
subscriptionNoStringPlatform subscription number
appIdStringBusiness ID
payTypeStringSubscription is fixed as SUBSCRIPTION
inBankCodeStringBank code
statusStringSubscription status (-1: Subscription exception, 1: Processing, 2: Subscription successful, 3: Subscription failed, 4: Subscription canceled)
signStringSignature
Last modified on April 17, 2026