PATCH
/v1/members/{id}
改商户侧属性(昵称、语言)
Scope
members:write
商户自身
需 x-idempotency-key
只有两个字段可改:nickname 与 notify_lang。传别的键会被忽略;
一个可改字段都没传时回 invalid_request(这是刻意的 ——
一次什么都没改的 200 会让你以为改成功了)。
两个字段都是静默截断而不是报错:昵称截到 60 字符、语言码截到 12。
所以回读一下响应里的值,别假设你发什么就存什么。
邮箱与 external_member_id 不可改。
路径参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
id |
string | 必填 | external_member_id 或 mem_<uuid> |
请求头
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
x-idempotency-key |
string | 必填 | UUID v4 |
请求体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
nickname |
string | 可选 | 展示昵称。超过 60 字符静默截断 |
notify_lang |
string | 可选 | 通知语言码(如 zh-Hans / en)。超过 12 字符静默截断;
我方不校验它是不是一个受支持的语言,认不出时通知按缺省语言发。 |
响应
200已更新,回读整行
{
"id": "mem_9f1c0c8e-6f2a-4c1d-9d0b-2a7e5b3f8c41",
"external_member_id": "u-10086",
"uid": "80031427",
"email": "alice@example.com",
"nickname": "Alice",
"status": "normal",
"kyc_level": 1,
"created_at": "2026-08-12T09:30:00.000Z"
}400
invalid_request body 非 JSON,或一个可改字段都没传404
member_not_found(含「属于别的商户」)409
idempotency_key_reused · idempotency_in_progress
调用样例
curl -X PATCH 'https://api.zise.com/v1/members/{id}' \
-H 'authorization: Bearer $TOKEN' \
-H 'x-zise-merchant: $MERCHANT_ID' \
-H 'x-idempotency-key: $(uuidgen)' \
-H 'content-type: application/json' \
-d '{
"nickname": "Alice",
"notify_lang": "zh-Hans"
}'
const res = await fetch(
"https://api.zise.com/v1/members/{id}",
{
method: "PATCH",
headers: {
"authorization": "Bearer $TOKEN",
"x-zise-merchant": "MERCHANT_ID",
"x-idempotency-key": "crypto.randomUUID()",
"content-type": "application/json"
},
body: JSON.stringify({
"nickname": "Alice",
"notify_lang": "zh-Hans"
}),
},
);
// 金额一律按字符串读,不要 JSON.parse 成 number
const data = await res.json();
import requests
res = requests.patch(
"https://api.zise.com/v1/members/{id}",
headers={
"authorization": "Bearer $TOKEN",
"x-zise-merchant": "$MERCHANT_ID",
"x-idempotency-key": "$(uuidgen)",
"content-type": "application/json"
},
json={
"nickname": "Alice",
"notify_lang": "zh-Hans"
},
)
# 金额用 Decimal(str(...)),不要 float
data = res.json()