GET
/v1/cards/{id}
卡详情(前六后四,永不含完整卡号)
Scope
cards:read
代会员调用 · 必带 x-on-behalf-of
⚠ balance 与 limits.* 是最小单位整数串,除以 10^card_scale
才是金额(见首页那一段)。
⚠ limits 里的 0 是「未自设」,不是「限额为零」。新卡三项恒为 0,
此时生效值落到产品级上限。把 0 当成「这张卡刷不了」会让你的界面
对每一张新卡都说错话。
status 认不出就原样回显。要点:freezing / unfreezing 是两个
过渡态(终点分别是 frozen 与 active),合并成一个正是那次
「解冻后报卡状态无效 + 充值失败」线上故障的成因;risk_frozen 是我方
风控冻的,商户与会员都解不了,别给用户一个点了必然失败的按钮。
路径参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
id |
string | 必填 | 卡 id。带不带 crd_ 前缀都收。 |
请求头
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
x-on-behalf-of |
string | 必填 | 代哪个会员调用 |
响应
200OK。
status 取值:pending · unactivated · active · freezing ·
unfreezing · frozen · suspended(运营暂停,由运营恢复)·
risk_frozen · lost · reissuing · expired · closing ·
closed · replaced(补卡后原卡的终态,与 closed 刻意分开)。{
"id": "crd_9f2c1b7a-3d51-4a2e-9c08-6b1f0d4e77aa",
"status": "active",
"form_factor": "virtual",
"currency": "USD",
"masked_pan": "524012******7890",
"bin": "5240",
"nickname": "日常订阅",
"balance": "25000000",
"card_scale": 6,
"expiry": "8/2029",
"cvv_blocked": false,
"limits": {
"single": "0",
"daily": "0",
"monthly": "0"
},
"created_at": "2026-08-01T02:11:43.000Z",
"updated_at": "2026-08-09T11:02:07.000Z"
}404
not_found 卡不存在,或不在这个会员/这个商户名下(两种同一响应)
调用样例
curl -X GET 'https://api.zise.com/v1/cards/{id}' \
-H 'authorization: Bearer $TOKEN' \
-H 'x-zise-merchant: $MERCHANT_ID' \
-H 'x-on-behalf-of: $MEMBER_ID'
const res = await fetch(
"https://api.zise.com/v1/cards/{id}",
{
method: "GET",
headers: {
"authorization": "Bearer $TOKEN",
"x-zise-merchant": "MERCHANT_ID",
"x-on-behalf-of": "MEMBER_ID"
},
},
);
// 金额一律按字符串读,不要 JSON.parse 成 number
const data = await res.json();
import requests
res = requests.get(
"https://api.zise.com/v1/cards/{id}",
headers={
"authorization": "Bearer $TOKEN",
"x-zise-merchant": "$MERCHANT_ID",
"x-on-behalf-of": "$MEMBER_ID"
},
)
# 金额用 Decimal(str(...)),不要 float
data = res.json()