GET
/v1/cards
卡列表(前六后四,永不含完整卡号)
Scope
cards:read
代会员调用 · 必带 x-on-behalf-of
某个会员名下的卡,按创建时间倒序。真游标分页 —— 别写死
has_more: false,头部持续插入的列表上那样会让你静默漏取。
⚠ 这里的 form_factor 是库里的原值(virtual_card /
physical_card),而 GET /v1/cards/{id} 回的是简写
(virtual / physical),开卡入参收的也是简写。同一个概念三处两套
写法,请按端点分别处理,别复用同一个解析分支。
查询参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
cursor |
string | 可选 | 上一页返回的 next_cursor。不透明串,不要自己拼 —— 解不开时按「从头开始」处理,不报错。 |
limit |
integer | 可选 | 每页条数。缺省 20,上限 100;非法值按缺省处理。 |
请求头
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
x-on-behalf-of |
string | 必填 | 代哪个会员调用。收你自己的 external_member_id,也收我方发的 mem_<uuid>。 |
响应
200OK
{
"data": [
{
"id": "crd_9f2c1b7a-3d51-4a2e-9c08-6b1f0d4e77aa",
"status": "active",
"form_factor": "virtual_card",
"currency": "USD",
"masked_pan": "524012******7890",
"created_at": "2026-08-01T02:11:43.000Z"
}
],
"next_cursor": "MjAyNi0wOC0wMVQwMjoxMTo0My4wMDBafDlmMmM",
"has_more": true
}400
member_context_required 少了 x-on-behalf-of404
member_not_found 会员不存在、不属于你、或已停用(三种同一响应)
调用样例
curl -X GET 'https://api.zise.com/v1/cards' \
-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",
{
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",
headers={
"authorization": "Bearer $TOKEN",
"x-zise-merchant": "$MERCHANT_ID",
"x-on-behalf-of": "$MEMBER_ID"
},
)
# 金额用 Decimal(str(...)),不要 float
data = res.json()