Z Zise Developers
GET /v1/earn/positions

持仓与累计收益

Scope earn:read 代会员调用 · 必带 x-on-behalf-of

⚠ 续期枚举是 principal_interest不是 both

申购接口对认不出的值是静默回落到产品默认 —— 传错了不会报错,

成交的是别的档。(开放 API 上我方把这一档改成了当场拒,见

POST /v1/earn/subscriptions;但会员端仍是静默回落,所以你在两处

看到的行为不同。)

信封分两块,理由不同

  • data定期订单,真游标分页(一单一行,可能很多);
  • flexible活期余额包,一产品一行、行数是产品数量级,不分页。

⚠ 两块的 id 前缀都是 ern_,但它们指的是三种不同的东西

data[].id 是定期订单 id、data[].product_idflexible[].product_id

是产品 id、flexible[].id 是活期持仓 id。同一张定期订单在

GET /v1/earn/orders 里的 id 前缀是 ero_ —— 两处前缀不一致,

按端点认,不要跨端点比对字符串

principal最小单位整数串,位数 = 该资产 ledger_scale

(这里不下发 scale,用产品清单里的那个)。

⚠ 这个端点不返回累计收益 —— 定期的已结利息在

GET /v1/earn/orderssettled_interest,活期的收益已经派进

会员的可用余额,看流水。

查询参数

字段类型必填说明
limit integer 可选 只作用于 data(定期)那一块。缺省 20,上限 100。
cursor string 可选 只作用于 data(定期)那一块。
字段类型必填说明
x-on-behalf-of string 必填 看谁的持仓。

响应

200data[].status 取值:pending_start / starting / accruing / pending_settle / settling / settled / closed认不出的原样露出,绝不 default 成「处理中」 —— 这条纪律在我方客户端上当场抓出过 pending_value 这个拼写错。
{
  "data": [
    {
      "id": "ern_c41d7f92-8a03-4bb6-9e10-5f2c8d3a7061",
      "product_id": "ern_7d2b48ae-19c3-4f60-8c55-0ab3e9f21744",
      "asset": "USDT",
      "principal": "10000000000",
      "status": "accruing",
      "maturity_date": "2026-11-10",
      "kind": "fixed"
    }
  ],
  "next_cursor": null,
  "has_more": false,
  "flexible": [
    {
      "id": "ern_9b6e2a11-3c74-4d05-8f39-71ba0c5d4e28",
      "product_id": "ern_3a91f0c2-5d17-4e88-b2a0-91c7d4e6b501",
      "asset": "USDT",
      "principal": "2500000000",
      "kind": "flexible"
    }
  ]
}
400member_context_required · member_not_found
403insufficient_scope
调用样例
curl -X GET 'https://api.zise.com/v1/earn/positions' \
  -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/earn/positions",
  {
    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/earn/positions",
    headers={
        "authorization": "Bearer $TOKEN",
        "x-zise-merchant": "$MERCHANT_ID",
        "x-on-behalf-of": "$MEMBER_ID"
    },
)
# 金额用 Decimal(str(...)),不要 float
data = res.json()