HTX is going to support transaction rebate for qualified market makers in existing APIs
- API Announcements
Dear API users,
HTX is going to support transaction rebate for qualified market makers in existing APIs –
1) RESTful Endpoint – GET /v2/reference/transact-fee-rate
Response fields ‘makerFeeRate’ & ‘actualMakerRate’ would revert maker rebate rate if applicable.
2) RESTful Endpoint – GET /v1/order/orders/{order-id}/matchresults
Response field ‘filled-fees’ would revert maker rebate if applicable.
3) RESTful Endpoint – GET /v1/order/matchresults
Response field ‘filled-fees’ would revert maker rebate if applicable.
4) Websocket Subscription Topic – trade.clearing#${symbol}
Update field ‘transactFee’ would revert maker rebate per trade if applicable.
5) RESTful Endpoint – GET /v1/account/history
Request field ‘transact-types’ & response field ‘transact-type’ would accept/revert ‘rebate’ type.
6) Websocket Subscription Topic – accounts
If applicable, maker rebate for multiple trades would be updated with field ‘event’ marked as ‘other’.
7) Websocket Subscription Topic – accounts.update#${mode}
If applicable, maker rebate for multiple trades would be updated with field ‘changeType’ marked as ‘other’.
Note:
- Existing Websocket subscription topic – orders.$symbol, will NOT support maker rebate updates. In case of maker rebate taking place, field ‘filled-fees’ should revert zero.
- Existing REST endpoint – GET /v1/order/orders/{order-id}, will NOT support maker rebate updates.
- Existing REST endpoint – GET /v1/order/orders/getClientOrder, will NOT support maker rebate updates.
- Existing REST endpoint – GET /v1/order/orders, will NOT support maker rebate updates.
- Existing REST endpoint – GET /v1/order/history, will NOT support maker rebate updates.
Effective Date: June 1, 2020 (GMT+8)
All the changes will be updated on https://huobiapi.github.io/docs/spot/v1/en/
HTX
May 27, 2020
1) RESTful Endpoint – GET /v2/reference/transact-fee-rate
Response fields ‘makerFeeRate’ & ‘actualMakerRate’ would revert maker rebate rate if applicable.
Response Content
Field Name | Data Type | Description |
code | integer | Status code |
message | string | Error message (if any) |
data | object | |
{ symbol | string | Trading symbol |
makerFeeRate | string | Basic fee rate – passive side (positive value);If maker rebate applicable, revert maker rebate rate (negative value). |
takerFeeRate | string | Basic fee rate – aggressive side (positive value) |
actualMakerRate | string | Deducted fee rate – passive side (positive value). If deduction is inapplicable or disabled, return basic fee rate.If maker rebate applicable, revert maker rebate rate (negative value). |
actualTakerRate } | string | Deducted fee rate – aggressive side (positive value). If deduction is inapplicable or disabled, return basic fee rate. |
2) RESTful Endpoint – GET /v1/order/orders/{order-id}/matchresults
Response field ‘filled-fees’ would revert maker rebate if applicable.
Response Content
Parameter | Data Type | Description |
id | integer | Internal id |
symbol | string | The trading symbol to trade, e.g. btcusdt, bccbtc |
order-id | string | The order id of this order |
match-id | string | The match id of this match |
trade-id | int | Unique trade ID (NEW) |
price | string | The limit price of limit order |
created-at | int | The timestamp in milliseconds when the match and fill is done |
type | string | The order type, possible values are: buy-market, sell-market, buy-limit, sell-limit, buy-ioc, sell-ioc, buy-limit-maker, sell-limit-maker, buy-stop-limit, sell-stop-limit, buy-limit-fok, sell-limit-fok, buy-stop-limit-fok, sell-stop-limit-fok |
filled-amount | string | The amount which has been filled |
filled-fees | string | Transaction fee (positive value). If maker rebate applicable, revert maker rebate value per trade (negative value). |
source | string | The source where the order was triggered, possible values: sys, web, api, app |
role | string | the role in the transaction: taker or maker |
filled-points | string | deduction amount (unit: in ht or hbpoint) |
fee-deduct-currency | string | deduction type. if blank, the transaction fee is based on original currency; if showing value as "ht", the transaction fee is deducted by HT; if showing value as "hbpoint", the transaction fee is deducted by HB point. |
Notes:
- The calculated maker rebate value inside ‘filled-fees’ would not be paid immediately.
- Maker rebate inside ‘filled-fees’ for buy orders is calculated upon quote currency. Maker rebate inside ‘filled-fees’ for sell orders is calculated upon base currency.
3) RESTful Endpoint – GET /v1/order/matchresults
Response field ‘filled-fees’ would revert maker rebate if applicable.
Response Content
Field | Data Type | Description |
id | integer | Internal id |
symbol | string | The trading symbol to trade, e.g. btcusdt, bccbtc |
order-id | string | The order id of this order |
match-id | string | The match id of this match |
trade-id | int | Unique trade ID (NEW) |
price | string | The limit price of limit order |
created-at | int | The timestamp in milliseconds when the match and fill is done |
type | string | The order type, possible values are: buy-market, sell-market, buy-limit, sell-limit, buy-ioc, sell-ioc, buy-limit-maker, sell-limit-maker, buy-stop-limit, sell-stop-limit, buy-limit-fok, sell-limit-fok, buy-stop-limit-fok, sell-stop-limit-fok |
filled-amount | string | The amount which has been filled |
filled-fees | string | Transaction fee (positive value). If maker rebate applicable, revert maker rebate value per trade (negative value). |
source | string | The source where the order was triggered, possible values: sys, web, api, app |
role | string | The role in the transaction: taker or maker. |
filled-points | string | deduction amount (unit: in ht or hbpoint) |
fee-deduct-currency | string | deduction type: ht or hbpoint. |
Notes:
- The calculated maker rebate value inside ‘filled-fees’ would not be paid immediately.
- Maker rebate inside ‘filled-fees’ for buy orders is calculated upon quote currency. Maker rebate inside ‘filled-fees’ for sell orders is calculated upon base currency.
4) Websocket Subscription Topic – trade.clearing#${symbol}
Update field ‘transactFee’ would revert maker rebate per trade if applicable.
Update Contents
Field | Data Type | Description |
symbol | string | Trading symbol |
orderId | long | Order ID |
tradePrice | string | Trade price |
tradeVolume | string | Trade volume |
orderSide | string | Order side, valid value: buy,sell |
orderType | string | Order type, valid value: buy-market, sell-market,buy-limit,sell-limit,buy-ioc,sell-ioc,buy-limit-maker,sell-limit-maker,buy-stop-limit,sell-stop-limit, buy-limit-fok, sell-limit-fok, buy-stop-limit-fok, sell-stop-limit-fok |
aggressor | bool | Aggressor or not, valid value: true, false |
tradeId | long | Trade ID |
tradeTime | long | Trade time, unix time in millisecond |
transactFee | string | Transaction fee (positive value). If maker rebate applicable, revert maker rebate value per trade (negative value). |
feeDeduct | string | Transaction fee deduction |
feeDeductType | string | Transaction fee deduction type, valid value: ht,point |
Notes:
- The calculated maker rebate value inside ‘transactFee’ would not be paid immediately.
- Maker rebate inside ‘transactFee’ for buy orders is calculated upon quote currency. Maker rebate inside ‘transactFee’ for sell orders is calculated upon base currency.
5) RESTful Endpoint – GET /v1/account/history
Request field ‘transact-types’ & response field ‘transact-type’ would accept/revert ‘rebate’ type.
Response Content
Field | Data Type | Description | Value Range |
status | string | Status code | |
data | object | ||
{ account-id | long | Account ID | |
currency | string | Currency | |
transact-amt | string | Amount change (positive value if income, negative value if outcome) | |
transact-type | string | Amount change types (possible value: trade,etf, transact-fee, deduction, transfer, credit, liquidation, interest, deposit, withdraw, withdraw-fee, exchange, other-types, rebate) | |
avail-balance | string | Available balance | |
acct-balance | string | Account balance | |
transact-time | long | Transaction time (database time) | |
record-id } | string | Unique record ID in the database |
Notes:
- If received ‘transaction-amt’ with ‘transact-type’ as ‘rebate’, it implicates a paid maker rebate.
- A paid maker rebate could possibly include rebate from multiple trades.
6) Websocket Subscription Topic – accounts
If applicable, maker rebate for multiple trades would be updated with field ‘event’ marked as ‘other’.
Update Content
Field | Data Type | Description |
event | string | The event type which triggers account balance update (possible value: order.place, order.match, order.refund, order.cancel, order.fee-refund, margin.transfer, margin.loan, margin.interest, margin.repay, other) |
account-id | integer | The account id of this individual balance |
currency | string | The crypto currency of this balance |
type | string | The type of this account, including trade, loan, interest |
balance | string | The balance of this account, include frozen balance if "model" was set to 1 in subscription |
Note:
- A maker rebate would be paid in batch mode for multiple trades.
7) Websocket Subscription Topic – accounts.update#${mode}
If applicable, maker rebate for multiple trades would be updated with field ‘changeType’ marked as ‘other’.
Update Contents
Field | Data Type | Description |
currency | string | Currency |
accountId | long | Account ID |
balance | string | Account balance (only exists when account balance changed) |
available | string | Available balance (only exists when available balance changed) |
changeType | string | Change type, valid value: order-place,order-match,order-refund,order-cancel,order-fee-refund,margin-transfer,margin-loan,margin-interest,margin-repay,other |
accountType | string | account type, valid value: trade, frozen, loan, interest |
changeTime | long | Change time, unix time in millisecond |
Note:
- A maker rebate would be paid in batch mode for multiple trades.
What are the Impacts on You, and What You Need to Do?
API users should evaluate the business impact caused by the new endpoint introduced, further to make relevant change in client’s application, if needed.
All the changes will be updated on HTX API Docs on the effective date.