GET
/v1/earn/products
理财产品(按 grant_scope + 授权表过滤)
Scope
earn:read
商户自身
只返回对你开放的产品:你自己的(且开放范围不是「暂不开放」)、
按名单授权给你的、或上级对整条子树开放的。草稿 / 已归档 / 已下架
的不出现。
⚠ 清单里出现 ≠ 可申购。这里只做可见性过滤,申购那一刻还会再判
一次(开放范围、开售时间、截止时间、总额度、单人额度、实名等级、
账户处置态)。所以「列表里有但申购被拒」是正常的,不是漂移。
⚠ 加产品 / 加期限档是后台加一行,我方不发版。别把产品清单硬编码
进你的界面。
apr_bps 是万分之一为单位的年化(350 = 3.50%)。
活期的这个数是「此刻的挂牌值」,会变;定期的会在下单那一刻快照进订单。
响应
200不分页。
status 是产品生命周期状态(active / paused /
scheduled / ended …),认不出的原样保留。{
"data": [
{
"id": "ern_3a91f0c2-5d17-4e88-b2a0-91c7d4e6b501",
"code": "FLEX-USDT-01",
"kind": "flexible",
"asset": "USDT",
"term_days": 0,
"apr_bps": 350,
"ledger_scale": 6,
"status": "active"
},
{
"id": "ern_7d2b48ae-19c3-4f60-8c55-0ab3e9f21744",
"code": "FIX-USDT-90",
"kind": "fixed",
"asset": "USDT",
"term_days": 90,
"apr_bps": 620,
"ledger_scale": 6,
"status": "active"
}
],
"next_cursor": null,
"has_more": false
}403
insufficient_scope —— 这把 Key 没有 earn:read
调用样例
curl -X GET 'https://api.zise.com/v1/earn/products' \
-H 'authorization: Bearer $TOKEN' \
-H 'x-zise-merchant: $MERCHANT_ID'
const res = await fetch(
"https://api.zise.com/v1/earn/products",
{
method: "GET",
headers: {
"authorization": "Bearer $TOKEN",
"x-zise-merchant": "MERCHANT_ID"
},
},
);
// 金额一律按字符串读,不要 JSON.parse 成 number
const data = await res.json();
import requests
res = requests.get(
"https://api.zise.com/v1/earn/products",
headers={
"authorization": "Bearer $TOKEN",
"x-zise-merchant": "$MERCHANT_ID"
},
)
# 金额用 Decimal(str(...)),不要 float
data = res.json()