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

Dear API users,

Huobi Global 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/

Huobi Global
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 NameData TypeDescription
codeintegerStatus code
messagestringError message (if any)
dataobject 
{ symbolstringTrading symbol
makerFeeRatestringBasic fee rate – passive side (positive value);If maker rebate applicable, revert maker rebate rate (negative value).
takerFeeRatestringBasic fee rate – aggressive side (positive value)
actualMakerRatestringDeducted 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 }stringDeducted 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

ParameterData TypeDescription
idintegerInternal id
symbolstringThe trading symbol to trade, e.g. btcusdt, bccbtc
order-idstringThe order id of this order
match-idstringThe match id of this match
trade-idintUnique trade ID (NEW)
pricestringThe limit price of limit order
created-atintThe timestamp in milliseconds when the match and fill is done
typestringThe 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-amountstringThe amount which has been filled
filled-feesstringTransaction fee (positive value). If maker rebate applicable, revert maker rebate value per trade (negative value).
sourcestringThe source where the order was triggered, possible values: sys, web, api, app
rolestringthe role in the transaction: taker or maker
filled-pointsstringdeduction amount (unit: in ht or hbpoint)
fee-deduct-currencystringdeduction 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

FieldData TypeDescription
idintegerInternal id
symbolstringThe trading symbol to trade, e.g. btcusdt, bccbtc
order-idstringThe order id of this order
match-idstringThe match id of this match
trade-idintUnique trade ID (NEW)
pricestringThe limit price of limit order
created-atintThe timestamp in milliseconds when the match and fill is done
typestringThe 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-amountstringThe amount which has been filled
filled-feesstringTransaction fee (positive value). If maker rebate applicable, revert maker rebate value per trade (negative value).
sourcestringThe source where the order was triggered, possible values: sys, web, api, app
rolestringThe role in the transaction: taker or maker.
filled-pointsstringdeduction amount (unit: in ht or hbpoint)
fee-deduct-currencystringdeduction 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

FieldData TypeDescription
symbolstringTrading symbol
orderIdlongOrder ID
tradePricestringTrade price
tradeVolumestringTrade volume
orderSidestringOrder side, valid value: buy,sell
orderTypestringOrder 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
aggressorboolAggressor or not, valid value: true, false
tradeIdlongTrade ID
tradeTimelongTrade time, unix time in millisecond
transactFeestringTransaction fee (positive value). If maker rebate applicable, revert maker rebate value per trade (negative value).
feeDeductstringTransaction fee deduction
feeDeductTypestringTransaction 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

FieldData TypeDescriptionValue Range
statusstringStatus code 
dataobject  
{ account-idlongAccount ID 
currencystringCurrency 
transact-amtstringAmount change (positive value if income, negative value if outcome) 
transact-typestringAmount change types (possible value: trade,etf, transact-fee, deduction, transfer, credit, liquidation, interest, deposit, withdraw, withdraw-fee, exchange, other-types, rebate) 
avail-balancestringAvailable balance 
acct-balancestringAccount balance 
transact-timelongTransaction time (database time) 
record-id }stringUnique 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

FieldData TypeDescription
eventstringThe 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-idintegerThe account id of this individual balance
currencystringThe crypto currency of this balance
typestringThe type of this account, including trade, loan, interest
balancestringThe 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

FieldData TypeDescription
currencystringCurrency
accountIdlongAccount ID
balancestringAccount balance (only exists when account balance changed)
availablestringAvailable balance (only exists when available balance changed)
changeTypestringChange type, valid value: order-place,order-match,order-refund,order-cancel,order-fee-refund,margin-transfer,margin-loan,margin-interest,margin-repay,other
accountTypestringaccount type, valid value: trade, frozen, loan, interest
changeTimelongChange 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 Huobi API Docs on the effective date.