What is Retail Price Improvement (RPI) order and how to use it

What is RPI order?

Retail Price Improvement (RPI) order - a specialized order type that can be placed only by Designated Market Makers inside the current spread. 

What is RPI order for?

RPI order is designed to enhance liquidity and provide improved pricing for retail traders by interacting exclusively with manually placed (non-algorithmic) orders submitted via the Web, Mobile App or TradingView interface.

How to place the RPI order?

Retail Price Improvement (RPI) orders can be placed through Trade API V4.

If you are approved for opening RPI orders, limit and collateral limit orders (not all order types) are created as RPI orders by default, unless you add the parameter {rpi:false} to the order creation request.

The same rules apply to Bulk limit orders and Collateral bulk limit orders.

You may explicitly submit requests with {rpi:true}, but this is not mandatory.

Please note that only approved Market Makers are allowed to place RPI orders and RPI order is not available for regular users.

What are RPI orders rules?

The mechanism for using these orders is determined by a list of following rules:

  • RPI orders can only be Limit or Collateral Limit orders. More about the orders you can find in our article.
  • RPI orders are Post-only by default. Read about the Post-only order in our article.
  • RPI orders cannot be combined with any conditional parameters (e.g. Stop-loss, Take Profit).
  • Orders can be modified or canceled, partial fulfillment is allowed. 
  • RPI orders do not appear in the API order book.
  • RPI orders are available on all markets listed on the exchange. 
  • Crossed RPI orders are visible in the order book (front and
  • RPI orders have a lower priority at the same price level as non-RPI orders irrespective of time. Old RPI orders in the order book will be automatically canceled if a new non-RPI order is placed in the order book at the same price level or above (for sell), below (for buy).

What are the execution rules for RPI order?

RPI orders can only be executed (taken) by retail users submitting orders via the Web, Mobile App or TradingView interface. 

RPI Order Execution Logic

Scenario #1. RPI Sell vs. Retail Buy at the same price

  • RPI Sell order with a price 85,000 USDT
  • Retail Buy order with a price 85,000 USDT

Result: A normal match occurs — an RPI Sell is taken by a Retail Buy.
 

Scenario #2. Regular taker execution doesn't remove opposing RPI order

Example:

  • Order book contains an RPI Sell order with a price 85,000 USDT
  • Order book also contains a regular Sell order with a price 86,000 USDT, amount 1
  • A regular taker Buy order appears with a price 86,000 USDT, amount 1

Result: The RPI Sell order remains in the order book. The regular orders match with each other.

RPI Cancelation Cases

Let's consider the cases in which RPI orders can be canceled.

Case #1. 

RPI Sell order is cancelled when an opposing non-retail maker order narrows the spread. 

  • Place an RPI spot/margin Sell order at 10,000 USDT. 
  • Place a non-retail Buy spot/margin maker limit order at 10,000 USDT or higher. 

Result

The initial RPI Sell order is canceled with status ‘CANCELED_RPI’, because the opposing non-retail maker limit order narrows the spread. 

Case #2. 

RPI Buy order is cancelled when an opposing non-retail maker order narrows the spread. 

  • Place an RPI spot/margin Buy order at 10,000 USDT. 
  • Place a non-retail Sell spot/margin maker limit order at 10,000 USDT or lower. 

Result

The initial RPI Buy order is canceled with status ‘CANCELED_RPI’, due to spread improvement by the opposing non-retail limit maker order. 

FAQ

  • Are RPI orders visible in the market depth data?
    RPI orders are visible on the UI market depth data, but not visible via API.

 

  • Is there any indication of RPI vs non-RPI orders?
    RPI orders are visually not differentiated from usual orders. It is impossible to indicate RPI order in the order book.
     
  • Will trades that result from RPI orders be visible in the market trades data?
    Yes, this info is reachable via the Market trades method.
    Update event example: 
{
    "id": null,
    "method": "trades_update",
    "params": [
        "ETH_BTC",                         // market
         [                                 // response same as 'market_request'
             {
                 "id": 41358530,           // trade id
                 "time": 1580905394.70332, // time in milliseconds
                 "price": "0.020857",      // trade price
                 "amount": "5.511",        // trade amount
                 "type": "sell",           // type of trade (buy/sell)
                 "rpi": true               // Indicates whether the trade involved a Retail Price Improvement (RPI) order
             }
         ]
    ]
}

 

  • Can anyone post RPI orders? If not, please explain who is eligible to do so.
    Only designated market makers are allowed to post RPI orders. You can apply to participate in the RPI program. To use the RPI functionality, you should create a separate subaccount, for which we will enable the RPI functionality and set custom fees or rebates (partial refund of the trading fee paid by the exchange to the trader). 
     
  • Are there any changes to fees or rebates for RPI orders?
    The fee or rebate is set individually for each market maker.
     
  • How would we submit an RPI order? Is there a new flag in the API?
    RPI orders can be placed through Trade API V4. In case you are approved for opening RPI orders, the limit and collateral limit (not all orders) created will be considered as RPI orders by default, unless you add parameter {rpi:false} to the order creation request. The same rules apply for Bulk limit order and Collateral bulk limit order
    You can submit requests with rpi:true, but it is not mandatory, by default on your account limit and collateral limit orders are created as RPI. 
    Request example: 
{
  "market": "BTC_USDT",
  "side": "buy",
  "amount": "0.01",
  "price": "40000",
  "postOnly": false,
  "ioc": false,
  "clientOrderId": "order1987111",
  "rpi": false,
  "request": "{{request}}",
  "nonce": "{{nonce}}"
}

 

  • Are all symbols/coins eligible for RPI orders?
    Yes, all markets support RPI orders.
     
  • Do RPI orders follow the same price/time priority model?
    RPI orders have a lower priority at the same price level as non-RPI orders irrespective of time. Old RPI orders in the order book will be automatically canceled if a new non-RPI order is placed in the order book at the same price level or above (for sell), below (for buy).

Support

In case of any questions related to the functionality of our exchange, you can:

  • Leave a request on our website;
  • Write to the support email: support@whitebit.com;
  • Write to the chat using the button in the lower right corner of the screen (in the upper right corner of the WhiteBIT app, click ).

Was this article helpful?

0 out of 0 found this helpful

Have more questions? Submit a request