PATCH
/v1/cards/{id}/limits
设置用户自定义限额(0 = 未自设,落到产品上限)
Scope
cards:write
代会员调用 · 必带 x-on-behalf-of
⚠ 0 的语义是「这一层不设限」,不是「一分都不许刷」。
新卡三项恒为 0,此时生效值落到产品级 max_*。把 0 写成 0 是无操作,
想收紧就填一个正数。
⚠ 不足一个货币单位的限额一律拒(USD 卡填 "0.5" 会被拒)。
上游那三个字段是整数,而 0 在它那边意味着「不限」—— 悄悄取整的结果是
「用户把限额往严里拧,实际效果是彻底放开」,方向正好相反。
三层之间必须自洽:单笔 ≤ 日 ≤ 月(0 不参与比较)。不校验的话用户能存下
「单笔 5000 / 日 100」,然后在收银台被拒付且看不出是哪一层拒的。
⚠ 200 只表示「我方已记下」。 限额是异步推给上游的,且**只许往严的
方向落地**(调低成功了才记,调高失败了保持原值)。别把 200 当成
「上游已生效」。
省略某一项 = 保持原值(不是清零)。
前置条件
- 卡不在
closed/closing/expired - 每一项不超过产品级
max_*
路径参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
id |
string | 必填 | 卡 id |
请求头
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
x-on-behalf-of |
string | 必填 | 代哪个会员调用 |
请求体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
single |
string | 可选 | 单笔限额,卡本币十进制串。省略 = 保持原值;"0" = 不设限。USD:"500.00" |
daily |
string | 可选 | 单日限额。必须 ≥ single(两者都非 0 时)。 |
monthly |
string | 可选 | 单月限额。必须 ≥ daily(两者都非 0 时)。 |
响应
200我方已记下,正在异步下发上游
{
"id": "crd_9f2c1b7a-3d51-4a2e-9c08-6b1f0d4e77aa",
"accepted": true
}400
state_invalid 卡已注销/过期 · product_not_available 产品不可用
⚠ 超过产品上限、三层不自洽、不足一个货币单位、金额串非法,
目前都以 500 api_error 返回(内部有码,未登记进对外目录)。
这四种全是入参问题,重试不会变好。404
not_found 卡不存在或不在这个会员名下
调用样例
curl -X PATCH 'https://api.zise.com/v1/cards/{id}/limits' \
-H 'authorization: Bearer $TOKEN' \
-H 'x-zise-merchant: $MERCHANT_ID' \
-H 'x-on-behalf-of: $MEMBER_ID' \
-H 'content-type: application/json' \
-d '{
"single": "500.00",
"daily": "2000.00",
"monthly": "10000.00"
}'
const res = await fetch(
"https://api.zise.com/v1/cards/{id}/limits",
{
method: "PATCH",
headers: {
"authorization": "Bearer $TOKEN",
"x-zise-merchant": "MERCHANT_ID",
"x-on-behalf-of": "MEMBER_ID",
"content-type": "application/json"
},
body: JSON.stringify({
"single": "500.00",
"daily": "2000.00",
"monthly": "10000.00"
}),
},
);
// 金额一律按字符串读,不要 JSON.parse 成 number
const data = await res.json();
import requests
res = requests.patch(
"https://api.zise.com/v1/cards/{id}/limits",
headers={
"authorization": "Bearer $TOKEN",
"x-zise-merchant": "$MERCHANT_ID",
"x-on-behalf-of": "$MEMBER_ID",
"content-type": "application/json"
},
json={
"single": "500.00",
"daily": "2000.00",
"monthly": "10000.00"
},
)
# 金额用 Decimal(str(...)),不要 float
data = res.json()