Z Zise Developers
POST /v1/exchange/quotes

兑换报价(只读,不建单、不锁钱)

Scope exchange:write 代会员调用 · 必带 x-on-behalf-of

报价不是授权:成交那一刻会再跑一遍全部闸(账户处置、方向停用、

限额)。报价接口那一次只是为了早点给反馈。

quote_ttl_sec 之外成交会被拒 —— 我方不会按新价替你成交,

那等于替你做了一次你没同意的定价。

⚠ 这个端点不返回 quote_id,成交时也没有「引用某份报价」的入参:

POST /v1/exchange/orders 会在成交那一刻重新报一次价。所以报价的

用途只有一个 —— 给你的界面显示一个数,别把它当成锁价凭据。

⚠ 入参是 from_amount 不是 amount(成交端点同)。传错的表现是

金额解析不出来 → invalid_request

⚠ 报价不需要幂等键(它不建任何东西)。

前置条件

  • 该方向已启用(按方向配,USDT→USDUSD→USDT 互不影响)
  • 会员未被冻结 / 销户,且满足该方向的最低实名等级
字段类型必填说明
x-on-behalf-of string 必填 代哪个会员报价。报价按该会员的商户配置取费率与限额。

请求体

字段类型必填说明
from_asset string 必填 源资产代码,如 USDT大小写不敏感(服务端转大写)。
to_asset string 必填 目标资产代码,如 USD。与 from_asset 相同会被拒。
from_amount string 必填 源资产扣减数量。字符串定点,位数 = from_assetledger_scale。小数位超出且尾数非零一律拒,不四舍五入。USDT 是 6 位,形如 500.000000

响应

200报价成功。fee_asset 可能是 from 侧也可能是 to 侧 (由该方向的配置决定),所以它单独带一个资产代码, 别假定它等于其中任何一个。
{
  "from_asset": "USDT",
  "to_asset": "USD",
  "from_amount": "500.000000",
  "to_amount": "498.750000",
  "rate": "1.0000",
  "fee_amount": "1.250000",
  "fee_asset": "USD",
  "quote_ttl_sec": 90,
  "ledger_scale_from": 6,
  "ledger_scale_to": 6
}
400已登记的对外码:invalid_request 请求体不合法 / 金额格式不对 / 缺资产代码 · request_rejected 该会员被冻结、销户或命中风控 · service_unavailable 这条线此刻不可用 · member_context_required · member_not_found还落在 500 api_error 的业务拒绝(见 info 里那一节): 方向未启用 / 资产已下架 · from 与 to 相同 · 低于起兑额 · 高于单笔上限 · 超日累计额或日笔数 · 实名等级不足 · 汇率暂不可用 · 手续费吃光了本金。收到 500 时不要无限重试。
403insufficient_scope —— 这把 Key 没有 exchange:write
调用样例
curl -X POST 'https://api.zise.com/v1/exchange/quotes' \
  -H 'authorization: Bearer $TOKEN' \
  -H 'x-zise-merchant: $MERCHANT_ID' \
  -H 'x-on-behalf-of: $MEMBER_ID' \
  -H 'content-type: application/json' \
  -d '{
    "from_asset": "USDT",
    "to_asset": "USD",
    "from_amount": "500.000000"
  }'
const res = await fetch(
  "https://api.zise.com/v1/exchange/quotes",
  {
    method: "POST",
    headers: {
      "authorization": "Bearer $TOKEN",
      "x-zise-merchant": "MERCHANT_ID",
      "x-on-behalf-of": "MEMBER_ID",
      "content-type": "application/json"
    },
    body: JSON.stringify({
      "from_asset": "USDT",
      "to_asset": "USD",
      "from_amount": "500.000000"
    }),
  },
);
// 金额一律按字符串读,不要 JSON.parse 成 number
const data = await res.json();
import requests

res = requests.post(
    "https://api.zise.com/v1/exchange/quotes",
    headers={
        "authorization": "Bearer $TOKEN",
        "x-zise-merchant": "$MERCHANT_ID",
        "x-on-behalf-of": "$MEMBER_ID",
        "content-type": "application/json"
    },
    json={
        "from_asset": "USDT",
        "to_asset": "USD",
        "from_amount": "500.000000"
    },
)
# 金额用 Decimal(str(...)),不要 float
data = res.json()