资产白名单、精度,以及每条链的机读网络码
商户自身
接入时先拉这一张表并缓存:后面每一个金额字段的定标位数都来自
这里的 ledger_scale。加资产是后台加一行、不发版,所以别把清单
写死在代码里。
没配过白名单的商户看到的是全部已启用资产 —— 白名单是收紧手段,
不是开通手段,「一行都没有」等于不限制。
⚠ 顶层键是 assets 而不是 data(历史遗留),这一个端点没有分页信封。
ledger_scale 上架后不可改,可以长期缓存;display_scale 只用来
截显示位,永远不要拿它解析金额。
networks[] —— 别把展示名当参数传
POST /v1/withdraw-addresses 与 POST /v1/merchant/deposit-addresses
的 network 收的是机读码(BSC),大小写敏感,认不出直接
asset_not_allowed。这张表是它的唯一权威清单。
| 字段 | 是什么 | 能不能当参数传 |
|---|---|---|
network | 机读码,如 BSC | ✅ 这个 |
network_name | 展示名,如 BNB Smart Chain (BEP20) | ❌ 传了必被拒 |
⚠ 不可用的网络照样列出,带 deposit_enabled / withdraw_enabled
与各自的 *_unavailable_reason。整个不列会让你以为是自己传错了参数。
提现侧的 min_withdraw / max_withdraw / withdraw_fee_* /
withdraw_cooling_hours 就是我方向终端用户收的口径,可以直接拿去
算「到账多少」—— 你自己另定一个数扣,会与我方账本永远对不上。
响应
200OK
{
"assets": [
{
"code": "USDT",
"name": "Tether USD",
"ledger_scale": 6,
"display_scale": 2,
"networks": [
{
"network": "BSC",
"network_name": "BNB Smart Chain (BEP20)",
"deposit_enabled": true,
"deposit_unavailable_reason": "",
"min_deposit": "1",
"confirmations_required": 15,
"memo_required": false,
"deposit_eta_minutes": 5,
"withdraw_enabled": true,
"withdraw_unavailable_reason": "",
"min_withdraw": "10.000000",
"max_withdraw": "5000.000000",
"withdraw_fee_mode": "fixed",
"withdraw_fee_fixed": "1.000000",
"withdraw_fee_bps": 0,
"withdraw_cooling_hours": 24,
"withdraw_eta_minutes": 30,
"withdraw_require_kyc_level": 1
},
{
"network": "TRC20",
"network_name": "TRON (TRC20)",
"deposit_enabled": true,
"deposit_unavailable_reason": "",
"min_deposit": "1",
"confirmations_required": 19,
"memo_required": false,
"deposit_eta_minutes": 3,
"withdraw_enabled": false,
"withdraw_unavailable_reason": "not_open"
}
]
},
{
"code": "USD",
"name": "美元",
"ledger_scale": 6,
"display_scale": 2,
"networks": []
}
]
}403
insufficient_scope 缺 merchant:read请求
curl -X GET 'https://api.zise.com/v1/assets' \
-H 'x-auth-token: Bearer $TOKEN'const res = await fetch("https://api.zise.com/v1/assets", {
method: "GET",
headers: {
"x-auth-token": "Bearer $TOKEN",
},
});
// 金额按字符串读,别让它变成 number
const data = await res.json();import requests
res = requests.get(
"https://api.zise.com/v1/assets",
headers={
"x-auth-token": "Bearer $TOKEN",
},
)
# 金额用 Decimal(str(...)),不要 float
data = res.json()req, _ := http.NewRequest("GET", "https://api.zise.com/v1/assets",
nil)
req.Header.Set("x-auth-token", "Bearer $TOKEN")
res, err := http.DefaultClient.Do(req)
// 金额字段用 string 接,不要 float64HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://api.zise.com/v1/assets"))
.header("x-auth-token", "Bearer $TOKEN")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
// 金额字段用 String / BigDecimal,不要 double$ch = curl_init('https://api.zise.com/v1/assets');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'x-auth-token: Bearer $TOKEN',
],
]);
$res = curl_exec($ch);
// 金额用 bcmath / 字符串,不要 floatval
200
{
"assets": [
{
"code": "USDT",
"name": "Tether USD",
"ledger_scale": 6,
"display_scale": 2,
"networks": [
{
"network": "BSC",
"network_name": "BNB Smart Chain (BEP20)",
"deposit_enabled": true,
"deposit_unavailable_reason": "",
"min_deposit": "1",
"confirmations_required": 15,
"memo_required": false,
"deposit_eta_minutes": 5,
"withdraw_enabled": true,
"withdraw_unavailable_reason": "",
"min_withdraw": "10.000000",
"max_withdraw": "5000.000000",
"withdraw_fee_mode": "fixed",
"withdraw_fee_fixed": "1.000000",
"withdraw_fee_bps": 0,
"withdraw_cooling_hours": 24,
"withdraw_eta_minutes": 30,
"withdraw_require_kyc_level": 1
},
{
"network": "TRC20",
"network_name": "TRON (TRC20)",
"deposit_enabled": true,
"deposit_unavailable_reason": "",
"min_deposit": "1",
"confirmations_required": 19,
"memo_required": false,
"deposit_eta_minutes": 3,
"withdraw_enabled": false,
"withdraw_unavailable_reason": "not_open"
}
]
},
{
"code": "USD",
"name": "美元",
"ledger_scale": 6,
"display_scale": 2,
"networks": []
}
]
}