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_id 与 flexible[].product_id
是产品 id、flexible[].id 是活期持仓 id。同一张定期订单在
GET /v1/earn/orders 里的 id 前缀是 ero_ —— 两处前缀不一致,
按端点认,不要跨端点比对字符串。
⚠ principal 是最小单位整数串,位数 = 该资产 ledger_scale
(这里不下发 scale,用产品清单里的那个)。
⚠ 这个端点不返回累计收益 —— 定期的已结利息在
GET /v1/earn/orders 的 settled_interest,活期的收益已经派进
会员的可用余额,看流水。
查询参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
limit |
integer | 可选 | 只作用于 data(定期)那一块。缺省 20,上限 100。 |
cursor |
string | 可选 | 只作用于 data(定期)那一块。 |
请求头
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
x-on-behalf-of |
string | 必填 | 看谁的持仓。 |
响应
200
data[].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"
}
]
}400
member_context_required · member_not_found403
insufficient_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()