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
PayoutEUR: 1-150000

Disbursement API

Disbursement Application

Brief Description:
  • Create a disbursement order
URL: /eur/pay/apply Parameters:
Amount limit to two decimal places.
Parameter NameRequiredTypeDescription
appIdYesLongBusiness ID (obtained from 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: EUR) Range: 1-150000
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 (SWIFT/BIC)
cityYesStringCity
streetYesStringStreet
postalCodeYesStringPostal Code
request (when accountType is BANK_ACCOUNT)
{
    "appId": 12162,
    "amount": "15.77",
    "name": "Jean Pierre Dupont",
    "subject": "test",
    "swiftCode": "BNPAFRPP",
    "partnerUserId": "343402",
    "accountType": "BANK_ACCOUNT",
    "orderId": "2026040241127",
    "bankCode": "SEPA_BANK",
    "accountNo": "FR7630006000011234567890189",
    "phone": "33612345678",
    "email": "jean.pierre@example.com",
    "city": "Paris",
    "street": "10 Rue de la Paix",
    "postalCode": "75002",
    "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: /eur/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) (EU Time), format: yyyy-MM-dd HH:mm:ss
errorMsgStringFailure Reason (available when status=3)
signStringSignature

Payment Methods

CurrencyPayment Type (accountType)Payment Code (bankCode)LimitStatusDescription
EURBANK_ACCOUNTSEPA_BANK1-150000AvailableSEPA Bank Transfer
Last modified on May 28, 2026