Skip to main content

ISV Transaction API

Overview

This API set is designed for ISV customers to call on behalf of their end customers (merchants) after completing Onboarding. It covers transfers, payment declarations, Payout, bank account management, and other daily transaction operations. ISVs simply pass walletId when calling these APIs. OristaPay automatically enforces authorization based on the ISV ↔ merchant relationship. Transaction API fields remain unchanged.

Authentication & Signing

All endpoints require signature headers. See Authentication & Signing for details.

API Index

#APIREST Path
1Static Receiving Address QueryPOST /api/v1/wallet/static-address/query
2Supported Currencies QueryPOST /api/v1/wallet/supported/currencies
3Request Payment Order DeclarationPOST /api/v1/payment/order/declare
4Request Payment Material SupplementPOST /api/v1/payment/order/add/materials
5Internal TransferPOST /api/v1/payment/internal-transfer
6Order DetailsPOST /api/v1/payment/order/detail
7Order ListPOST /api/v1/payment/order/list
8Download StatementPOST /api/v1/payment/reconciliation
9Add Beneficiary Bank AccountPOST /api/v1/wallet/bank_account/add
10Update Beneficiary Bank AccountPOST /api/v1/wallet/bank_account/update
11Delete Beneficiary Bank AccountPOST /api/v1/wallet/bank_account/del
12Enquiry Beneficiary Bank AccountPOST /api/v1/wallet/bank_account/get
13Payout QuotePOST /api/v1/payout/quote
14Payout OrderPOST /api/v1/payout/book
15Payout Order EnquiryPOST /api/v1/payout/enquiry
16Payout Re-SettlePOST /api/v1/payout/reSettle
17Order Result NotificationWebhook
18Add Bank Account Result NotificationWebhook
19Payout Result NotificationWebhook
20Payout Refund Result NotificationWebhook
21Payout Re-Settle Result NotificationWebhook

Wallet Payment API

1. Static Receiving Address Query

Interface Overview Query the Request Payment static receiving address of a specified wallet. Request Parameters
Field NameTypeM / O / CMDescription
walletIdint64MWallet ID
networkstringOBlockchain network: ETH / TRX / SOL / POLY
currencystringOCurrency: USDT / USDC
Response Parameters
Field NameTypeDescription
codeint32Business response code
messagestringBusiness response message
dataArray<StaticAddressData>Static address list
StaticAddressData fields:
Field NameTypeDescription
walletIdint64Wallet ID
networkstringBlockchain network, such as ETH / TRX
currencystringCurrency, such as USDT / USDC
addressstringStatic receiving address
qrCodeBase64stringQR code image of the address, Base64 encoded, including the data:image/png;base64, prefix. It can be directly used in <img src>
Request Example
{
  "walletId": 123456789,
  "network": "ETH",
  "currency": "USDT"
}
Response Example
{
  "code": 1,
  "message": "Success",
  "data": [
    {
      "walletId": 123456789,
      "network": "ETH",
      "currency": "USDT",
      "address": "0x9f8b2c1d4e5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c",
      "qrCodeBase64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
    }
  ]
}

2. Supported Currencies Query

Interface Overview Query the currencies, available networks, single-transaction amount range, and currency precision supported by the wallet under a specified business type by walletId + type. The caller can use this API for pre-validation before creating deposit or withdrawal orders, to avoid submitting unsupported or out-of-limit currency combinations. Request Parameters
Field NameTypeM / O / CMDescription
walletIdint64MWallet ID
typestringMBusiness type / limit type: 4 deposit, 3 withdraw
Response Parameters
Field NameTypeDescription
codeint32Business response code
messagestringBusiness response message
dataArray<SupportedCurrenciesQueryData>Supported currency list; returned when code = 1
SupportedCurrenciesQueryData fields:
Field NameTypeDescription
typeint32Business type / limit type, corresponding to the request type
currencystringCurrency, such as USDT / USDC / USD
minAmountstringMinimum single-transaction amount, decimal number in string format
maxAmountstringMaximum single-transaction amount, decimal number in string format
networksArray<string>Supported blockchain network list for this currency, such as ETH / TRX / SOL
precisionint32Amount precision, number of decimal places
Request Example
{
  "walletId": 123456789,
  "type": 1
}
Response Example
{
  "code": 1,
  "message": "Success",
  "data": [
    {
      "type": 4,
      "currency": "USDT",
      "minAmount": "10",
      "maxAmount": "50000",
      "networks": ["ETH", "TRX"],
      "precision": 6
    },
    {
      "type": 4,
      "currency": "USDC",
      "minAmount": "10",
      "maxAmount": "50000",
      "networks": ["ETH", "SOL"],
      "precision": 6
    }
  ]
}

3. Request Payment Order Declaration

Interface Overview Submit a Request Payment deposit order. Request Parameters
Field NameTypeM / O / CMDescription
walletIdint64MDeposit wallet ID
extOrderNostringMExternal order ID, globally unique
senderAddressstringMPayer wallet address
networkstringMBlockchain network: ETH / TRX / SOL / POLY
currencystringMCurrency: USDT / USDC
amountstringMDeclared amount. The declared amount must exactly match the final deposit amount
senderNamestringMPayer name
countryRegionstringMCountry/region ISO 3166 code, for example HKG
contactAddressstringMPayer contact address
receiverNamestringMRecipient merchant name
messagestringORemark
materialsArray<Material>OCollection of order material declaration objects
Material fields:
Field NameTypeM / O / CMDescription
productTypestringMProduct type
productNamestringMProduct name
productPricestringMProduct price
productCountstringMProduct quantity
productUnitstringMProduct unit
logisticsTrackingNamestringOLogistics company name
logisticsTrackingNostringOTracking number
Response Parameters
Field NameTypeDescription
codeint32Response code
messagestringResponse message
Request Example
{
  "walletId": "429883231600640",
  "extOrderNo": "1747626211614",
  "senderAddress": "0x213F2B229BE4f3FFF88fc874a986b19D79623339",
  "network": "ETH",
  "currency": "USDC",
  "amount": "150",
  "senderName": "Reflective Method Invocation",
  "countryRegion": "HKG",
  "contactAddress": "contact address hong kong",
  "receiverName": "Reflective Method Invocation",
  "message": "request payment msg",
  "materials": [
    {
      "productType": "Electronics",
      "productName": "Wireless Bluetooth Headphones",
      "productPrice": "89.99",
      "productCount": "150",
      "productUnit": "pcs",
      "logisticsTrackingName": "FedEx International Priority",
      "logisticsTrackingNo": "FX123456789US"
    }
  ]
}
Response Example
{
  "code": 1,
  "message": "success"
}

4. Request Payment Material Supplement

Interface Overview Supplement product and logistics materials for an existing declared order. Request Parameters
Field NameTypeM / O / CMDescription
walletIdint64MDeposit wallet ID
orderNostringMOrder number
materialsArray<Material>OCollection of order material objects
Material fields are the same as those in 1. Request Payment Order Declaration. Response Parameters
Field NameTypeDescription
codeint32Response code
messagestringResponse message
Request Example
{
  "walletId": "429883231600640",
  "orderNo": "447767487604736",
  "materials": [
    {
      "productType": "Electronics",
      "productName": "Wireless Bluetooth Headphones",
      "productPrice": "89.99",
      "productCount": "150",
      "productUnit": "pcs",
      "logisticsTrackingName": "FedEx International Priority",
      "logisticsTrackingNo": "FX123456789US"
    }
  ]
}
Response Example
{
  "code": 1,
  "message": "success"
}

5. Internal Transfer

Interface Overview Transfer wallet assets from custody assets to trading assets. Request Parameters
Field NameTypeM / O / CMDescription
walletIdint64MWallet ID
internalTransferTypeint32MInternal transfer type: 1 = custody assets to trading assets
networkstringCMSource asset network: ETH / TRX / SOL / POLY; required when internalTransferType=1
currencystringMCurrency: USDT / USDC
amountstringMAmount
extOrderNostringMExternal order ID, globally unique
Response Parameters
Field NameTypeDescription
codeint32Response code
messagestringResponse message
dataInternalTransferDataInternal transfer result
InternalTransferData fields:
Field NameTypeDescription
orderNostringTransfer order number
Request Example
{
  "walletId": 1001,
  "internalTransferType": 1,
  "network": "ETH",
  "currency": "USDT",
  "amount": "1.0",
  "extOrderNo": "EXT123456789"
}
Response Example
{
  "code": 1,
  "message": "success",
  "data": {
    "orderNo": "ORDER123456789"
  }
}

6. Order Details

Interface Overview Query wallet order details by order number or external order number. Request Parameters
Field NameTypeM / O / CMDescription
walletIdint64MWallet ID
orderNostringCMOrder number. Either orderNo or extOrderNo must be provided
extOrderNostringCMExternal order number. Either orderNo or extOrderNo must be provided
Response Parameters
Field NameTypeDescription
codeint32Response code
messagestringResponse message
dataWalletOrderDetailDataOrder details
WalletOrderDetailData fields:
Field NameTypeDescription
orderNostringOrder number
extOrderNostringExternal order number
orderTypeint32Order type
orderStatusstringSee Appendix: Deposit Order Status
fromAddressstringInitiator address
fromWalletstringSource wallet
toAddressstringRecipient address
toWalletstringTarget wallet
amountstringAmount
networkstringBlockchain network: ETH / TRX / SOL / POLY
currencystringCurrency: USDT / USDC
expireTimeint64Order expiration time
createTimeint64Order creation time
Request Example
{
  "walletId": 1001,
  "orderNo": "ORDER123456789"
}
Response Example
{
  "code": 1,
  "message": "success",
  "data": {
    "orderNo": "447767487604736",
    "extOrderNo": "1744341998597",
    "orderType": 4,
    "orderStatus": "SUCCESS",
    "fromAddress": "0x213F2B229BE4f3FFF88fc874a986b19D79623339",
    "toAddress": "0xc496E20b19F009543E49b8512CB990ceb0a230F0",
    "toWallet": "429883231600640",
    "amount": "17",
    "network": "ETH",
    "currency": "USDT",
    "expireTime": 1744342629783,
    "createTime": 1744343297296
  }
}

7. Order List

Interface Overview Query wallet orders by walletId with pagination. Orders can be filtered by status, currency, and creation time range. The returned order data uses the unified wallet order structure and is suitable for order list pages, pre-reconciliation queries, or polling order progress by status. Request Parameters
Field NameTypeM / O / CMDescription
walletIdint64MWallet ID. It must belong to the enterprise corresponding to the current API Key, or to an ISV sub-enterprise under that enterprise
statusstringOOrder status. If not provided, all statuses are queried
currencystringOCurrency, such as USDT / USDC
startTimestringOQuery start time, filtered by order creation time. Format: ISO8601 with timezone, for example 2026-01-01T00:00:00Z
endTimestringOQuery end time, filtered by order creation time. Format: ISO8601 with timezone, for example 2026-01-01T00:00:00Z
pageNumberint32MPage number, starting from 1
pageSizeint32MNumber of records per page. Default is 20, maximum is 100. Values greater than 100 are treated as 100
Response Parameters
Field NameTypeDescription
codeint32Business response code. 1 means success; other values refer to error codes
messagestringBusiness response message
dataArray<WalletOrderDetailData>Order list; returned when code = 1
pagePagePagination information
Page fields:
Field NameTypeDescription
pageNumberint32Current page number
pageSizeint32Number of records per page
totalPagesint32Total pages
totalRecordsint32Total records
WalletOrderDetailData fields:
Field NameTypeDescription
orderNostringOrder number
extOrderNostringExternal order number
orderTypeint32Order type
orderStatusstringSee Appendix: Deposit Order Status
fromAddressstringInitiator address
fromWalletstringSource wallet
toAddressstringRecipient address
toWalletstringTarget wallet
amountstringAmount
networkstringBlockchain network: ETH / TRX
currencystringCurrency: USDT / USDC
expireTimeint64Order expiration time
createTimeint64Order creation time
Request Example
{
  "walletId": 519309997363200,
  "status": "SUCCESS,IN_PROGRESS",
  "currency": "USDT",
  "startTime": "2026-01-01T00:00:00Z",
  "endTime": "2026-01-31T23:59:59Z",
  "pageNumber": 1,
  "pageSize": 20
}
Response Example
{
  "code": 1,
  "message": "Success",
  "data": [
    {
      "orderNo": "447767487604736",
      "extOrderNo": "1744341998597",
      "orderType": 4,
      "orderStatus": "SUCCESS",
      "fromAddress": "0x213F2B229BE4f3FFF88fc874a986b19D79623339",
      "fromWallet": "123456",
      "toAddress": "0xc496E20b19F009543E49b8512CB990ceb0a230F0",
      "toWallet": "429883231600640",
      "amount": "17",
      "network": "ETH",
      "currency": "USDT",
      "expireTime": 1744342629783,
      "createTime": 1744343297296
    }
  ],
  "page": {
    "pageNumber": 1,
    "pageSize": 20,
    "totalPages": 1,
    "totalRecords": 1
  }
}

8. Download Statement

Interface Overview Statements for D-1 can be downloaded from 9:00 AM every day. The time zone is Hong Kong UTC+8. Request Parameters
Field NameTypeM / O / CMDescription
walletIdint64MWallet ID
billDatestringMBilling date in yyyyMMdd format
modeTypeint32MAuthorization mode: 1 = direct connection mode; 2 = authorization mode including sub-wallets
accountTypeint32MAccount type: 1 = custody account; 2 = trading account
currencyTypeint32MCurrency type: 1 ETH-USDT / 2 ETH-USDC / 3 TRX-USDT / 4 USDT / 5 USDC / 6 USD / 14 SOL-USDC / 15 SOL-USDT / 16 POLY-USDC / 17 POLY-USDT
Response Parameters
Field NameTypeDescription
codeint32Response code
messagestringResponse message
dataWalletBillDataStatement information
WalletBillData fields:
Field NameTypeDescription
fileNamestringFile name
fileUrlstringDownload URL of the statement zip package
Request Example
{
  "walletId": 123456789,
  "billDate": "20250330",
  "modeType": 1,
  "accountType": 1,
  "currencyType": 1
}
Response Example
{
  "code": 1,
  "message": "success",
  "data": {
    "fileName": "20231123_123456789_Statement_ETHUSDT.zip",
    "fileUrl": "https://hk-pro-wallet-private-oss.oss-cn-hongkong.aliyuncs.com/thirdpartybilling/1737925914987610112.zip"
  }
}

Bank Account API

PathRequestResponse
/api/v1/wallet/bank_account/addAddBankAccountRequestBankAccountResponse
/api/v1/wallet/bank_account/updateUpdateBankAccountRequestBankAccountResponse
/api/v1/wallet/bank_account/delDelBankAccountRequestDelBankAccountResponse
/api/v1/wallet/bank_account/getGetBankAccountRequestGetBankAccountResponse
The following APIs share the BankAccountData and FileInfo definitions.
BankAccountData fields:
Field NameTypeDescription
settlementAccountUIDint64Settlement account ID
walletIdint64Wallet ID
aliasstringAlias
accountOwnershipint32Relationship with wallet: 1 own / 2 other / 3 third party
currencystringCurrency: USD
accountTypeint32Account type: 1 RD Wallet / 2 Bank Account
companyNamestringCompany name
accountNumberstringRD Wallet ID or bank account number
bankIdstringHong Kong bank ID, for example 003
beneficiaryAddress1stringBeneficiary address line 1. Chinese characters are not allowed
beneficiaryAddress2stringBeneficiary address line 2. Chinese characters are not allowed
beneficiaryAddress3stringBeneficiary address line 3: country/region ISO 3166 code
beneficiarySwiftCodestringBeneficiary bank Swift Code
intermediarySwiftCodestringIntermediary bank Swift Code
companyCodestringCompany profile code
statusint32Status: 0 processing / 1 success / 2 failed
paymentFilesArray<FileInfo>Proof of payment files
remarkstringRemark
FileInfo fields:
Field NameTypeDescription
fileKeystringFile ID returned by the upload API
fileNamestringFile name
fileUrlstringFile URL returned by the upload API. The URL is refreshed periodically

9. Add Beneficiary Bank Account

Interface Overview Add a beneficiary bank account. Request Parameters
Field NameTypeM / O / CMDescription
walletIdint64MWallet ID
aliasstringMAlias of this bank account
accountOwnershipint32MOwnership: 1 own / 2 other / 3 third party
currencystringMCurrency: USD
accountTypeint32MAccount type: 1 RD Wallet / 2 Bank Account
companyNamestringMCompany name. When accountOwnership=2, this name must match the company profile
accountNumberstringMRD Wallet ID or bank account number
bankIdstringMHong Kong bank ID, for example 003
beneficiaryAddress1stringCMRequired when accountType=2
beneficiaryAddress2stringCMRequired when accountType=2
beneficiaryAddress3stringCMRequired when accountType=2. Country/region ISO 3166 code
beneficiarySwiftCodestringCMRequired when accountType=2; must be a Hong Kong bank Swift Code
intermediarySwiftCodestringOIntermediary bank Swift Code; must be a Hong Kong bank Swift Code
companyCodestringCMRequired when accountOwnership=2
paymentFilesArray<FileInfo>CMRequired when accountOwnership=3
remarkstringOOptional when accountOwnership=3
Response Parameters
Field NameTypeDescription
codeint32Response code
messagestringResponse message
dataBankAccountDataBank account information
Request Example
{
  "walletId": 4298832316123456,
  "alias": "name alias",
  "accountOwnership": 2,
  "currency": "USD",
  "accountType": 2,
  "companyName": "narti adiddf",
  "accountNumber": "8888888",
  "bankId": "003",
  "beneficiaryAddress1": "payee address1",
  "beneficiaryAddress2": "payee address2",
  "beneficiaryAddress3": "HK",
  "beneficiarySwiftCode": "DHBKHKHHXXX",
  "intermediarySwiftCode": "DHBKHKHHXXX",
  "companyCode": "HK1239876654",
  "paymentFiles": [
    {
      "fileKey": "file_key_123",
      "fileName": "xxxx.pdf"
    }
  ],
  "remark": "remark"
}
Response Example
{
  "code": 1,
  "message": "success",
  "data": {
    "settlementAccountUID": 1236547995462114,
    "walletId": 4298832316123456,
    "alias": "name alias",
    "accountOwnership": 2,
    "currency": "USD",
    "accountType": 2,
    "companyName": "narti adiddf",
    "accountNumber": "8888888",
    "bankId": "003",
    "beneficiaryAddress1": "payee address1",
    "beneficiaryAddress2": "payee address2",
    "beneficiaryAddress3": "HK",
    "beneficiarySwiftCode": "DHBKHKHHXXX",
    "intermediarySwiftCode": "DHBKHKHHXXX",
    "companyCode": "HK1239876654",
    "status": 0,
    "paymentFiles": [
      {
        "fileKey": "file_key_123",
        "fileName": "xxxx.pdf",
        "fileUrl": "https://xxxxx"
      }
    ],
    "remark": "remark"
  }
}

10. Update Beneficiary Bank Account

Interface Overview Update non-key fields of a beneficiary bank account. accountOwnership, currency, accountType, companyName, and companyCode cannot be updated. Request Parameters
Field NameTypeM / O / CMDescription
walletIdint64MWallet ID
settlementAccountUIDint64MSettlement account ID
aliasstringOAlias
accountNumberstringORD Wallet ID or bank account number
bankIdstringOHong Kong bank ID
beneficiaryAddress1stringOBeneficiary address line 1
beneficiaryAddress2stringOBeneficiary address line 2
beneficiaryAddress3stringOBeneficiary address line 3
beneficiarySwiftCodestringOBeneficiary bank Swift Code
intermediarySwiftCodestringOIntermediary bank Swift Code
paymentFilesArray<FileInfo>CMRequired when accountOwnership=3
remarkstringOOptional when accountOwnership=3
Response Parameters Same as 9. Add Beneficiary Bank Account. data is BankAccountData. Request Example
{
  "settlementAccountUID": 1236547995462114,
  "walletId": 4298832316123456,
  "alias": "name alias",
  "accountNumber": "8888888",
  "bankId": "003",
  "beneficiaryAddress1": "payee address1",
  "beneficiaryAddress2": "payee address2",
  "beneficiaryAddress3": "HK",
  "beneficiarySwiftCode": "DHBKHKHHXXX",
  "intermediarySwiftCode": "DHBKHKHHXXX",
  "paymentFiles": [
    {
      "fileKey": "file_key_123",
      "fileName": "xxxx.pdf"
    }
  ],
  "remark": "remark"
}
Response Example Same structure as the response example in 9. Add Beneficiary Bank Account.

11. Delete Beneficiary Bank Account

Interface Overview Delete a beneficiary bank account. Request Parameters
Field NameTypeM / O / CMDescription
walletIdint64MWallet ID
settlementAccountUIDint64MSettlement account ID
reasonstringMReason for deletion
Response Parameters
Field NameTypeDescription
codeint32Response code
messagestringResponse message
Request Example
{
  "settlementAccountUID": 1236547995462114,
  "walletId": 4298832316123456,
  "reason": "del reason"
}
Response Example
{
  "code": 1,
  "message": "success"
}

12. Enquiry Beneficiary Bank Account

Interface Overview Query beneficiary bank accounts. Request Parameters
Field NameTypeM / O / CMDescription
walletIdint64MWallet ID
settlementAccountUIDint64OSettlement account ID for exact query
companyCodestringOCompany profile code
Response Parameters
Field NameTypeDescription
codeint32Response code
messagestringResponse message
dataArray<BankAccountData>Bank account list
Request Example
{
  "settlementAccountUID": 1236547995462114,
  "walletId": 4298832316123456,
  "companyCode": "HK1239876654"
}
Response Example
{
  "code": 1,
  "message": "success",
  "data": [
    {
      "settlementAccountUID": 1236547995462114,
      "walletId": 4298832316123456,
      "alias": "name alias",
      "accountOwnership": 2,
      "currency": "USD",
      "accountType": 2,
      "companyName": "narti adiddf",
      "accountNumber": "8888888",
      "bankId": "003",
      "beneficiaryAddress1": "payee address1",
      "beneficiaryAddress2": "payee address2",
      "beneficiaryAddress3": "HK",
      "beneficiarySwiftCode": "DHBKHKHHXXX",
      "intermediarySwiftCode": "DHBKHKHHXXX",
      "companyCode": "HK1239876654",
      "status": 0,
      "paymentFiles": [
        {
          "fileKey": "file_key_123",
          "fileName": "xxxx.pdf",
          "fileUrl": "https://xxxxx"
        }
      ],
      "remark": "remark"
    }
  ]
}

Convert API

Payout Model

13. Payout Quote

Interface Overview Obtain the price and transfer-related information for a specified currency pair. At least one of fromAmount or toAmount must be provided. Request Parameters
Field NameTypeM / O / CMDescription
walletIdint64MWallet ID
fromCurrencystringMFrom currency: USDT / USDC
fromAmountstringCMFrom amount, supports 2 decimal places
toCurrencystringMTo currency: USD
toAmountstringCMTo amount, supports 2 decimal places
paymentWaystringMPayment method: RDT / CHATS
feeModeint32CMRequired if paymentWay=CHATS. 1 = shared by both sender and receiver (SHAR); 2 = borne entirely by the payer (OUR)
Response Parameters
Field NameTypeDescription
codeint32Response code
messagestringResponse message
dataPayoutQuoteDataQuote data
PayoutQuoteData fields:
Field NameTypeDescription
walletIdint64Wallet ID
fromCurrencystringFrom currency
fromAmountstringFrom amount
toCurrencystringTo currency
toAmountstringTo amount after deducting service fee
paymentWaystringPayment method
feeModeint32Fee deduction mode
quoteIdint64Quote ID
pricestringPrice
priceExpireTimestringPrice expiration time in milliseconds
feeAmountstringService fee
feeCurrencystringFee currency
Request Example
{
  "walletId": 1000232233,
  "fromCurrency": "USDT",
  "fromAmount": "200.12",
  "toCurrency": "USD",
  "paymentWay": "CHATS",
  "feeMode": 1
}
Response Example
{
  "code": 1,
  "message": "Success",
  "data": {
    "walletId": "429405186232384",
    "fromCurrency": "USDT",
    "fromAmount": "200.12",
    "toCurrency": "USD",
    "toAmount": "192.83",
    "paymentWay": "CHATS",
    "feeMode": 1,
    "quoteId": "665131773713321985",
    "price": "0.9986",
    "priceExpireTime": "1736387772381",
    "feeAmount": "7",
    "feeCurrency": "USD"
  }
}

14. Payout Order

Interface Overview Place a payout order based on a quote ID. Request Parameters
Field NameTypeM / O / CMDescription
walletIdint64MWallet ID
quoteIdint64MQuote ID
settlementAccountUIDint64MSettlement account ID, obtained through the bank account enquiry API
purposestringMSee Appendix: Purpose
extOrderNostringMUnique order ID provided by the business entity. Only numbers, letters, _, -, and * are allowed. Must be unique under the same wallet account
Response Parameters
Field NameTypeDescription
codeint32Response code
messagestringResponse message
dataPayoutBookDataPayout order data
PayoutBookData fields:
Field NameTypeDescription
walletIdint64Wallet ID
quoteIdint64Quote ID
settlementAccountUIDint64Settlement account ID
purposestringPurpose
orderNostringOrder number
fromCurrencystringFrom currency
fromAmountstringFrom amount
toCurrencystringTo currency
toAmountstringTo amount
paymentWaystringPayment method
feeModeint32Fee deduction mode
feeAmountstringService fee
feeCurrencystringFee currency
orderStatusstringSee Appendix: Payout Order Status
createTimeint64Order creation time
extOrderNostringUnique order ID provided by the business entity
Request Example
{
  "walletId": 1000232233,
  "quoteId": 665131773713321985,
  "settlementAccountUID": 48775048489845,
  "purpose": "PMT001",
  "extOrderNo": "1234567898"
}
Response Example
{
  "code": 1,
  "message": "Success",
  "data": {
    "walletId": "429405186232384",
    "quoteId": "665205920267108353",
    "settlementAccountUID": 1236547995462114,
    "purpose": "PMT001",
    "orderNo": "431513431160832",
    "fromCurrency": "USDT",
    "fromAmount": "200.12",
    "toCurrency": "USD",
    "toAmount": "192.83",
    "paymentWay": "CHATS",
    "feeMode": 1,
    "feeAmount": "7",
    "feeCurrency": "USD",
    "orderStatus": "SUBMITTED",
    "createTime": "1736405450558",
    "extOrderNo": "1234567898"
  }
}

15. Payout Order Enquiry

Interface Overview Query payout order information by order number or quote ID. Request Parameters
Field NameTypeM / O / CMDescription
walletIdint64MWallet ID
orderNostringCMAt least one of orderNo or quoteId must be provided
quoteIdint64CMAt least one of orderNo or quoteId must be provided
Response Parameters
Field NameTypeDescription
codeint32Response code
messagestringResponse message
dataPayoutDataPayout order details
PayoutData fields:
Field NameTypeDescription
walletIdint64Wallet ID
quoteIdint64Quote ID
orderNostringOrder number
fromCurrencystringFrom currency
fromAmountstringFrom amount
toCurrencystringTo currency
toAmountstringTo amount
tradeFromAmountstringActual traded from amount
tradeToAmountstringActual traded to amount
pricestringOrder price
tradePricestringTrade price
orderStatusstringSee Appendix: Payout Order Status
createTimeint64Order creation time
finishTimeint64Order completion time
errorMsgstringFailure reason
settlementAccountUIDint64Settlement account ID
purposestringPurpose
paymentWaystringPayment method
feeModeint32Fee deduction mode
feeAmountstringService fee
feeCurrencystringFee currency
refundOrderNostringRefund order number when the order fails
refundAmountstringRefund amount when the order fails
refundCurrencystringRefund currency when the order fails
extOrderNostringUnique order ID provided by the business entity
Request Example
{
  "walletId": 1000232233,
  "quoteId": 665131773713321985
}
Response Example
{
  "code": 1,
  "message": "Success",
  "data": {
    "walletId": 1000232233,
    "quoteId": 665131773713321985,
    "orderNo": "442112731049984",
    "fromCurrency": "USDT",
    "fromAmount": "200.12",
    "toCurrency": "USD",
    "toAmount": "192.83",
    "tradeFromAmount": "200.12",
    "tradeToAmount": "192.83",
    "price": "1.142",
    "tradePrice": "1.142",
    "orderStatus": "SUCCESSFUL",
    "createTime": 1741580889957,
    "finishTime": 1741580889957,
    "settlementAccountUID": 1236547995462114,
    "purpose": "PMT001",
    "paymentWay": "CHATS",
    "feeMode": 1,
    "feeAmount": "7",
    "feeCurrency": "USD",
    "extOrderNo": "1234567898"
  }
}

16. Payout Re-Settle

Interface Overview Re-initiate settlement after a refund or failed settlement. Request Parameters
Field NameTypeM / O / CMDescription
walletIdint64MWallet ID
orderNostringMOriginal payout order number
refundOrderNostringMRefund order number
settlementAccountUIDint64MSettlement account ID
purposestringMSee Appendix: Purpose
remarkstringMRemark
paymentWaystringMPayment method: RDT / CHATS
feeModeint32CMRequired if paymentWay=CHATS; meaning is the same as in the Payout Quote API
Response Parameters
Field NameTypeDescription
codeint32Response code
messagestringResponse message
dataPayoutReSettleDataRe-settlement data
PayoutReSettleData fields:
Field NameTypeDescription
walletIdint64Wallet ID
orderNostringOriginal payout order number
refundOrderNostringRefund order number
settlementAccountUIDint64Settlement account ID
purposestringPurpose
remarkstringRemark
paymentWaystringPayment method
feeModeint32Fee deduction mode
amountstringRe-settlement amount
currencystringRe-settlement currency
feeAmountstringService fee
feeCurrencystringFee currency
Request Example
{
  "walletId": 1000232233,
  "orderNo": "442112731049984",
  "refundOrderNo": "232112731049984",
  "settlementAccountUID": 1236547995462114,
  "purpose": "PMT001",
  "remark": "remark",
  "paymentWay": "CHATS",
  "feeMode": 1
}
Response Example
{
  "code": 1,
  "message": "Success",
  "data": {
    "walletId": 1000232233,
    "orderNo": "442112731049984",
    "refundOrderNo": "232112731049984",
    "settlementAccountUID": 1236547995462114,
    "purpose": "PMT001",
    "remark": "remark",
    "paymentWay": "CHATS",
    "feeMode": 1,
    "amount": "183",
    "currency": "USD",
    "feeAmount": "7",
    "feeCurrency": "USD"
  }
}

Callback

Callback Request Specification

ItemValue
MethodPOST
Content-Typeapplication/json; charset=utf-8
Request BodyJSON. The structure depends on the event type, such as order result notification or bank account result notification
TimeoutDefault 8 seconds. Timeout is treated as failure and may trigger business-level retries
Request Headers
HeaderDescription
X-Api-KeyMerchant api_key, identifying the merchant to which the callback belongs
X-TimestampUTC millisecond timestamp string when the callback is sent
X-NonceUnique random string for this callback, 32-character hex, used for idempotency
X-SignatureHMAC-SHA256 signature
Content-TypeFixed as application/json; charset=utf-8

Signature Verification

The algorithm is the same as inbound API signing and uses the same sign_secret:
string_to_sign = "POST" + PATH + X-Timestamp + X-Nonce + SHA256_HEX(BODY)
signature      = HEX(HMAC_SHA256(sign_secret, string_to_sign))
  • PATH: the path part of the callback URL, excluding domain and query string.
  • BODY: the raw HTTP request body bytes.

Verification Steps

  1. Read request headers: X-Timestamp, X-Nonce, X-Signature, and X-Api-Key.
  2. Validate the timestamp window: abs(now_ms - X-Timestamp) <= 5 * 60 * 1000; otherwise reject with 401.
  3. Read the raw request body before any parsing or deserialization.
  4. Recalculate the signature using sign_secret and the raw body.
  5. Compare the calculated signature and X-Signature using constant-time comparison.
  6. Use X-Nonce as the idempotency key. If it has already been processed, return the previous result directly.

Common Pitfalls

  • The signature must be calculated over the raw bytes. JSON re-serialization, key reordering, whitespace changes, or encoding changes will cause signature mismatch.
  • PATH must match exactly. Do not add or remove a trailing slash, URL-decode it, or remove gateway prefixes.
  • X-Signature is lowercase hex. The method is fixed as uppercase POST.
  • Empty body must also be signed. SHA256_HEX("") is e3b0c442...b855.

Reference Implementations

Python
import hashlib
import hmac

def verify(path: str, ts: str, nonce: str, body_bytes: bytes,
           x_signature: str, sign_secret: str) -> bool:
    body_hash = hashlib.sha256(body_bytes).hexdigest()
    expected = hmac.new(
        sign_secret.encode(),
        ("POST" + path + ts + nonce + body_hash).encode(),
        hashlib.sha256,
    ).hexdigest()
    return hmac.compare_digest(expected, x_signature)
Node.js
const crypto = require('crypto');

function verify(path, ts, nonce, bodyBuf, xSignature, signSecret) {
  const bodyHash = crypto.createHash('sha256').update(bodyBuf).digest('hex');
  const expected = crypto
    .createHmac('sha256', signSecret)
    .update('POST' + path + ts + nonce + bodyHash)
    .digest('hex');

  const a = Buffer.from(expected, 'utf8');
  const b = Buffer.from(xSignature, 'utf8');

  return a.length === b.length && crypto.timingSafeEqual(a, b);
}
Java
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.security.MessageDigest;
import java.util.HexFormat;

public static boolean verify(String path, String ts, String nonce,
                             byte[] body, String xSignature, String signSecret) throws Exception {
    String bodyHash = HexFormat.of().formatHex(
        MessageDigest.getInstance("SHA-256").digest(body));
    String toSign = "POST" + path + ts + nonce + bodyHash;

    Mac mac = Mac.getInstance("HmacSHA256");
    mac.init(new SecretKeySpec(signSecret.getBytes(), "HmacSHA256"));
    String expected = HexFormat.of().formatHex(mac.doFinal(toSign.getBytes()));

    return MessageDigest.isEqual(
        expected.getBytes(), xSignature.getBytes());
}
Go
package main

import (
    "crypto/hmac"
    "crypto/sha256"
    "encoding/hex"
)

func Verify(path, ts, nonce string, body []byte, xSig, signSecret string) bool {
    sum := sha256.Sum256(body)
    bodyHash := hex.EncodeToString(sum[:])

    mac := hmac.New(sha256.New, []byte(signSecret))
    mac.Write([]byte("POST" + path + ts + nonce + bodyHash))
    expected := hex.EncodeToString(mac.Sum(nil))

    return hmac.Equal([]byte(expected), []byte(xSig))
}

Response Requirements

  • The merchant system must respond within 8 seconds.
  • HTTP 2xx status code is treated as successful delivery.
  • Non-2xx, timeout, or business error response is treated as failed delivery.
  • Recommended response body:
Success:
{
  "code": 1,
  "message": "OK"
}
Failure:
{
  "code": 6001,
  "message": "failed"
}

Idempotency and Replay Protection

  • Idempotency key: use X-Nonce as the idempotency key and persist it. If the same key is received again, return the previous result directly.
  • Replay protection: validate that X-Timestamp is within ±5 minutes of the server time.
  • Strict signature verification: reject any request with invalid signature using 4xx and do not enter business processing.

Callback Data Types

17. Order Result Notification

Field NameTypeDescription
orderNostringOrder number
currencystringCurrency: USDT / USDC
networkstringBlockchain network: ETH / TRX / SOL / POLY
statusstringOrder status. See Appendix: Deposit Order Status
amountstringAmount
fromAddressstringInitiator address
fromWalletstringSource wallet
toAddressstringRecipient address
toWalletstringTarget wallet
txHashstringTransaction hash
orderTypeint32Order type
extOrderNostringExternal order number
Sample Data
{
  "orderNo": "ORDER123456789",
  "currency": "USDT",
  "network": "ETH",
  "status": "SUCCESS",
  "amount": "1.0",
  "fromAddress": "0x123456789abcdef",
  "toAddress": "0x987654321fedcba",
  "fromWallet": "123456",
  "toWallet": "1234567",
  "txHash": "0x123456789abcdef123456789abcdef",
  "orderType": 1,
  "extOrderNo": "EXT123456789"
}

18. Add Bank Account Result Notification

Field NameTypeDescription
settlementAccountUIDint64Settlement account ID
walletIdint64Wallet ID
aliasstringAlias
accountOwnershipint32Ownership: 1 own / 2 other / 3 third party
currencystringCurrency: USD
accountTypeint32Account type: 1 RD Wallet / 2 Bank Account
accountNamestringAccount name
accountNumberstringRD Wallet ID or bank account number
bankIdstringHong Kong bank ID, for example 003
beneficiaryAddress1stringBeneficiary address line 1
beneficiaryAddress2stringBeneficiary address line 2
beneficiaryAddress3stringBeneficiary address line 3: country/region ISO 3166 code
beneficiarySwiftCodestringBeneficiary bank Swift Code
intermediarySwiftCodestringIntermediary bank Swift Code
companyCodestringCompany profile code
statusint32Status: 0 processing / 1 success / 2 failed
Sample Data
{
  "settlementAccountUID": 1236547995462114,
  "walletId": 4298832316123456,
  "alias": "name alias",
  "accountOwnership": 2,
  "currency": "USD",
  "accountType": 2,
  "accountName": "narti adiddf",
  "accountNumber": "8888888",
  "bankId": "003",
  "beneficiaryAddress1": "payee address1",
  "beneficiaryAddress2": "payee address2",
  "beneficiaryAddress3": "HK",
  "beneficiarySwiftCode": "DHBKHKHHXXX",
  "intermediarySwiftCode": "DHBKHKHHXXX",
  "companyCode": "HK1239876654",
  "status": 0
}

19. Payout Result Notification

Field NameTypeDescription
walletIdint64Wallet ID
quoteIdint64Quote ID
orderNostringOrder number
fromCurrencystringFrom currency: USDT / USDC
fromAmountstringFrom amount
toCurrencystringTo currency: USD
toAmountstringTo amount after deducting service fee
tradeFromAmountstringActual traded from amount
tradeToAmountstringActual traded to amount
pricestringOrder price
tradePricestringTrade price
orderStatusstringSee Appendix: Payout Order Status
createTimeint64Order creation time
finishTimeint64Order completion time
errorMsgstringFailure reason
settlementAccountUIDint64Settlement account ID
purposestringSee Appendix: Purpose
paymentWaystringPayment method: RDT / CHATS
feeModeint32Fee deduction mode. Default value: 1. 1 = shared by both sender and receiver (SHAR); 2 = borne entirely by the payer (OUR)
feeAmountstringService fee
feeCurrencystringFee currency
refundOrderNostringAvailable when the payout order status is SETTLING_FAILED; used to re-initiate settlement
extOrderNostringUnique order ID provided by the business entity. Only numbers, letters, _, -, and * are allowed. Must be unique under the same merchant account
Sample Data
{
  "walletId": 1000232233,
  "quoteId": 665131773713321985,
  "orderNo": "442112731049984",
  "fromCurrency": "USDT",
  "fromAmount": "200.12",
  "toCurrency": "USD",
  "toAmount": "192.83",
  "tradeFromAmount": "200.12",
  "tradeToAmount": "192.83",
  "price": "1.142",
  "tradePrice": "1.142",
  "orderStatus": "SUCCESSFUL",
  "createTime": 1741580889957,
  "finishTime": 1741580889957,
  "settlementAccountUID": 1236547995462114,
  "purpose": "PMT001",
  "paymentWay": "CHATS",
  "feeMode": 1,
  "feeAmount": "7",
  "feeCurrency": "USD",
  "extOrderNo": "1234567898"
}

20. Payout Refund Result Notification

Field NameTypeDescription
walletIdint64Wallet ID
orderNostringPayout order number
refundOrderNostringRefund order number
refundAmountstringActual refund amount
refundCurrencystringRefund currency
refundReasonstringRefund reason, returned if available
refundTimeint64Refund time
Sample Data
{
  "walletId": 123456789,
  "orderNo": "442112731049984",
  "refundOrderNo": "442112731049984D1",
  "refundAmount": "664.26",
  "refundCurrency": "USD",
  "refundReason": "refund",
  "refundTime": 1741580889957
}

21. Payout Re-Settle Result Notification

Field NameTypeDescription
walletIdint64Wallet ID
orderNostringPayout order number
refundOrderNostringRefund order number
settlementAccountUIDint64Settlement account ID
purposestringSee Appendix: Purpose
remarkstringRemark
paymentWaystringPayment method: RDT / CHATS
feeModeint32Fee deduction mode. Default value: 1. 1 = shared by both sender and receiver (SHAR); 2 = borne entirely by the payer (OUR)
amountstringSettlement amount
currencystringSettlement currency
feeAmountstringService fee
feeCurrencystringFee currency
createTimeint64Order creation time
finishTimeint64Order completion time
orderStatusstringRe-settlement order status. See Appendix: Payout Order Status
Sample Data
{
  "walletId": 1000232233,
  "orderNo": "442112731049984",
  "refundOrderNo": "232112731049984",
  "settlementAccountUID": 1236547995462114,
  "purpose": "PMT001",
  "remark": "remark",
  "paymentWay": "CHATS",
  "feeMode": 1,
  "amount": "183",
  "currency": "USD",
  "feeAmount": "7",
  "feeCurrency": "USD",
  "createTime": 1741580889957,
  "finishTime": 1741580889957,
  "orderStatus": "SUCCESSFUL"
}

Appendix

Response Code

CodeDescription
1success
6001failed, general business failure
6002parameter error
6003order not exist
6004order duplicate
6005no permissions
6006assets not exists
6101wallet account not exists
6102wallet insufficient fund
6103wallet status invalid
6104recipient wallet unavailable
6105recipient wallet not exists
6109Daily payment limit exceeded
6110Monthly collection limit exceeded
6301provider unavailable
6302symbol unavailable
6303provider reject
6304price expire time
6305amount less than minimum amount
6306amount greater than maximum amount
6307outside of business hours
6401address already exists
6406processing
6801duplicate request
6802profile error
6803reach the max limit

Payout Order Status

CodeDescriptionRemark
SUBMITTEDSubmittedOrder submitted
CONVERTINGExchangingOrder exchanging
SETTLINGSettlingExchange successful, proceeding with settlement
SETTLING_FAILEDSettlement failedExchange successful, settlement failed
SETTLING_REFUNDRefund processingRefunded after successful settlement
SUCCESSFULSuccessful transactionOrder processed successfully
FAILEDTransaction failedOrder processing failed

Deposit Order Status

CodeDescriptionRemark
SUBMITTEDSubmittedOrder submitted
VERIFYINGOrder verificationSecurity verification after order submission. Applies only to Request Payment
AWAIT_FOR_RECEIVEAwaiting paymentOrder created successfully and awaiting payment. Applies only to Request Payment
PAYMENT_VERIFYINGPayment verification in progressPayment has been received by the platform and is under security verification. Applies only to Request Payment
AWAIT_FOR_DECLARATIONAdditional documents requiredTrade documents pending submission. Applies only to Request Payment
DECLARATION_REVIEWDocument review in progressDocument review in progress
SUCCESSTransaction successfulOrder successful
FAILEDTransaction failedOrder failed
CLOSEDTransaction closedOrder closed due to expiration
RETURNINGRefund processingRefund processing
RETURNEDRefundedRefund processed successfully
IN_PROGRESSPayment verification in progressPayment has been received by the platform and is under security verification. Applies only to Deposit

Order Type

CodeDescription
1Deposit
2Wallet Transfer
3Internal Transfer
4Request Payment
5Withdraw

Field Description: amount

This field indicates the transaction amount. Its type is string. Precision requirements vary by currency type:
  • Digital Currency: generally supports up to 6 decimal places to meet on-chain transaction precision requirements.
  • Fiat Currency: generally supports up to 2 decimal places, accurate to cents.
  • Japanese Yen (JPY): JPY has no decimal places. The amount must be an integer and must not contain a decimal part.
Please strictly control the amount format according to the currency type to avoid precision errors or processing exceptions.

Purpose

CodeDescription
PMT001Invoice payments
PMT002Payment for services
PMT003Payment for software
PMT004Payment for imported goods
PMT005Travel services
PMT006Transfer to own account
PMT007Repayment of loans
PMT009Payment of property rental
PMT010Information Service Charges
PMT011Advertising & Public relations-related expenses
PMT012Royalty fees, trademark fees, patent fees, and copyright fees
PMT013Fees for brokers, front-end fee, commitment fee, guarantee fee, and custodian fee
PMT014Fees for advisors, technical assistance, and academic knowledge, including remuneration for specialists
PMT015Representative office expenses
PMT016Tax Payment
PMT017Transportation fees for goods
PMT018Construction costs / expenses
PMT019Insurance Premium
PMT020General Goods Trades - Offline trade
PMT021Insurance Claims Payment
PMT024Medical Treatment
PMT025Donations
PMT026Mutual Fund Investment
PMT027Currency Exchange
PMT028Advance Payments for Goods
PMT029Merchant Settlement
PMT030Repatriation Fund Settlement

Country/Region Code

Country/Region Code

Industry Code

Industry Code

Profile Error Description

The following messages are returned by profile validation and grouped by module. [Business details]
  • Industry cannot be empty!
  • Added industries exceeded limit: 3
  • Industry code cannot be empty!
  • Industry code does not exist!
  • Sales turnover of last year cannot be empty!
  • Incorrect sales turnover of last year input!
  • Year(s) in business cannot be empty!
  • Incorrect year(s) in business input!
  • Location(s) of business cannot be empty!
  • Location(s) of business exceeded limit: 3
  • Industry details cannot be empty!
  • Industry details exceeded maximum length
[Entity details]
  • We only support partnership business in Hong Kong
  • We only support sole proprietorship business in Hong Kong
  • Please enter the ciNumber.
  • Please enter the brNumber.
  • Operating place cannot be empty!
  • Operating address cannot be empty!
  • Operating address exceeded maximum length
  • Company registered place cannot be empty!
  • Company registered place not supported:[area name]
  • The operating place is not supported:[area name]
  • Company registered address cannot be empty!
  • Company registered address maximum length
  • Company registered address in English only
  • Website exceeded maximum length
  • Incorrect business type!
  • Business registration certificate number exceeded max length
  • Business registration certificate number cannot be empty
  • Certificate of incorporation number exceeded maximum length
  • Certificate of incorporation number cannot be empty
  • Name of business in English cannot be empty!
  • Name of business in Chinese cannot be empty!
  • Name of business in Chinese exceeded maximum length
  • Name of business in English exceeded maximum length
  • Not allowed option
  • Please upload a valid proof of Certificate of Incorporation
  • Please upload a valid proof of Memorandum and Articles of Association
  • Please upload a valid proof of Business Registration
  • Please upload a valid proof of Partnership Agreement
  • Please upload a valid proof of Certificate of Incumbency
  • Please upload a valid proof of KYC Files
  • Duplicated document
  • Please enter a valid business type.
  • Company incorporation date cannot be empty
  • Company incorporation date cannot be empty be greater than current date:[corresponding value]
  • Place of financial regulator cannot be empty!
  • Incorrect place of financial regulator input!
  • Name of regulator cannot be empty!
  • Name of regulator exceeded maximum length
  • Type of license cannot be empty!
  • Type of license exceeded maximum length
  • Incorrect place of incorporation!
  • Sorry, the country/region is not supported yet! ... :{placeOfIncorporation}
  • Please upload a valid proof of License/Certificate of Financial Institution
  • Place of listing cannot be empty!
  • Incorrect place of listing input!
  • Name of exchange cannot be empty!
  • Name of exchange exceeded maximum length
  • Stock code cannot be empty!
  • Stock code exceeded maximum length
  • Place of government owner cannot be empty!
  • Incorrect place of government owner input!
[Key people]
  • Email exceeded maximum length
  • Incorrect email address format
  • AreaCode exceeded maximum length
  • MobileNumber exceeded maximum length
  • Incorrect country/region of key people
  • Incorrect country/region and idType of key people
  • Incorrect idType
  • The user's idv information is incomplete
  • Last name in English exceeded maximum length
  • Last name in English and first name in English cannot have only one value
  • First name in English exceeded maximum length
  • Name in Chinese exceeded maximum length
  • idNumber exceeded maximum length
  • Incorrect gender
  • Please upload a valid proof of key people
  • Please set a valid quorum
  • Id Number[{idNumber}] was duplicate!
  • Signer must be equal or greater than quorum
  • Direct number has to be between 1 to 99
  • Partner number has to be between 2 to 6
  • Please add at least one owner
  • Please add at most one owner
  • Only limited company can create director
  • Only partnership can create partner
  • Please select at least one role for user:
  • IsOwner is only supported by sole proprietorship
[Shareholder]
  • Shareholder structure cannot be empty
  • Incorrect Level in sharesholder structure, only Zero to Ten Level
  • Last name in English exceeded maximum length
  • First name in English exceeded maximum length
  • Name in Chinese exceeded maximum length
  • Shareholder (company) name in English exceeded maximum length
  • Shareholder (company) name in Chinese exceeded maximum length
  • Shareholder (company) RegulatorName exceeded maximum length
  • Shareholder (company) ExchangeName exceeded maximum length
  • Shareholder (company) Stock code exceeded maximum length
  • Incorrect ownedSharesPercent
  • Shareholder type cannot be empty
  • Please input correct shareholder type:{type}
  • Shareholder (personal) name in English and Chinese cannot be empty at the same time!
  • Shareholder (company) name cannot be empty
  • Shareholder (company) business type cannot be empty
  • Please input correct business type for the shareholder (company):{businessType}
  • We only support sole proprietorship business in Hong Kong
  • We only support partnership business in Hong Kong
  • Shareholder (company) place of incorporate cannot be empty
  • Incorrect shareholder (company) place of incorporate
  • We only support company registered place for partnership and sole proprietorship in Hong Kong only
  • Last name in English and first name in English cannot have only one value
  • ParentId cannot be empty
  • Listed/government owner/financial regulator not support partnership business
  • Place of financial regulator cannot be empty!
  • Place of financial regulator not supported!
  • Name of regulator cannot be empty!
  • Name of regulator exceeded maximum length
  • Type of license cannot be empty!
  • Type of license exceeded maximum length
  • Listed/government owner not support sole proprietorship business
  • Place of listing cannot be empty!
  • Place of listing not supported!
  • Name of exchange cannot be empty!
  • Name of exchange exceeded maximum length
  • Stock code cannot be empty!
  • Stock code exceeded maximum length
  • Place of government owner cannot be empty!
  • Incorrect place of government owner input!
  • Corresponding shareholder type for sameId[{id}] is different
  • Corresponding shareholder name for sameId[{id}] is different
  • Incorrect parentId in sharesholder structure
  • Abnormal shareholder structure
  • Shareholder structure cannot exceed 10 layers
  • Shareholder structure is not necessary
[Others]
  • Customer type error.