HTX is going to support transaction rebate for qualified market makers in existing APIs

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.