TTL SELL Orders Not Auto-Cancelling After Expiry (NFO – Futures)

chaitanyad
Hello Zerodha Team,

I am observing an issue with TTL (Time-To-Live) validity orders for SELL transactions where the orders are not getting auto-cancelled after the configured TTL duration.

Affected Order IDs
• 260128220507850 (NESTLEIND26FEBFUT)
• 260128220745227 (SUNPHARMA26FEBFUT)

Order Configuration (Common)
• Exchange: NFO
• Product: NRML
• Order Type: LIMIT
• Transaction Type: SELL
• Validity: TTL
• TTL Duration: 75 minutes
• Variety: regular
• Status Observed: OPEN (even after TTL elapsed)

Sample Order API Response (One Example)

{
"order_id": "260128220507850",
"exchange": "NFO",
"tradingsymbol": "NESTLEIND26FEBFUT",
"order_type": "LIMIT",
"transaction_type": "SELL",
"validity": "TTL",
"validity_ttl": 75,
"product": "NRML",
"quantity": 500,
"price": 1296.4,
"status": "OPEN",
"order_timestamp": "2026-01-28T10:16:31",
"exchange_timestamp": "2026-01-28T10:16:31",
"pending_quantity": 500,
"filled_quantity": 0
}

Expected Behavior

Based on TTL order documentation:
• Order should be automatically cancelled by the system after 75 minutes
• Order status should transition to CANCELLED / EXPIRED

Actual Behavior
• Order remains in OPEN state
• No expiry or cancellation triggered even after TTL duration elapsed
• Requires manual cancellation

Clarification Required

Could you please help confirm:
1. Is TTL auto-expiry handled differently for SELL orders compared to BUY orders?
2. Are there any exchange-level constraints (NFO segment / Futures) where TTL cancellation may not trigger reliably?
3. Does TTL countdown depend on exchange time, system time, or order update timestamp?
4. Is this expected behavior or a potential issue on the OMS / API side?

This behavior impacts automated trading systems which rely on TTL for safe order management and risk control.

Looking forward to your clarification.

Thanks in advance.
  • chaitanyad
    I have to cancel it manually after 2 to 3 Hours
  • salim_chisty
    @chaitanyad Custom TTL validity is not supported in the order placement APIs; hence, such orders will not be auto-cancelled by the system after the specified duration. You may refer to the similar discussion here.
  • chaitanyad
    Thanks, I have changed to 90 which is standard TTL from the available 15/30/60/90/120

    Hope this should work , Please confirm
  • salim_chisty
    Yes, it will support all the minutes validity which available on the Kite web.
Sign In or Register to comment.