Overview
This API set is designed for ISV (Independent Software Vendor) customers: Party A initiates onboarding applications for its end customer (companies), and the OristaPay platform handles the full process including company search, compliance review, IDV, signing, and automatic wallet creation. After completing onboarding, ISV customers receivecompanyCode and walletId, and can directly use the ISV Transaction API to perform transfers, payment collection, Payout, and other transactions on behalf of merchants. Transaction API fields remain unchanged — Party A simply passes walletId as normal, and OristaPay automatically enforces authorization based on the ISV ↔ merchant relationship.
The authentication, signing, request headers, response envelope, file upload, and error code system of this API set are fully consistent with the RDPAY API. For details not repeated in this document, please refer to the ISV Transaction API.
Business Flow
Identifier Conventions
OnboardingAPI
API Index
1. File Upload (fileUpload)
Interface Overview Before submitting underlying customer information, you need to use this interface to upload files related to the company. Request Parameters
Response Parameters
Response Example
2. Submit Application (SubmitApplication)
Interface Overview Submit a company onboarding application for a downstream merchant (Party B). Use this endpoint for first-time submissions or resubmissions after a previous application was rejected (REJECTED).
Request Parameters
Response Parameters
ApplicationData Field Description
Errors Field Description
Request Example
- Idempotency key
(extApplicationNo): Repeated submissions with the sameextApplicationNoand same body → returns the originalapplicationNo; different body →6801 - Merchant concurrency guard: Only one active application is allowed per Party B
(CI number / BR number)under the same Party A. A new application can only be submitted after the current one reaches a final state (APPROVED/REJECTED) - Resubmission after rejection: Must use a new
extApplicationNo; a newapplicationNois generated on submission - Company search failure = automatic rejection: In the API path, whether it’s a company search classification failure (CI/BR not found, etc.) or a search comparison mismatch (data inconsistency), the application is directly set to
REJECTEDand aREJECTEDwebhook is pushed. Party A must use a newextApplicationNoto resubmit
3. Query Application (QueryApplication)
Interface Overview Query application progress byapplicationNo or extApplicationNo (choose one).
Request Parameters
Response Parameters
QueryApplicationData Field Description
applicationStatus values:UNDER_REVIEW: Under acceptance or review (covers all non-final, non-pending-user stages including company search, manual review, etc.)PENDING_USER: Company search passed; waiting for keyPeople to complete IDV/signing. Only now (and only now) canGetIdvLinkbe called; calling earlier returns6406APPROVED: Approved, wallet created. UsecompanyCode/walletIdfor subsequent businessREJECTED: Application rejected; cannot be recovered in the API scenario. Resubmit with a newextApplicationNo
applicationStatus semantics are consistent between query and webhook. If Party A misses the PENDING_USER webhook due to a network issue, the same status can be obtained by actively calling the query API.EachRequest ExampleKeyPeopleInfoinprofile.keyPeople.people[]includespeopleId(for obtaining IDV/signing links), and two status fieldsidvStatus/mandateStatus(reflecting the person’s real-time IDV/signing progress).
4. Get IDV Link (GetIdvLink)
Interface Overview Generate a one-time H5 link for the specifiedpeopleId. A single link completes both IDV → signing: Party B user opens the link, completes IDV first, and the page automatically proceeds to signing after IDV passes. For individuals with isMandateUser = false, only IDV is required; the flow ends when IDV completes.
Party A is responsible for delivering the link to Party B users (via email / SMS / QR code scan / redirect, at Party A’s discretion).
Precondition: You must first receive the
ONBOARDING_APPLICATION_STATUS_NOTIFICATION webhook with applicationStatus = PENDING_USER before calling this endpoint. Before this, the backend is in the company search phase; calling will return 6406 with a message to wait for the PENDING_USER webhook.
Response Parameters
LinkData Field Description
Request Example
- IDV Links are single-use: they expire after Party B completes the full flow (IDV + signing); unused links also expire after the timeout
- Repeated calls for the same
peopleId: unexpired link exists → returns the original link; expired → automatically invalidates the original link and generates a new one - Returns
6001if the person has already completed all tasks (IDV passed, and ifisMandateUser=true, signing also completed)
5. Refresh Link (RefreshIdvLink)
Interface Overview When the link has expired (expireTime < now) or is about to expire, Party A calls this endpoint to generate a new link; the original link is immediately invalidated.
Request Parameters
Response Parameters
LinkData: Fields are the same as §4.
Request Example
- Same precondition as §4: must first receive the
PENDING_USERwebhook; otherwise returns6406 - The original link is immediately invalidated after this call
- Returns
6001if the person has already completed all tasks (IDV passed and signing completed) - Returns
6001if the application has been in final status (APPROVED/REJECTED)
6. Query Company Profile (QueryCompanyProfile)
Interface Overview Query the full company profile after approval bycompanyCode.
Request Parameters
Response Parameters
Request Example
- Only companies with approved status (
applicationStatus = APPROVED) can be queried; unapproved companies return6001+ message “Profile is not approved yet.” companyCodemust belong to the current Party A; otherwise returns6005- The data reflects the latest OristaPay review result, which may differ from the submitted
profile(reviewers may supplement or correct certain fields)
Callback
The callback request body, signature verification, and response requirements are fully consistent with the ISV Transaction API · Callback. This document only defines the newOpenBizType values and payload fields.
1. New OpenBizType Enums
2. Callback Data Types
2.1 Application Status Change (OnboardingApplicationStatusNotification)
Trigger Timing (only key review nodes; individual node changes are not pushed)- Newly submitted applications (first entering
UNDER_REVIEWstatus) do not trigger a separate webhook. Party A knows the application is accepted through the synchronousSubmitApplicationresponse - Node-level changes (
NameScreening → RiskScreening, etc.) are no longer pushed; only available through theQueryApplicationAPI - Duplicate pushes of the same
applicationStatusshould be treated idempotently (deduplicated byX-Nonce)
Example (Company Search Passed, IDV Can Begin)
2.2 keyPeople IDV Failure (OnboardingKeyPeopleIdvFailedNotification)
Pushed when a key person’s IDV fails. Upon receiving this, Party A can have Party B retry IDV: callRefreshIdvLink to get a new link for Party B.
Trigger
- IDV failure
Example
Company Profile Form
profile is the core payload for submitting an onboarding application (SubmitApplication), and also the core data returned by query APIs. The structure varies by business type (partnership / limited company / sole proprietorship) and place of incorporation.
1. Top-Level Structure
2. Support Matrix
3. Common Sub-structures
3.1 businessDetail.list[] Element
Party A only needs to passsubIndustryCode. The primaryindustryCodeis auto-populated by the server via dictionary lookup; any value passed by Party A will be overwritten.
3.2 KeyPeopleInfo Common Fields
All business types useKeyPeopleInfo for keyPeople.people[]. Common submission fields:
Two typical wallet admin configurations:
- Combined role: A director / UBO also checks
isWalletAdmin=true(one person, two roles) - Separate role: Add a wallet-admin-only person to the
keyPeoplelist (setisDirector/isUbo/isPartner/isOwnerall tofalse, onlyisWalletAdmin=true). This person must go through IDV
The “Mainland China ID Card” inidTypeis a personal document enum, distinct from “place of incorporation”. When the incorporation place is HKG but a director/shareholder is a Mainland China resident, thisidTypeis used normally.
3.3 Runtime Fields Written Back by OristaPay
Party A must NOT populate these fields on submission; they carry write-back results from OristaPay when read viaQueryApplication.
3.4 Account Opening Questionnaire
All business types must include this module inprofile.
| Field | Type | M / O / CM | Description | | | :— |:--------------| :— |:---------------------------------------------------------------------------------------------------------------------------| | accountOpeningPurposes | Array<enum> | M | Account opening purposes, select 1-2: PAYMENT_FOR_HK_BUSINESS / STORE_DIGITAL_ASSETS_FOR_HK_BUSINESS | | expectedCounterparties | string(256) | O | Expected business counterparties (free text) | | expectedMonthlyVolume | enum | M | Expected monthly volume (HKD), single choice: BELOW_1M_HKD / FROM_1M_TO_2_5M_HKD / FROM_2_5M_TO_5M_HKD / FROM_5M_TO_10M_HKD / ABOVE_10M_HKD | | handleClientMoney | string | M | Whether client money is handled (YES/NO) |
Example
4. Partnership Company (Hong Kong only)
entityDetail
keyPeople: 2-6 partners.
KeyPeopleInfo adds the following on top of common fields:
Submission Example
5. Limited Company (Hong Kong)
entityDetail
shareholder (choose either
list or shareholderFileKey)
Shareholder structure is required only for “Limited Company” whenShareholderDtoisFinancialInstitute=2/isListed=2/isGovOwned=2(i.e., none are exempted).
keyPeople
KeyPeopleInfo adds the following on top of common fields:
6. Limited Company (Non-Hong Kong)
Most fields are identical to §5. Differences are listed below (unlisted fields match §5):7. Sole Proprietorship Company (Hong Kong only)
entityDetail
keyPeople: Exactly one owner.
KeyPeopleInfo adds the following on top of common fields:
8. File Key Field Summary
Upload files via the file upload endpoint to obtainfileKey, then fill them into profile.
File types and limits:
jpeg / jpg / png / pdf / gif, max 20 MB per file.
Error Codes
1. Business Error Codes
2. Per-Endpoint Error Code Reference
2.1 SubmitApplication
2.2 QueryApplication
2.3 GetIdvLink
2.4 RefreshIdvLink
2.5 QueryCompanyProfile
3. Profile Error Descriptions (code = 6802)
The complete list is identical to ISV Transaction API · Profile Error Descriptions, grouped by module:
[Business details][Entity details][Key people][Shareholder][Others]
[Entity details]Place of incorporation not supported: CHN—incorpPlace/regPlace/operatingPlaceat entity level must not be CHN[Entity details]Place of incorporation not supported: <sanctioned country code>— Sanctioned country[Entity details]Partnership / Sole proprietorship only support incorpPlace=HKG— Partnership / sole proprietorship is supported in Hong Kong only[Key people]Nationality not supported: <country code>— keyPeople nationality is a sanctioned country (CHN is exempted)[Wallet Admin]Work certification is necessary— Wallet admin with region=CHN did not provideoverseaWorkCertificateFileKey

