Skip to main content

Documentation Index

Fetch the complete documentation index at: https://doc.haipay.net/llms.txt

Use this file to discover all available pages before exploring further.

Before reading this API documentation, be sure to review API Description Guide

Transaction Limits

Transaction TypeLimit
CollectionUAE Dirham: 0.5-5000
PayoutAED: 10-100000000

Collection API

Collection Request

Brief Description:
  • Create a collection order
URL: UAE: /aed/collect/apply Note: appId needs to use AED corresponding, user payment success will increase AED balance Parameters:
ParameterRequiredTypeDescription
appIdYesLongBusiness ID (obtained from the backend, must pass the corresponding business ID based on the currency in the URL)
orderIdYesStringMerchant order number (must be unique, max length 48)
nameYesStringRecipient name, used for risk control
phoneYesStringReal mobile number (format reference: Phone Number Format)
emailYesStringReal email address
amountYesStringTransaction amount (unit: local currency, accurate to two decimal places; punctuation marks such as ”,” are prohibited), test environment please use amount below 10AED
currencyNoStringCurrency (USD, local currency)
payTypeYesStringTransaction type
inBankCodeYesStringPayment Method
callBackUrlYesStringRedirect URL after successful payment
callBackFailUrlYesStringRedirect URL after failed payment
notifyUrlNoStringCallback URL
goodsNameYesStringProduct name
goodsQuantityYesStringProduct quantity
goodsPriceYesStringProduct price
goodsSkuYesStringProduct unique identifier
goodsAvatarYesStringProduct image (https://)
platformYesStringPlatform name
subjectNoStringPayment note
bodyNoStringAdditional description
partnerUserIdYesStringUnique user identifier (e.g., userId), used for risk control system, must be valid, otherwise it will affect the transaction. Format: digits, letters, or symbols -~!@#$%&*()_.
signYesStringSignature
**AED VA payin request parameters: **
Amount limit to two decimal places.
Parameter NameRequiredTypeDescription
firstNameYesStringRecipient’s first name
lastNameYesStringRecipient’s last name
dateOfBirthYesStringDate of birth (format example: DD-MM-YYYY)
countryCodeYesStringCountry code (e.g., AE for United Arab Emirates)
streetYesStringStreet address
cityYesStringCity
stateYesStringEmirate/Province
postalCodeYesStringPostal code
phoneCodeYesStringPhone area code (e.g., “+971” for UAE)
request
{
    "appId": 1054,
    "orderId": "M233323000059",
    "amount": "300",
    "phone": "09230219312",
    "email": "23423@qq.com",
    "name": "test",
    "inBankCode": "CARD",
    "payType": "PAYMENT_GATEWAY",
    "partnerUserId": "149597870",
    "sign": "af0gAHkUOyYHu9owQp8NJ4mPEeUW4vuJcjdxqLIzrVw8AvpLSjD1DXupReSG/CyuSkFRyiIvCp5u703AuGGmfgD2gKDH3Ywau41bAbG2jnHJ8mtjiSJ5iWUzanyd4Kr7d1+rETbzUl7/BkW3t0X8UUFdqpxwG8DPUjAwUKfplWDHV7koG51Ozexd80DCsmW6eWdouAZ1uNXGLYmV3ftE3BmfNRtuv1C5bfTJWrTEIOxbF6g2uYOFZTlIgrQgd7/2PsAYwQQXNz8Q8CYl4OxqCv4pXJxaLWPbR5tqZu9og5kn32C9aHW/NlU1y39vzz+4ef81yPAqUV9oHlSMSPrMmw=="
}
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 be unique)
orderNoStringPlatform Order Number
payUrlStringPayment URL
signStringSignature

Collection Query

Brief Description:
  • Query collection order
  • When “payType = BANK_TRANSFER”, the orderNo is returned synchronously and can be queried directly
  • For other payment methods, after asynchronous notification, use orderNo for second confirmation
URL: UAE: /aed/collect/query Parameters:
ParameterRequiredTypeDescription
appIdYesLongBusiness ID (obtained from backend, must match 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 be unique)
orderNoStringPlatform Order Number
amountStringTransaction Amount
actualAmountStringReceived Amount
feeStringFee
statusIntegerStatus (0 Not Started, 1 In Progress, 2 Success (final), 3 Failed (final), -1 Exception Pending Confirmation)
payTimeStringPayment Success Time (available when status=2) (UAE Time), format: yyyy-MM-dd HH:mm:ss
errorMsgStringFailure Reason (available when status=3)
signStringSignature

Payment Methods

UAE

CurrencyPayment Type (payType)Payment Code (inBankCode)LimitStatusDescription
AEDPAYMENT_GATEWAYCARD0.5-5000AvailableVISA
AEDPAYMENT_GATEWAYCARD0.5-5000AvailableMasterCard
AEDEWALLETAPPLE_PAY0.5-5000AvailableApple Pay
AEDVABANK_TRANSFER10-100000000AvailableVA BANK TRANSFER

Disbursement API

Disbursement Application

Brief Description:
  • Create a disbursement order
URL: /aed/pay/apply Parameters:
Parameter NameRequiredTypeDescription
appIdYesLongBusiness ID (obtained from the backend, must pass the corresponding business ID based on the currency in the URL)
orderIdYesStringMerchant order number (must be unique, max length 48)
amountYesStringTransaction amount (unit: AED) Range: 10-100000000; Limit to two decimal places.
accountTypeYesStringAccount type: BANK_ACCOUNT
bankCodeYesStringBank code
accountNoYesStringIBAN account number
nameYesStringRecipient name (English, 1-30 characters, “firstName middleName lastName” (middleName optional, special characters: .-))
phoneYesStringReal mobile number
emailYesStringReal email address
notifyUrlNoStringCallback URL
subjectNoStringPayment note (transaction title, product name, payment reason)
bodyNoStringAdditional description
partnerUserIdYesStringUnique user identifier (e.g., userId), used for risk control system, must be valid, otherwise it will affect the transaction. Format: digits, letters, or symbols -~!@#$%&*()_.
signYesStringSignature
swiftCodeYesStringGlobal Bank Financial Telecommunication Code
cityYesStringCity
streetYesStringStreet
postalCodeNoStringPostal Code
request (when accountType is BANK_ACCOUNT)
{
    "appId": 1054,
    "orderId": "M100000450012",
    "amount": "500",
    "accountType": "BANK_ACCOUNT",
    "bankCode": "BANK_TRANSFER",
    "accountNo": "AE03022099991555571999",
    "name": "john doe",
    "phone": "08276543210",
    "email": "johndoe@cashfree.com",
    "subject": "iphone13",
    "body": "ProMotion technology with adaptive refresh rates up to 120Hz",
    "partnerUserId": "149597870",
    "swiftCode": "EBILAEAD",
    "sign": "I1PeK3eJOVsFFNowxVRqMXpeWm1lr/BcRpBi8WsW4wVo1+5CC3JsrFq/m/L2O69NzKHvtDWi4zia3DL3dPut0yMyUyqL91LNCSaeISbGsQPlhEsQpyTOryS/RKOfsrn2Xo37SCF/phAvndOk2jwwGwqM5xLz1ms9Ukl85wv27QFNrXIMxK2p18oe7MpMYrgf+xvEBE/VqCtKMtN9pO449wWwXzHWNPbZ76s4pAvKwRE9yXQDr7Iw14Dktcnl1FoLM4gWM/obkO+mz6SyAGDuXhVh/+OD/IGNiCyTCNq6ciQY28UnCFV6ZIP40gxsFhfBJKbK+Raw7y1Bh912ifYfug=="
}
response
{
    "status": "1",
    "error": "00000000",
    "msg": "",
    "data": {
        "orderId": "M100000450013",
        "orderNo": "3023062014149637",
        "sign": "LmhUnkw5j0pMiimsG8rKwdNNZGvXH5MpSmD6mdHZwq1SQwuK5BohmdEoqKB/jkMk28o3da4Cxh6Q+tW97+yTCemRrF+dMaHA73rpOeUuujKQl/UcFvJuMhfLBa2tp09L71NzoBqpPD6aXf37mYAz8E1HmERwFPpac5FVxIYanHG8cqmMLJYsVmHTSxWavgWU03ys9UczBePkBiR8sl2FSOhFABB0wAP28lswrV/ABS68IsLKtyd1fyI3GBfSbIK5nDEEnlE+EdElFdLs9taAxJImeVF1x4eT47+bkPJ2qS8z3K8QGzKLF3W+8SiRZGfSwDTsLKH+2Vycvy5auRl+ag=="
    }
}
Response data field description
ParameterTypeDescription
orderIdStringMerchant Order Number (must be unique)
orderNoStringPlatform Order Number
signStringSignature

Disbursement Query

Brief Description:
  • Query disbursement order
URL: /aed/pay/query Parameters:
ParameterRequiredTypeDescription
appIdYesLongBusiness ID (obtained from backend, must match the currency in the URL)
orderIdYesStringMerchant Order Number
orderNoNoStringPlatform Order Number (faster response)
signYesStringSignature
request
{
    "appId": 1000,
    "orderId": "M1234567111",
    "orderNo": "3022111516571436",
    "sign": "ZxkVZL+GAyv0VhvWn4IvuYahTzxgQuthkuV2ONWiqIfIDb2avvHlFOUJVzqZi1q8CPHXZm1ltanRTRVTxfsuftLvGeDioUHglWt46/RU6c1OPznpLGsZ35Q3n5tW2y1EnOsxPynXBFLuDQy+aZ3l9u6AQ30T0zQexMGT+IxuFkmUp02g/6juaHa5ZgNMv7lN67ixIp162wrM7OJuaOif872QijSceRdZhzaMGImAwB0D4MosRV4WMBOKkwgPdmS7GuZN66YUidXk3wTGqX3MYRw6M0kj4eNegSUwPXvp4q4p0KO8Y3xUMld54GY2ApX3WN3CBtC/vpJqEszjGBbbGg=="
}
response — Order failed
{
    "status": "1",
    "error": "00000000",
    "msg": "",
    "data": {
        "orderId": "M1234567111",
        "orderNo": "3022111516571436",
        "amount": "100000.00",
        "fee": "0.00",
        "status": 3,
        "errorMsg": "Order does not exist",
        "sign": "KKuvCl0SuNANJs+l2ogDaJm8pmV+Hi+Xa7q27vJ6D1Ehs4aOp13kRbITfJAhczh3T81BE9qwHeJaYwf+r0EypKM9TL6pMwfG8Az4gRy1D57wiUaVjl2PWcvbEqrn1hL0b+btkjvAM9I+CcSv+wuOW3/uku17Ws3FhgJLj9sFsQUBAPjDO+758VnwBytCOLBmljLBXyKgNgpmFQ1/DNkqWl0UNzyLK45Zw3yf5NiwhEFbvW0jlOWlfu/ql4hluISUQG573jEoFCBEnQLb2tQoRZj1QYNRCXPf5lbej0vzqbEwvR9h+ZOf255t1MocJkdIe463DTV5U3KZdVT87HMagw=="
    }
}
response — Order successful
{
    "status": "1",
    "error": "00000000",
    "msg": "",
    "data": {
        "orderId": "M1234567112",
        "orderNo": "3022111517401574",
        "amount": "100000.00",
        "fee": "1003.00",
        "status": 2,
        "payTime": "2024-03-01 23:59:59",
        "sign": "khPtOmGq+cpKX0HFAI/lbP0dx4oVyNAnL5oLsdmhDJdASlQm0yg5I3o+MhImYggEsL6c2bo5fP29t54OZFqSdQDfIuNDvGbAMAr4mRBxc0hoHLkBLyyagfVPBLyQA1JY8XV3ZL4ySzQ3ZQnMCfrh2K39ueUuz6HpZ03Hj0KYijVRCXAZaio/L5jfLBT12QXmvIfAHa8s/k9flhK05ENHPep3zjj/MZGOEaX7jkEJLfjK0duypDCa61BRQjM+oePOdVsgleIl1Yf98UAxMDZ/A3912KFHEb+/jvmdnulNbiJFyuT1fEe+j2teUgw3vFsZAtwNWAgxhC7UO+N0Q5z4EA=="
    }
}
Response data field description
ParameterTypeDescription
orderIdStringMerchant Order Number (must be unique)
orderNoStringPlatform Order Number
amountStringTransaction Amount
feeStringFee
statusIntegerOrder status (0 Not Started, 1 Disbursing, 2 Disbursement Success (final), 3 Disbursement Failed (final), -1 Exception Pending Confirmation)
payTimeStringPayment Success Time (available when status=2) (UAE Time), format: yyyy-MM-dd HH:mm:ss
errorMsgStringFailure Reason (available when status=3)
signStringSignature

Payment Methods

CurrencyPayment Type (accountType)Payment Code (bankCode)LimitStatusDescription
AEDBANK_ACCOUNTBANK_TRANSFER10-100000000AvailableBank Transfer
Last modified on May 28, 2026