申请预付充值地址(按 币×网络 复用)
商户自身
需
x-idempotency-key
已经有地址的 (商户, 网络) 直接回既有那一个,不会给你第二个。
network 要的是机读码,大小写敏感。合法值以
GET /v1/assets 的 networks[].network 为准 —— 那是唯一权威清单。
⚠ BSC 那条的机读码是 BSC,不是 BEP20(BEP20 只出现在展示名
BNB Smart Chain (BEP20) 里)。本页此前把它写成 BEP20,照着传必被拒。
认不出的 币×网络 组合一律拒,不兜底挑一条 ——
自动挑等于把你的预付打到一条你没选的链上。
⚠ service_unavailable 不是失败,是「还没好」:上游正在建地址,
隔几秒按 retry_after 重来即可(它是 400 不是 503,别按 5xx 分支处理)。
把它当失败去换一条链重试,只会再建一个你不需要的地址。
链上到账后自动入账(金额来自托管方确认,我方没有一处手输数字),
到账结果看 GET /v1/merchant/balances。
前置条件
- 该「币 × 网络」在我方渠道表里存在且已启用
请求头
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
x-idempotency-key |
string | 必填 | UUID v4 |
请求体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
asset |
string | 必填 | 币种代码,大小写不敏感(服务端转大写) |
network |
string | 必填 | 网络短代码,大小写敏感、精确匹配(TRC20 而不是
TRON (TRC20),也不是 trc20)。 |
响应
201已分配(已存在时回既有那一个,同样是 201)
{
"asset": "USDT",
"network": "TRC20",
"address": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
"memo": ""
}400
invalid_request body 非 JSON / 缺 asset 或 network ·
asset_not_allowed 这个「币 × 网络」不存在或未启用 ·
service_unavailable 上游还在建地址,按 retry_after(秒)重试409
idempotency_key_reused · idempotency_in_progress请求
curl -X POST 'https://api.zise.com/v1/merchant/deposit-addresses' \
-H 'x-auth-token: Bearer $TOKEN' \
-H 'x-idempotency-key: $IDEMPOTENCY_KEY' \
-H 'content-type: application/json' \
-d '{
"asset": "USDT",
"network": "TRC20"
}'const res = await fetch("https://api.zise.com/v1/merchant/deposit-addresses", {
method: "POST",
headers: {
"x-auth-token": "Bearer $TOKEN",
"x-idempotency-key": "$IDEMPOTENCY_KEY",
"content-type": "application/json",
},
body: JSON.stringify({
"asset": "USDT",
"network": "TRC20"
}),
});
// 金额按字符串读,别让它变成 number
const data = await res.json();import requests
res = requests.post(
"https://api.zise.com/v1/merchant/deposit-addresses",
headers={
"x-auth-token": "Bearer $TOKEN",
"x-idempotency-key": "$IDEMPOTENCY_KEY",
"content-type": "application/json",
},
json={
"asset": "USDT",
"network": "TRC20"
},
)
# 金额用 Decimal(str(...)),不要 float
data = res.json()req, _ := http.NewRequest("POST", "https://api.zise.com/v1/merchant/deposit-addresses",
strings.NewReader(`{
"asset": "USDT",
"network": "TRC20"
}`))
req.Header.Set("x-auth-token", "Bearer $TOKEN")
req.Header.Set("x-idempotency-key", "$IDEMPOTENCY_KEY")
req.Header.Set("content-type", "application/json")
res, err := http.DefaultClient.Do(req)
// 金额字段用 string 接,不要 float64HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://api.zise.com/v1/merchant/deposit-addresses"))
.header("x-auth-token", "Bearer $TOKEN")
.header("x-idempotency-key", "$IDEMPOTENCY_KEY")
.header("content-type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("""
{
"asset": "USDT",
"network": "TRC20"
}
"""))
.build();
// 金额字段用 String / BigDecimal,不要 double$ch = curl_init('https://api.zise.com/v1/merchant/deposit-addresses');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'x-auth-token: Bearer $TOKEN',
'x-idempotency-key: $IDEMPOTENCY_KEY',
'content-type: application/json',
],
CURLOPT_POSTFIELDS => <<<'JSON'
{
"asset": "USDT",
"network": "TRC20"
}
JSON,
]);
$res = curl_exec($ch);
// 金额用 bcmath / 字符串,不要 floatval
201
{
"asset": "USDT",
"network": "TRC20",
"address": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
"memo": ""
}