OKX WebSocket Orders Channel Push Behavior Adjustment Announcement
To help clients more clearly determine the final status of "post-only" new orders (including "mmp_and_post_only") and upcoming "rpi" new orders — and to avoid scenarios where an order is still canceled after the client has already received a "state: live" event — OKX plans to adjust the "state: live" event behavior for "post-only" and "rpi" orders in the order channel.
Impact details
Timing adjustment for the "state: live" event push: instead of being pushed immediately upon order receipt, it will now be pushed only after the order has successfully entered the order book (a delay of approximately 1 ms).
In failed order placement scenarios (price crosses the BBO and is canceled), the "state: live" update will be removed entirely — only a "state: canceled" update will be pushed.
Scenario | Before | After |
"post-only" order placement failure (price crosses the BBO and is canceled) | "state: live" → "state: canceled" | Only "state: canceled" (no "state: live") |
"post-only" order placed successfully | "state: live" pushed immediately | "state: live" (delayed ~1 ms) |
"post-only" order placed successfully, then filled by one taker order | "state: live" → "state: filled" | "state: live" (delayed ~1 ms) → "state: filled" |
"post-only" order placed successfully, then filled by multiple partial fills | "state: live" → "state: partially_filled" → "state: filled" | "state: live" (delayed ~1 ms) → "state: partially_filled" → "state: filled" |
"post-only" order with "reduceOnly: true", size modified | "state: live" → "state: live" ("amendSource: 4, amendResult: 0") | "state: live" ("amendSource: 4, amendResult: 0") → "state: live" |
For the upcoming "rpi" order, "rpiPxRound: false", order placement failure (canceled due to not meeting the price spacing rule) | N/A | Only "state: canceled" (no "state: live") |
For the upcoming "rpi" order, "rpiPxRound: true", and price is modified | N/A | "state: live" ("amendSource: 6, amendResult: 0") → "state: live" |
Effective date
For "rpi" orders: Demo Trading — 21 July; Live Trading — 28 July.
For "post_only" and "mmp_and_post_only" orders: both Demo Trading and Live Trading — mid-August.
Scope of impact
The order types affected are: "post_only", "mmp_and_post_only", and "rpi" (Retail Price Improvement).
Other order types — such as "limit" (regular limit orders), "market" (market orders), "ioc", and "fok" — will have their push behavior remain unchanged.