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 passwalletId 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
Wallet Payment API
1. Static Receiving Address Query
Interface Overview Query the Request Payment static receiving address of a specified wallet. Request Parameters
Response Parameters
StaticAddressData fields:
Request Example
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 bywalletId + 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
Response Parameters
SupportedCurrenciesQueryData fields:
Request Example
3. Request Payment Order Declaration
Interface Overview Submit a Request Payment deposit order. Request ParametersMaterial fields:
Response Parameters
Request Example
4. Request Payment Material Supplement
Interface Overview Supplement product and logistics materials for an existing declared order. Request ParametersMaterial fields are the same as those in 1. Request Payment Order Declaration.
Response Parameters
Request Example
5. Order Details
Interface Overview Query wallet order details by order number or external order number. Request Parameters
Response Parameters
WalletOrderDetailData fields:
Request Example
6. Order List
Interface Overview Query wallet orders bywalletId 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
Response Parameters
Page fields:
WalletOrderDetailData fields:
Request Example
7. 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
Response Parameters
WalletBillData fields:
Request Example
Bank Account API
The following APIs share theBankAccountDataandFileInfodefinitions.
BankAccountData fields:
FileInfo fields:
8. Add Beneficiary Bank Account
Interface Overview Add a beneficiary bank account. Request Parameters
Response Parameters
Request Example
9. 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
Response Parameters
Same as
9. Add Beneficiary Bank Account. data is BankAccountData.
Request Example
9. Add Beneficiary Bank Account.
10. Delete Beneficiary Bank Account
Interface Overview Delete a beneficiary bank account. Request Parameters
Response Parameters
Request Example
11. Enquiry Beneficiary Bank Account
Interface Overview Query beneficiary bank accounts. Request Parameters
Response Parameters
Request Example
Off-ramp API
12. Payout Quote
Interface Overview Obtain the price and transfer-related information for a specified currency pair. At least one offromAmount or toAmount must be provided.
Request Parameters
Response Parameters
PayoutQuoteData fields:
Request Example
13. Payout Order
Interface Overview Place a payout order based on a quote ID. Request Parameters
Response Parameters
PayoutBookData fields:
Request Example
14. Payout Order Enquiry
Interface Overview Query payout order information by order number or quote ID. Request Parameters
Response Parameters
PayoutData fields:
Request Example
15. Payout Re-Settle
Interface Overview Re-initiate settlement after a refund or failed settlement. Request Parameters
Response Parameters
PayoutReSettleData fields:
Request Example
Callback
Callback Request Specification
Request Headers
Signature Verification
The algorithm is the same as inbound API signing and uses the samesign_secret:
PATH: the path part of the callback URL, excluding domain and query string.BODY: the raw HTTP request body bytes.
Verification Steps
- Read request headers:
X-Timestamp,X-Nonce,X-Signature, andX-Api-Key. - Validate the timestamp window:
abs(now_ms - X-Timestamp) <= 5 * 60 * 1000; otherwise reject with401. - Read the raw request body before any parsing or deserialization.
- Recalculate the signature using
sign_secretand the raw body. - Compare the calculated signature and
X-Signatureusing constant-time comparison. - Use
X-Nonceas 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.
PATHmust match exactly. Do not add or remove a trailing slash, URL-decode it, or remove gateway prefixes.X-Signatureis lowercase hex. The method is fixed as uppercasePOST.- Empty body must also be signed.
SHA256_HEX("")ise3b0c442...b855.
Reference Implementations
PythonResponse Requirements
- The merchant system must respond within 8 seconds.
- HTTP
2xxstatus code is treated as successful delivery. - Non-
2xx, timeout, or business error response is treated as failed delivery. - Recommended response body:
Idempotency and Replay Protection
- Idempotency key: use
X-Nonceas the idempotency key and persist it. If the same key is received again, return the previous result directly. - Replay protection: validate that
X-Timestampis within ±5 minutes of the server time. - Strict signature verification: reject any request with invalid signature using
4xxand do not enter business processing.
Callback Data Types
16. Order Result Notification
Sample Data
17. Add Bank Account Result Notification
Sample Data
18. Payout Result Notification
Sample Data
19. Payout Refund Result Notification
Sample Data
20. Payout Re-Settle Result Notification
Sample Data
Appendix
Response Code
Payout Order Status
Deposit Order Status
Order Type
Field Description: amount
This field indicates the transaction amount. Its type isstring. 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.
Purpose
Country/Region Code
Country/Region CodeIndustry Code
Industry CodeProfile Error Description
The following messages are returned by profile validation and grouped by module. [Business details]Industry cannot be empty!Added industries exceeded limit: 3Industry 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: 3Industry details cannot be empty!Industry details exceeded maximum length
We only support partnership business in Hong KongWe only support sole proprietorship business in Hong KongPlease enter the ciNumber.Please enter the brNumber.Operating place cannot be empty!Operating address cannot be empty!Operating address exceeded maximum lengthCompany 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 lengthCompany registered address in English onlyWebsite exceeded maximum lengthIncorrect business type!Business registration certificate number exceeded max lengthBusiness registration certificate number cannot be emptyCertificate of incorporation number exceeded maximum lengthCertificate of incorporation number cannot be emptyName of business in English cannot be empty!Name of business in Chinese cannot be empty!Name of business in Chinese exceeded maximum lengthName of business in English exceeded maximum lengthNot allowed optionPlease upload a valid proof of Certificate of IncorporationPlease upload a valid proof of Memorandum and Articles of AssociationPlease upload a valid proof of Business RegistrationPlease upload a valid proof of Partnership AgreementPlease upload a valid proof of Certificate of IncumbencyPlease upload a valid proof of KYC FilesDuplicated documentPlease enter a valid business type.Company incorporation date cannot be emptyCompany 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 lengthType of license cannot be empty!Type of license exceeded maximum lengthIncorrect place of incorporation!Sorry, the country/region is not supported yet! ... :{placeOfIncorporation}Please upload a valid proof of License/Certificate of Financial InstitutionPlace of listing cannot be empty!Incorrect place of listing input!Name of exchange cannot be empty!Name of exchange exceeded maximum lengthStock code cannot be empty!Stock code exceeded maximum lengthPlace of government owner cannot be empty!Incorrect place of government owner input!
Email exceeded maximum lengthIncorrect email address formatAreaCode exceeded maximum lengthMobileNumber exceeded maximum lengthIncorrect country/region of key peopleIncorrect country/region and idType of key peopleIncorrect idTypeThe user's idv information is incompleteLast name in English exceeded maximum lengthLast name in English and first name in English cannot have only one valueFirst name in English exceeded maximum lengthName in Chinese exceeded maximum lengthidNumber exceeded maximum lengthIncorrect genderPlease upload a valid proof of key peoplePlease set a valid quorumId Number[{idNumber}] was duplicate!Signer must be equal or greater than quorumDirect number has to be between 1 to 99Partner number has to be between 2 to 6Please add at least one ownerPlease add at most one ownerOnly limited company can create directorOnly partnership can create partnerPlease select at least one role for user:IsOwner is only supported by sole proprietorship
Shareholder structure cannot be emptyIncorrect Level in sharesholder structure, only Zero to Ten LevelLast name in English exceeded maximum lengthFirst name in English exceeded maximum lengthName in Chinese exceeded maximum lengthShareholder (company) name in English exceeded maximum lengthShareholder (company) name in Chinese exceeded maximum lengthShareholder (company) RegulatorName exceeded maximum lengthShareholder (company) ExchangeName exceeded maximum lengthShareholder (company) Stock code exceeded maximum lengthIncorrect ownedSharesPercentShareholder type cannot be emptyPlease input correct shareholder type:{type}Shareholder (personal) name in English and Chinese cannot be empty at the same time!Shareholder (company) name cannot be emptyShareholder (company) business type cannot be emptyPlease input correct business type for the shareholder (company):{businessType}We only support sole proprietorship business in Hong KongWe only support partnership business in Hong KongShareholder (company) place of incorporate cannot be emptyIncorrect shareholder (company) place of incorporateWe only support company registered place for partnership and sole proprietorship in Hong Kong onlyLast name in English and first name in English cannot have only one valueParentId cannot be emptyListed/government owner/financial regulator not support partnership businessPlace of financial regulator cannot be empty!Place of financial regulator not supported!Name of regulator cannot be empty!Name of regulator exceeded maximum lengthType of license cannot be empty!Type of license exceeded maximum lengthListed/government owner not support sole proprietorship businessPlace of listing cannot be empty!Place of listing not supported!Name of exchange cannot be empty!Name of exchange exceeded maximum lengthStock code cannot be empty!Stock code exceeded maximum lengthPlace of government owner cannot be empty!Incorrect place of government owner input!Corresponding shareholder type for sameId[{id}] is differentCorresponding shareholder name for sameId[{id}] is differentIncorrect parentId in sharesholder structureAbnormal shareholder structureShareholder structure cannot exceed 10 layersShareholder structure is not necessary
Customer type error.

