Z Zise Developers
账户中心 › 指南

一张图看完:从建会员到实名通过,谁在什么时候做什么,以及三处最容易走错的岔口。

创建会员与 KYC 全流程

这条线上有三方,任何一步都由其中一方推进 —— 看图时先认准泳道:

你(商户服务端) 终端用户 · 在我方托管页上 我方 POST /v1/members 建会员 会员去下单 拿到 kyc_required GET /kyc/requirements 这条线要几级? POST /kyc/sessions 拿 hosted_url 转给终端用户 WebView / 短信 hosted_url 填 15 个字段 + 传影像 在我方页面上,不经过你 点「提交」 form 同源 POST 回我方 校验失败 → 原样回填重填 票据不消费;照片要重选 人工审核 UNREVIEWED REJECTED 可改后重提 APPROVED kyc_level ↑ SUPPLEMENT_ REQUIRED kyc.result.updated 每一次流转都发一条 回到你这边

图上那条虚线(校验失败 → 重填)不回到你这边。 用户填错一个字

不需要你重开链接 —— 票据只在提交成功那一刻才被消费。

⚠⚠ **图上「我方」那一栏里的 APPROVED / REJECTED / SUPPLEMENT_REQUIRED

是我方的内部状态,开放 API 上你拿不到它们。** 画在这里是为了让你理解

事件为什么会来第二次。

你能读到的只有 GET /v1/kyc 的三档:approved / pending / none

REJECTED 在那里显示成 none —— 与「从没申请过」完全同形。

详见 L1 那一页的「你实际能看到什么」


三处最容易走错的岔口

一、标识符:x-on-behalf-of 两种都认,但别的地方不是

x-on-behalf-of 两种标识都收mem_ 开头按我方内部 id 查,否则按你给的 external_member_id 查。

但这不是全站统一的。

地方收什么
x-on-behalf-of两种都行
GET /v1/members/{id}/limits两种都行(按 mem_ 前缀二选一)
POST /v1/members/{id}/sessions/revoke只认 external_member_id

⚠ 我方发给你的 idmem_<uuid>,带前缀。把前缀剥掉存进你自己的库、

再拿裸 UUID 来调,会被当成 external_member_id 去查 —— 404 member_not_found

二选一意味着没有回落。 如果你有一个真的以 mem_ 开头的

external_member_id,那个会员在上面三处会永久 404。别用 mem_ 开头的外部号。

二、「提交成功」不等于「实名通过」

托管页显示「已提交」的那一刻,会员的 kyc_level 仍然是 0。审核是异步的。

此时 GET /v1/kycstatuspending —— 这是你唯一能看出「他交了、在审」的地方。

⚠ 拿「提交成功」去放行业务,会让一批还没过审的用户进到需要实名的线上,

而他们在下一步才被拒 —— 那时你已经收了钱或者建了单。

kyc.result.updated

三、不要在你这边硬编码「哪条线要几级」


GET /v1/kyc/requirements

门槛会变(我方或你的配置调整)。写死的表现是:调整当天,你的用户被你自己的前端挡住,或者反过来走完六屏才在最后一步拿到kyc_required


时间与失效

签发 POST /kyc/sessions 用户提交成功 票据此刻消费 24 小时 过期,补发一张即可 这段时间里可以反复打开、反复重填

有效期 24 小时,一次性。它要经你转交给终端用户,他再去翻证件、拍照片 ——所以不是 5 分钟。但也别指望更久:拿到这条 URL 的人就能以那个会员的名义提交一份实名档案。

接着读