Z Zise Developers

实名档案更新 —— 换一张托管屏链接

POST /v1/kyc/profile-sessions scope: kyc:write
代会员调用 · 必带 x-on-behalf-of x-idempotency-key

会员改名、换了证件、搬了家。在这一条之前无路可走POST /v1/kyc/sessions 那一屏在已有档案时拒绝(每账户只许一份实名档案),于是唯一的办法是给他重新建一个会员 —— 而那会造出第二个余额为 0 的账号,旧账号里的钱与卡都留在原地。

托管屏会预填现有资料,用户只改要改的那几项;证件影像没重传的沿用原来那一份(强制重传三张照片会把「改一个字」变成一次完整的重新实名,多数人会因此放弃)。

⚠⚠ 改完一律退回待审核,包括已通过的档案。资料改了就不再是审核员看过的那一份 —— 要么拒绝编辑、要么重审,没有第三种。所以:

  • 这个会员的 level 会从 1 掉回 0;
  • 复审通过之前,发卡 / 汇款 / 高额转账都会停
  • 请在给出链接之前把这件事告诉用户,否则他会在半路上发现自己的卡不能用了。

⚠ 与卡补件那一屏刻意相反:那一屏只换证件影像、不动审核结论

(起因是某一家发卡机构的图像质量意见,不该让这个会员全线停摆)。

⚠ 该会员还没建过档时回 404 —— 不会兜底签一张建档的票。建档走 POST /v1/kyc/sessions,两条路不互相回落。

链接一次性、绑会员、24 小时。

前置条件

  • 该会员已经有一份实名档案(任意状态)
字段类型必填说明
x-idempotency-key string 必填
x-on-behalf-of string 必填

响应

201票据已签发
{
  "id": "kyc_1c8b7a45e9d24f3ab60e5c917f83d2b4",
  "hosted_url": "https://api.zise.com/hosted/kyc/update/kyc_1c8b7a45e9d24f3ab60e5c917f83d2b4",
  "expires_at": 1786000000
}
400idempotency_key_required · member_context_required · member_not_found
404not_found —— 这个会员还没有可改的实名档案。 先走 POST /v1/kyc/sessions 建档。
请求
curl -X POST 'https://api.zise.com/v1/kyc/profile-sessions' \
  -H 'x-auth-token: Bearer $TOKEN' \
  -H 'x-on-behalf-of: $MEMBER_ID' \
  -H 'x-idempotency-key: $IDEMPOTENCY_KEY'
const res = await fetch("https://api.zise.com/v1/kyc/profile-sessions", {
  method: "POST",
  headers: {
    "x-auth-token": "Bearer $TOKEN",
    "x-on-behalf-of": "$MEMBER_ID",
    "x-idempotency-key": "$IDEMPOTENCY_KEY",
  },
});
// 金额按字符串读,别让它变成 number
const data = await res.json();
import requests

res = requests.post(
    "https://api.zise.com/v1/kyc/profile-sessions",
    headers={
        "x-auth-token": "Bearer $TOKEN",
        "x-on-behalf-of": "$MEMBER_ID",
        "x-idempotency-key": "$IDEMPOTENCY_KEY",
    },
)
# 金额用 Decimal(str(...)),不要 float
data = res.json()
req, _ := http.NewRequest("POST", "https://api.zise.com/v1/kyc/profile-sessions",
    nil)
req.Header.Set("x-auth-token", "Bearer $TOKEN")
req.Header.Set("x-on-behalf-of", "$MEMBER_ID")
req.Header.Set("x-idempotency-key", "$IDEMPOTENCY_KEY")
res, err := http.DefaultClient.Do(req)
// 金额字段用 string 接,不要 float64
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://api.zise.com/v1/kyc/profile-sessions"))
    .header("x-auth-token", "Bearer $TOKEN")
    .header("x-on-behalf-of", "$MEMBER_ID")
    .header("x-idempotency-key", "$IDEMPOTENCY_KEY")
    .method("POST", HttpRequest.BodyPublishers.noBody())
    .build();
// 金额字段用 String / BigDecimal,不要 double
$ch = curl_init('https://api.zise.com/v1/kyc/profile-sessions');
curl_setopt_array($ch, [
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    'x-auth-token: Bearer $TOKEN',
    'x-on-behalf-of: $MEMBER_ID',
    'x-idempotency-key: $IDEMPOTENCY_KEY',
  ],
]);
$res = curl_exec($ch);
// 金额用 bcmath / 字符串,不要 floatval
201
{
  "id": "kyc_1c8b7a45e9d24f3ab60e5c917f83d2b4",
  "hosted_url": "https://api.zise.com/hosted/kyc/update/kyc_1c8b7a45e9d24f3ab60e5c917f83d2b4",
  "expires_at": 1786000000
}