Z Zise Developers

理财产品(按 grant_scope + 授权表过滤)

GET /v1/earn/products 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
}
403insufficient_scope —— 这把 Key 没有 earn:read
请求
curl -X GET 'https://api.zise.com/v1/earn/products' \
  -H 'x-auth-token: Bearer $TOKEN'
const res = await fetch("https://api.zise.com/v1/earn/products", {
  method: "GET",
  headers: {
    "x-auth-token": "Bearer $TOKEN",
  },
});
// 金额按字符串读,别让它变成 number
const data = await res.json();
import requests

res = requests.get(
    "https://api.zise.com/v1/earn/products",
    headers={
        "x-auth-token": "Bearer $TOKEN",
    },
)
# 金额用 Decimal(str(...)),不要 float
data = res.json()
req, _ := http.NewRequest("GET", "https://api.zise.com/v1/earn/products",
    nil)
req.Header.Set("x-auth-token", "Bearer $TOKEN")
res, err := http.DefaultClient.Do(req)
// 金额字段用 string 接,不要 float64
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://api.zise.com/v1/earn/products"))
    .header("x-auth-token", "Bearer $TOKEN")
    .method("GET", HttpRequest.BodyPublishers.noBody())
    .build();
// 金额字段用 String / BigDecimal,不要 double
$ch = curl_init('https://api.zise.com/v1/earn/products');
curl_setopt_array($ch, [
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    'x-auth-token: Bearer $TOKEN',
  ],
]);
$res = curl_exec($ch);
// 金额用 bcmath / 字符串,不要 floatval
200
{
  "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
}