Why a buy GTT is rejected at trigger on Zerodha Kite
A buy GTT is rejected on Kite , Zerodha’s trading platform, when the trading account does not hold enough free cash to fund the limit order that the GTT fires at the instant the trigger condition is met. A GTT (Good Till Triggered) order is not pre-funded at creation; Zerodha checks margin only when the trigger fires and a regular buy limit order is sent to the exchange. If the cash is short at that moment, the risk management system rejects the order, and the GTT is marked triggered with nothing filled.
This catches people because the GTT was accepted without any money in the account. You can set a buy GTT on a stock trading at Rs 1,000 with a trigger at Rs 850 while holding zero balance, and Kite stores it for up to a year without complaint. The reckoning comes later, at the one moment the trigger fires, and if the funds are not sitting in the account at that second the order dies. Worse, it does not come back. The GTT does not re-attempt after you transfer money in; the rejected leg is spent, and a fresh GTT has to be created.
This article sets out exactly when a buy GTT is rejected, the rejection causes in order of frequency (cash shortfall at trigger, exchange price-band breach on the limit order, the limit price resting away from the market), the trigger-placement rules that block a GTT at creation rather than at trigger, how single-trigger and OCO buy GTTs differ on funding, and the exact steps to read the rejection reason and recover.
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 a buy GTT actually does at trigger
A GTT is not an exchange order type. It sits on Zerodha’s servers and monitors the last traded price (LTP) during market hours. When the LTP satisfies the trigger condition, Zerodha’s backend places a single regular DAY limit order to the exchange on your behalf. That limit order is an ordinary order in every respect: it consumes margin, it is checked by Zerodha’s RMS and the exchange, and it can be rejected for the same reasons any manual order is rejected.
So a buy GTT rejection is really a rejection of the limit order the GTT spawned. The trigger half succeeded; the order half failed. The GTT itself stays marked “triggered”, and the unfilled intent is gone. Understanding this split (trigger fires, then a normal order is placed) explains every rejection mode below.
The funding model is the crux. Zerodha states that a GTT can be placed without sufficient funds in the account, but funds are required when the GTT is triggered. There is no margin block when you create the GTT, and there is no margin earmarked while it waits. The cash check happens once, at the trigger instant. Zerodha’s own support wording is direct: the GTT order is rejected if you do not maintain sufficient funds in your account during GTT execution.
Cause 1: insufficient cash at the trigger instant
This is the dominant reason a buy GTT is rejected. A buy limit order for delivery under the CNC product code needs the full order value as cash; a Rs 850 trigger on 100 shares needs Rs 85,000 of free cash the moment it fires. A buy under MIS needs the applicable intraday margin. If the free balance falls below the requirement at the trigger instant, the RMS rejects the order with an insufficient-funds reason and the GTT is marked triggered.
Three patterns produce the shortfall. The account was never funded after the GTT was created, on the assumption that the GTT itself reserved money; it does not. The cash was there when the GTT was set but was deployed elsewhere before the trigger fired, because nothing was earmarked. Or several GTTs triggered together in a fast move, and the account funded the first few and ran dry before the rest, since no GTT holds a margin reservation against the others.
The behaviour after rejection is the part that costs money. The order is not placed automatically once funds become available. Adding cash an hour later, or the next day, does nothing for the rejected GTT. Zerodha’s instruction is explicit: a new GTT order needs to be recreated once the funds are available. A trader who set a buy GTT as a long-term accumulation order, saw it trigger on a sharp dip, and only later noticed the rejection, has missed the entry entirely.
Zerodha’s GTT terms make the funding obligation a standing one. At all times while a GTT is live you are required to maintain sufficient cash balance and sufficient quantity of holdings such that all your GTTs may be triggered as set. The terms go further: where there is insufficient cash or holdings against your GTTs at any point, the GTTs may be cancelled at the sole discretion of Zerodha and its RMS. So a chronic shortfall does not just risk a rejection at trigger; it can see the GTT cancelled outright before it ever fires. See why GTTs are disabled, cancelled or expired for that cancellation path.
Cause 2: exchange price band breach on the limit order
Even with cash in hand, the limit order a buy GTT fires can be rejected by the exchange price band. Every scrip trades within a daily price band, the circuit limit, beyond which orders are not accepted. If you set a buy GTT trigger and limit price that, on the day it fires, sit outside the day’s permitted band, the exchange rejects the limit order. This is the same mechanism behind a manual price-band rejection ; the GTT does not get special treatment.
This bites most on stocks under tight surveillance bands. A scrip under a 5 per cent or 2 per cent daily band, or one that has already moved to the edge of its band intraday, leaves little room for a limit price set months earlier. A buy GTT placed when the band was wide can fire into a session where the same price is now outside the band, and the order is rejected. The fix is not in the GTT; it is to understand the scrip’s band. Read circuit limits and price bands for how the bands are set and revised.
Cause 3: the limit order rests unfilled after a gap
This is not strictly a rejection, but it is the outcome traders most often confuse with one. A buy GTT fires a limit order, not a market order. If the price gaps up through your trigger and your limit price in a fast move, the limit order is placed correctly but rests in the order book unfilled, because the market is already trading above your limit. Nothing was rejected; the order is live and simply not matched. This is distinct from a rejection, and it has its own article: why a GTT triggered but did not execute covers the gap-and-rest case in full.
The practical signal is the order book. A rejection shows a rejected order with a reason. A rest-unfilled shows an open order with zero quantity filled. Reading the order book tells you which of the two you are looking at, and they need different responses: a rejection needs a fresh GTT or funds; a resting order needs you to decide whether to chase the price or cancel.
Trigger placement rules that block a GTT at creation
A separate class of failure stops the GTT at creation, before any trigger. Zerodha enforces a minimum distance between the trigger price and the current market price so a GTT cannot be set to fire instantly. For a stock priced above Rs 50, the trigger should be at least 0.25 per cent away from the current market price. For a stock priced at or below Rs 50, the trigger should be at least 9 paise away from the current market price. A trigger set inside that distance fails validation, and Kite will not store the GTT.
This is why a buy GTT set very close to the LTP is refused: it is a creation-time validation, not a trigger-time rejection. The remedy is to widen the gap between trigger and market price beyond the threshold. The same minimum distance underlies the “disabled” state a live GTT can fall into if, after a validation check, it ends up sitting less than 0.25 per cent from the LTP; that path is covered in why GTTs are disabled, cancelled or expired .
How OCO and single-trigger buy GTTs differ on funding
A single-trigger buy GTT has one condition and fires one limit order. An OCO (One Cancels Other) GTT carries two conditions; whichever fires first places its order and cancels the other leg. For buy GTTs the funding logic is identical for both: no margin is blocked at creation, and the cash is checked only when a leg actually fires and sends its limit order. An OCO does not reserve enough margin for both legs, because only one leg can ever fire.
The implication for a basket of buy GTTs is the one that surprises portfolio investors. Set ten buy GTTs at ten lower price levels on a high-conviction stock, intending to average down through a correction, and a single sharp fall can fire several of them in seconds. None of those GTTs reserved cash. The account funds them in the order the limit orders reach the RMS until the balance is exhausted, then rejects the rest. The cumulative cash needed at the trigger instant, not when you set the GTTs, is what governs how many fill. Size the account for the worst case where many GTTs fire together.
Reading the rejection and recovering
When a buy GTT is rejected, the recovery is mechanical, and skipping a step loses the trade. Open the Kite order book and find the rejected order. Read its rejection reason: an RMS or insufficient-funds reason points to Cause 1; a price-band or circuit reason points to Cause 2. The GTT list itself will show the GTT as triggered, not active, so it will not fire again.
If the cause was a cash shortfall and you still want the entry, add the required funds, then create a fresh GTT at the price you want, because the rejected one is finished. If the cause was a price band, the limit price needs setting inside the day’s band, which means the entry has to be re-thought rather than re-created at the same level. For an RMS reason unrelated to plain cash, such as a product or segment restriction, how to fix an RMS rejection walks the specific RMS messages.
The discipline that prevents most of these rejections is simple to state and easy to neglect: keep the cash for a buy GTT in the account from the day you set it, not the day you hope it fills. A GTT is a convenience for not watching the screen; it is not a promise that the trade will fund itself.
See also
- GTT (Good Till Triggered) order on Zerodha
- How to place a GTT order on Kite
- Why a GTT triggered but did not execute
- Why GTTs are disabled, cancelled or expired
- GTT validity rules on Kite
- GTT notification flow
- GTT order limitations and rejection
- How to fix an RMS rejection on Zerodha
- How to fix a price band rejection on Zerodha
- Circuit limits and price bands
- Trigger price versus limit price
- Limit order on Kite
- SL-M order on Kite
- CNC product code
- MIS product code
- Order validity types
- Iceberg order on Kite
- Kite by Zerodha
- Zerodha
- National Stock Exchange
- Bombay Stock Exchange
- SEBI
- Kite alerts
- How to add and customise alerts on Kite
External references
- Zerodha support: Why was my buy GTT order rejected?
- Zerodha support: Why was my GTT order triggered but not executed?
- Zerodha support: How to use GTT orders on Zerodha Kite?
- Zerodha GTT terms and conditions
- Zerodha Z-Connect: Introducing GTT, Good Till Triggered orders
References
- Zerodha support, Why was my buy GTT order rejected? (as of 21 June 2026): a GTT can be placed without sufficient funds, but the order is rejected if sufficient funds are not maintained during GTT execution, and a new GTT must be recreated once funds are available.
- Zerodha support, GTT trigger placement: trigger at least 0.25 per cent from LTP for stocks above Rs 50, at least 9 paise for stocks at or below Rs 50 (as of 21 June 2026).
- Zerodha GTT terms and conditions, zerodha.com/tos/gtt: obligation to maintain sufficient cash and holdings at all times; GTTs may be cancelled at Zerodha and RMS discretion on shortfall (as of 21 June 2026).
- Zerodha support, Why was my GTT order triggered but not executed? (as of 21 June 2026): the fired limit order may rest unfilled on a gap or be rejected on a price-band breach.
- SEBI circulars on broker client-agreement and conditional-order disclosure obligations, SEBI/HO/MIRSD series.