Zerodha rejected order order book Kite order status notification pre-trade validation

Why a rejected order does not appear in the order book on Zerodha

From WebNotes, a public knowledge base. Last updated . Reading time ~10 min.

A rejected order is absent from the Kite order book because Zerodha added a pre-trade validation layer that rejects a non-qualifying order before it is sent to the exchange, and an order that never reached the exchange has no row in the order book; its rejection reason instead appears in the order status notification on Kite. This is the documented behaviour for orders blocked by Zerodha’s own checks, and it is why a trader who rejected an order seconds ago cannot find it under the Orders tab.

Two separate mechanisms produce a “missing” order, and confusing them sends traders looking in the wrong place. The first is a pre-trade rejection by Zerodha’s risk system: the order is killed inside Zerodha before it ever travels to the National Stock Exchange or the Bombay Stock Exchange , so it cannot appear in an order book that lists only orders the exchange acknowledged. The second is a day order that did execute or sit in the book during the session, then left the live book at the close because all open day orders are cancelled at end of day. This article separates the two, shows exactly where Kite records the rejection reason, and points to the order log and Console reports that hold the history once the live book has cleared.

Conflict-of-interest disclosure. This guide is published by the WebNotes Editorial Team for informational purposes and is written independently. WebNotes operates a Zerodha account-opening referral programme, disclosed on the pages that carry the referral link; this guide does not carry it and earns no referral commission from the procedure described here.

What the order book actually lists

The order book on Kite, the Orders tab, lists orders that Zerodha forwarded to the exchange and for which the exchange returned a status: open, complete, cancelled, or rejected by the exchange. It is a live record of the current trading session. An order that the exchange acknowledged and then rejected does appear here, with status Rejected and an exchange-supplied reason that you read by tapping the row.

What the order book does not list is an order Zerodha stopped before sending. Zerodha states the position plainly: “You cannot find such orders in the order book as Zerodha rejects them before they are sent to the exchanges.” There is no exchange acknowledgement number for such an order, so there is nothing for the order book to display. The order existed for a fraction of a second inside Zerodha’s risk system and was discarded there.

This is the single most common reason a trader reports a “disappeared” order. The order did not disappear; it was never placed on the exchange in the first place, and the only surface that recorded it is the notification Kite raised at the moment of rejection.

Pre-trade rejections: blocked before the exchange

Zerodha runs an extra validation layer that rejects non-qualifying orders to speed up processing and to stop orders that the exchange would reject anyway. An order that fails any of these checks is blocked inside Zerodha and is never sent onward. The documented checks include the following, in Zerodha’s own wording.

  • Freeze quantity. Zerodha “validates F&O orders higher than the freeze quantity.” The exchange sets a per-order freeze quantity for each derivative; an order above it is rejected pre-trade rather than sliced. See how to fix a freeze-quantity rejection .
  • Intraday orders. Zerodha “validates intraday orders for stocks on NSE and BSE that are not allowed for MIS or CO.” A stock in a restricted surveillance category cannot take a MIS or cover order ; only a delivery CNC order is allowed.
  • Trigger price. Zerodha “validates orders with trigger prices lower than LTP for buy orders and higher than LTP for sell orders.” A stop-loss trigger on the wrong side of the last traded price is rejected. See trigger price versus limit price .
  • Market orders on stock options. Zerodha “blocks market orders on stock options due to illiquidity.” A market order on an illiquid single-stock option is rejected; place a limit order instead.
  • After-market orders. Zerodha “blocks AMO orders placed between 9:00 AM and 4:00 PM for EQ and CDS, and 9:10 AM and 3:45 PM for FO.” An after-market order entered during live market hours is rejected, because an AMO is meant for the closed window.
  • Far-away strike price. A far-from-theoretical-price option order, “if the order is placed outside the theoretical price for contracts,” is rejected. See how to fix a theoretical-price rejection .

Every one of these is a pre-trade rejection. The order is blocked before the exchange, so none of them produces an order-book row. The reason for each shows only in the order status notification.

Where the rejection reason is recorded

For a pre-trade rejection, the reason lives in one place: the order status notification on Kite. Zerodha states “you can see the rejection reason in the order status notification.” On the Kite app and on Kite web , this is the toast or banner that appears the instant the order is rejected, and it is also retained in the notifications list for the session. If you dismissed the notification, open the notifications panel to read it again.

For an order that reached the exchange and was rejected there, the reason is in two places: the order status notification at the moment of rejection, and the Orders tab row, which shows status Rejected. Tap or click the row to expand the detail panel and read the full reason string. An RMS rejection begins “RMS:” followed by the specific sub-code; a price-band or circuit-limit rejection carries the exchange reason. The taxonomy of these messages sits in why orders are rejected on Kite .

The order log on each order row

Kite attaches an order log to every order that reached the exchange. Open the Orders tab, tap the order, and within the detail panel the order log lists each state change with its timestamp: received, open, modified, and the terminal state of complete, cancelled, or rejected. For a rejected order, the log records the rejection and its reason at the timestamp the exchange returned it.

The order log is the audit trail for an order’s life inside a single session. It is the right surface when you need to know not just that an order was rejected, but exactly when each state change happened, which matters when you are reconstructing a sequence of modifications or contesting an execution. A pre-trade rejection that never reached the exchange has no order log, because the log records exchange-side states; for those, the notification is the only record.

Why an order vanishes after end of day

A separate “missing order” pattern has nothing to do with rejection. A day order, the default validity on Kite, is valid only for the session in which it is placed. All open day orders are cancelled at the close of the session. So an open buy limit you placed below the market that did not trigger during the day is not carried to the next morning; it leaves the live order book at the close. This is standard exchange behaviour for day orders, not a fault.

If you want an order to persist across sessions until a price is reached, the instrument for that is not a day order but a good-till-triggered order , which Zerodha holds for up to one year and places only when its trigger condition is met. See how to place a GTT order on Kite and order validity types for the distinction between a day order, an IOC order, and a GTT. A GTT is not a resting exchange order, so it too is absent from the intraday order book until it triggers.

Reviewing past orders in Console

Once the live session ends and the order book clears, the durable record of your orders is in Zerodha Console , the reporting back office. Console retains dated order and trade history across sessions, so an order you cannot find in the current session’s live Orders tab, because it belonged to a previous day or was cancelled at the close, is reviewable in the Console reports. Use the order report to confirm what was placed and its terminal state, and the trade report to confirm what actually executed.

The division of labour is consistent. The Kite Orders tab and its order log are the live, in-session view. Console is the historical, cross-session archive. A pre-trade rejection that never reached the exchange is the exception that neither fully captures; for that, the order status notification at the moment of rejection is the only record, which is why reading and not dismissing the notification matters.

How to find a missing order, in order

Work the cases in sequence. First, ask whether the order was rejected the instant you placed it. If so, it was almost certainly a pre-trade rejection: open the notifications panel on Kite and read the order status notification for the reason, then fix the underlying cause from the list above and re-enter. Second, if the order sat in the book during the session and is gone now, it was a day order cancelled at the close; re-place it, or use a GTT if you want it to persist. Third, if you need a past session’s record, open the order and trade reports in Console. Fourth, if the order reached the exchange and shows Rejected in the Orders tab, tap the row, read the exchange reason, and resolve it through the matching guide.

See also

External references

References

  1. Zerodha support, “Why is my rejected order not displayed in the order book?” (accessed 21 June 2026).
  2. Zerodha support, Kite error messages category, pre-trade validation reasons (accessed 21 June 2026).
  3. NSE India, equities trading regulations and day-order validity rules.
  4. SEBI (Stock Brokers) Regulations 1992, broker risk-management obligations.

Frequently asked questions

Why is my rejected order not displayed in the order book on Kite?
Zerodha runs an extra pre-trade validation layer that rejects non-qualifying orders before they reach the exchange. Such orders never enter the order book because they were blocked before being sent. The rejection reason appears in the order status notification on Kite.
Where do I find the reason a Zerodha order was rejected?
Open the order status notification on Kite. For pre-trade rejections, that notification carries the reason. For orders that reached the exchange and were rejected there, the Orders tab row shows the rejection with the exchange reason; tap the row to read it.
Why did my order disappear from the order book after market close?
All open day orders are cancelled at the end of the day. A day order that did not execute is not carried to the next session, so it leaves the live order book at the close. Review it in the Kite order log or the Console order report.
What is the difference between an RMS rejection and an exchange rejection?
An RMS rejection is Zerodha’s own pre-trade block; the exchange never sees the order and it is absent from the order book. An exchange rejection means the order reached NSE or BSE and was rejected there, so it is logged in the Orders tab with an exchange reason.
Can I see a history of my rejected orders on Zerodha?
The current session’s orders, including rejections that reached the exchange, sit in the Orders tab on Kite, and each row carries an order log of its state changes. For past sessions, use the order and trade reports in Zerodha Console, which retain dated order history.
Why was my order rejected before it reached the exchange?
Zerodha validates F&O freeze quantity, intraday eligibility, trigger price against the last traded price, market orders on illiquid stock options, after-market-order timing, and far-from-theoretical-price option orders. An order failing any check is blocked pre-trade and is not placed on the exchange.

Reviewed and published by

The WebNotes Editorial Team covers Indian capital markets, payments infrastructure and retail investor procedures. Every article is fact-checked against primary sources, principally SEBI circulars and master directions, NPCI specifications and the official support documentation published by the intermediary in question. Drafts go through a second-pair-of-eyes review and a separate compliance read before publication, and revisions are tracked against the SEBI and NPCI rule changes referenced in the methodology section.

Last reviewed
Conflicts of interest
WebNotes is independent. No relationship with any broker, registrar or bank named in this article.