概述
本套 API 面向 ISV(独立软件开发商) 客户:A 端为其终端客户(company)发起开户申请,由 OristaPay 平台完成企业查册、合规审核、IDV、签署、自动开通钱包等全流程。 ISV 客户完成 onboarding 后,拿到companyCode 与 walletId,可直接复用 ISV 交易 API 代客户完成转账、收款、Payout 等交易。交易接口字段零变更——A 端调用时只需正常传 walletId,OristaPay 会按 ISV ↔ 商户的归属关系自动完成鉴权。
本套 API 的鉴权、签名、请求头、响应信封、文件上传、错误码体系与 RDPAY API 完全一致,未在本文档重复说明的部分请参考 ISV 交易 API。
业务流程
标识符约定
OnboardingAPI
接口索引
1. 文件上传 (FileUpload)
接口概述 提交底层客户资料前,需使用该接口上传企业相关的文件。 请求参数
响应参数
响应示例
2. 提交开户申请 (SubmitApplication)
接口概述 为下游商户(B)提交 company 开户申请。首次提交,或上一笔申请审核拒绝(REJECTED)后重新提交,均走此接口。
请求参数
响应参数
ApplicationData 字段说明
Errors 字段说明
请求示例
- 幂等键
(extApplicationNo):同extApplicationNo重复提交,body 一致 → 返回原applicationNo;body 不一致 →6801 - 同一商户防并发:同一 B 的
(CI 号 / BR 号)在 A 名下只允许一份活跃申请。当前申请进入终态(APPROVED/REJECTED)后才可再提交 - 驳回后重提:必须使用新的
extApplicationNo,提交后生成新的applicationNo - 查册失败 = 自动驳回:API 路径下,无论是 企业查册定级失败(CI/BR 找不到等)还是 查册比对不通过(数据不一致),都会直接将申请置为
REJECTED并推送REJECTEDwebhook,A 需换extApplicationNo重新提交
3. 查询申请进度 (QueryApplication)
接口概述 按applicationNo 或 extApplicationNo 查询申请进度(二选一)。
请求参数
响应参数
QueryApplicationData 字段说明
applicationStatus 取值:UNDER_REVIEW:受理中或审核中(覆盖查册中、人工审核中等所有非终态非待用户阶段)PENDING_USER:后台查册通过,等待 keyPeople 完成 IDV / 签署;此时(且仅此时)才可调GetIdvLink,之前调用返回6406APPROVED:审核通过、钱包已开通;取companyCode/walletId做后续业务REJECTED:申请被驳回;API 场景下无法恢复,需换新的extApplicationNo重新提交
applicationStatus 语义一致。如果 A 端因网络异常错过 PENDING_USER webhook,可主动调 query 看到同样的状态。请求示例profile.keyPeople.people[]中各KeyPeopleInfo含peopleId(用于获取 IDV / 签署链接)、idvStatus/mandateStatus两个状态字段(实时反映该人员的 IDV / 签署进度)。
4. 获取 IDV 链接 (GetIdvLink)
接口概述 为指定peopleId 生成一次性 H5 链接。单一链接连续承载 IDV → 签署两步:B 用户打开链接后先完成 IDV,IDV 通过后页面自动进入签署流程;isMandateUser = false 的人员只走 IDV,IDV 完成即结束。
链接由 A 自行送达给 B 用户(邮件 / 短信 / 二维码扫码 / 跳转,A 决定)。
前置条件:必须先收到
ONBOARDING_APPLICATION_STATUS_NOTIFICATION 中 applicationStatus = PENDING_USER 的 webhook 后才能调用本接口。在此之前后端处于企业查册阶段,调用将返回 6406,提示等待 PENDING_USER webhook。
响应参数
LinkData 字段说明
请求示例
- 链接为一次性:B 完成完整流程(IDV + 签署)后链接失效;过期未使用同样失效
- 同一
peopleId重复调用:已有未过期链接 → 直接返回原链接;已过期 → 自动作废原链接并生成新链接 - 该人员已完成全部任务(IDV 通过且
isMandateUser=true时签署也完成)时再调用返回6001
5. 刷新链接过期时间 (RefreshIdvLink)
接口概述 链接过期(expireTime < now)或临近过期时,A 调用此接口生成新链接;原链接立即失效。
请求参数
响应参数
LinkData:字段同 §4。
请求示例
- 前置条件同 §4:必须先收到
PENDING_USERwebhook,否则返回6406 - 调用后原链接立即作废
- 若该人员已完成全部任务(IDV 通过且签署完成),调用返回
6001 - 若申请已进入终态(
APPROVED/REJECTED),调用返回6001
6. 查询审核通过的完整企业资料 (QueryCompanyProfile)
接口概述 按companyCode 查询审核通过后的企业完整资料。
请求参数
响应参数
请求示例
- 仅可查询审核通过(
applicationStatus = APPROVED)的企业;尚未通过的企业返回6001+ 提示 “Profile is not approved yet.” companyCode必须属于当前 A,否则返回6005- 资料以 OristaPay 侧最新审核结果为准,可能与提交时的
profile不完全一致(审核员可补录或修正部分字段)
Callback
回调请求体、签名验证、响应要求与 ISV 交易 API · Callback 完全一致,本文档仅定义新增的OpenBizType 与载荷字段。
1. 新增的 OpenBizType 枚举
2. 回调数据类型
2.1 申请状态变更 (OnboardingApplicationStatusNotification)
触发时机(仅关键审核节点,节点变更不会逐个推送)- 申请刚提交(
UNDER_REVIEW状态首次进入)不会单独推送 webhook,A 通过SubmitApplication同步响应即知申请受理 - 节点级变更(
NameScreening → RiskScreening等)不再推送,仅QueryApplication接口可查 - 同一
applicationStatus的重复推送应该幂等(按X-Nonce去重)
示例(查册通过,可发起 IDV)
2.2 keyPeople IDV 失败 (OnboardingKeyPeopleIdvFailedNotification)
某个 keyPeople 的 IDV 失败时推送,A 端收到后可让 B 重做 IDV:调RefreshIdvLink 拿新链接给 B。
触发时机
- IDV失败
示例
企业资料表单
profile 是提交开户申请(SubmitApplication)的核心载荷,也是查询接口返回的核心数据。结构因业务类型(合伙 / 有限 / 独资)和注册地不同而异。
1. 顶层结构
2. 支持矩阵
3. 通用子结构
3.1 businessDetail.list[] 元素
A 端只需要传subIndustryCode,主行业industryCode由服务端按字典反查自动回填,即使 A 端填了也会被服务端覆盖。
3.2 KeyPeopleInfo 通用字段
所有业务类型的keyPeople.people[] 都使用 KeyPeopleInfo。通用提交字段:
钱包管理员两种典型组合:
- 兼任:某个董事 / UBO 同时勾
isWalletAdmin=true(一人两职) - 独立:在
keyPeople列表里追加一个仅作钱包管理员的人(isDirector/isUbo/isPartner/isOwner全部false,只isWalletAdmin=true),该人需走 IDV
idType的”中国大陆身份证”是个人证件枚举,与”企业注册地”是不同维度;当企业注册地为 HKG 但董事 / 股东是中国大陆居民时,正常使用此idType。
3.3 KeyPeopleInfo 中由 OristaPay 侧回写的运行时字段
提交时 A 不要填写这些字段;通过QueryApplication 读取时它们承载 OristaPay 侧的回写结果。
3.4 开户问卷 (accountOpeningQuestionnaire)
所有商业类型的profile 都必须填写此模块。
示例
4. 合伙公司(仅香港)
entityDetail
keyPeople:合伙人列表 2-6 人,
KeyPeopleInfo 除通用字段外新增:
提交示例
5. 有限公司(香港)
entityDetail
shareholder(
list 与 shareholderFileKey 二选一)
仅”有限公司”且ShareholderDtoisFinancialInstitute=2/isListed=2/isGovOwned=2(即都不豁免)时必须提供股权结构。
keyPeople
KeyPeopleInfo 除通用字段外新增:
6. 有限公司(非香港)
字段绝大部分与 §5 相同,差异如下(未列字段同 §5):7. 独资公司(仅香港)
entityDetail
keyPeople:仅一位 owner,
KeyPeopleInfo 除通用字段外新增:
8. 文件 fileKey 字段汇总
文件先通过文件上传接口拿到fileKey,再填入 profile。
文件类型与上限:
jpeg / jpg / png / pdf / gif,单文件 ≤ 20 MB。
错误码
1. 业务错误码
2. 各接口错误码对照
2.1 SubmitApplication
2.2 QueryApplication
2.3 GetIdvLink
2.4 RefreshIdvLink
2.5 QueryCompanyProfile
3. 档案错误描述(code = 6802)
完整清单同 ISV 交易 API · 档案错误描述,按所属模块分组:
[Business details][Entity details][Key people][Shareholder][Others]
[Entity details]Place of incorporation not supported: CHN—— 企业层incorpPlace/regPlace/operatingPlace不允许 CHN[Entity details]Place of incorporation not supported: <制裁国家代码>—— 被制裁国家[Entity details]Partnership / Sole proprietorship only support incorpPlace=HKG—— 合伙 / 独资仅限香港[Key people]Nationality not supported: <国家代码>—— keyPeople 国籍为被制裁国家(CHN 特例放行)[Wallet Admin]Work certification is necessary—— region=CHN 的钱包管理员未传overseaWorkCertificateFileKey

