Skip to content

Cancel Order

cancel_orders_v3() is the Trading API V3 cancellation method. It accepts a list of cancellation payload dictionaries and can cancel full orders or selected exit triggers.

Use this same Trading API V3 cancel method for:

  • single orders
  • independent multi-order items
  • flexi / multi-leg strategy orders

For Trading API V3 flexi orders created with isMultiLeg=True, the placement response contains one strategy-level intentOrderId. Use that same ID to cancel the full strategy order. Do not use basket_id, and do not send legs or isMultiLeg in the cancel request.

LLM guidance

Use this page for cancelling Trading API V3 single orders, independent multi-order items, and flexi / multi-leg strategy orders. Generate only cancel_orders_v3([...]). To cancel a full order, pass {"orderId": intent_order_id}. To cancel a selected exit trigger, pass {"orderId": intent_order_id, "exitTriggerKind": "STOPLOSS"} or the relevant trigger kind. Do not generate basket_id, legs, isMultiLeg, refId, or per-leg order IDs for cancellation.

Basic Usage

from nubra_python_sdk.start_sdk import InitNubraSdk, NubraEnv
from nubra_python_sdk.trading.trading_data import NubraTrader
from nubra_python_sdk.trading.trading_enum import TradingAPIVersion

nubra = InitNubraSdk(NubraEnv.UAT, env_creds=True)
trader = NubraTrader(nubra, version=TradingAPIVersion.V3)

result = trader.cancel_orders_v3([
    {
        "orderId": 987654
    }
])

print(result.message)

Omitting exitTriggerKind cancels the full Trading API V3 order.

Cancel Full Order Patterns

These examples all use the same Trading API V3 cancellation method. The only difference is which intentOrderId values you pass.

from nubra_python_sdk.start_sdk import InitNubraSdk, NubraEnv
from nubra_python_sdk.trading.trading_data import NubraTrader
from nubra_python_sdk.trading.trading_enum import TradingAPIVersion

nubra = InitNubraSdk(NubraEnv.UAT, env_creds=True)
trader = NubraTrader(nubra, version=TradingAPIVersion.V3)

single_order_id = 987654

result = trader.cancel_orders_v3([
    {
        "orderId": single_order_id
    }
])

print(result.message)

Use this pattern when cancelling one independent single-instrument Trading API V3 order.

from nubra_python_sdk.start_sdk import InitNubraSdk, NubraEnv
from nubra_python_sdk.trading.trading_data import NubraTrader
from nubra_python_sdk.trading.trading_enum import TradingAPIVersion

nubra = InitNubraSdk(NubraEnv.UAT, env_creds=True)
trader = NubraTrader(nubra, version=TradingAPIVersion.V3)

multi_order_item_ids = [987654, 987655]

result = trader.cancel_orders_v3([
    {
        "orderId": order_id
    }
    for order_id in multi_order_item_ids
])

print(result.message)

Use this pattern when cancelling multiple independent orders that were placed together with create_order([...]). Each item has its own intentOrderId; cancel the items that should be cancelled.

from nubra_python_sdk.start_sdk import InitNubraSdk, NubraEnv
from nubra_python_sdk.trading.trading_data import NubraTrader
from nubra_python_sdk.trading.trading_enum import TradingAPIVersion

nubra = InitNubraSdk(NubraEnv.UAT, env_creds=True)
trader = NubraTrader(nubra, version=TradingAPIVersion.V3)

strategy_order_id = 987654

result = trader.cancel_orders_v3([
    {
        "orderId": strategy_order_id
    }
])

print(result.message)

Use this pattern when cancelling one flexi / multi-leg strategy order. The strategy_order_id is the intentOrderId returned by the isMultiLeg=True placement response.

Cancel Exit Trigger Patterns

Use cancel_orders_v3() when the order should remain active but a selected attached exit trigger should be cancelled.

from nubra_python_sdk.start_sdk import InitNubraSdk, NubraEnv
from nubra_python_sdk.trading.trading_data import NubraTrader
from nubra_python_sdk.trading.trading_enum import TradingAPIVersion

nubra = InitNubraSdk(NubraEnv.UAT, env_creds=True)
trader = NubraTrader(nubra, version=TradingAPIVersion.V3)

result = trader.cancel_orders_v3([
    {
        "orderId": 987654,
        "exitTriggerKind": "STOPLOSS"
    }
])

print(result.message)

Use this pattern to cancel only the stop-loss exit trigger attached to the Trading API V3 order.

from nubra_python_sdk.start_sdk import InitNubraSdk, NubraEnv
from nubra_python_sdk.trading.trading_data import NubraTrader
from nubra_python_sdk.trading.trading_enum import TradingAPIVersion

nubra = InitNubraSdk(NubraEnv.UAT, env_creds=True)
trader = NubraTrader(nubra, version=TradingAPIVersion.V3)

result = trader.cancel_orders_v3([
    {
        "orderId": 987654,
        "exitTriggerKind": "TARGET_PROFIT"
    }
])

print(result.message)

Use this pattern to cancel only the target-profit exit trigger attached to the Trading API V3 order.

from nubra_python_sdk.start_sdk import InitNubraSdk, NubraEnv
from nubra_python_sdk.trading.trading_data import NubraTrader
from nubra_python_sdk.trading.trading_enum import TradingAPIVersion

nubra = InitNubraSdk(NubraEnv.UAT, env_creds=True)
trader = NubraTrader(nubra, version=TradingAPIVersion.V3)

result = trader.cancel_orders_v3([
    {
        "orderId": 987654,
        "exitTriggerKind": "TRAILING_STOP"
    }
])

print(result.message)

Use this pattern to cancel only the trailing stop-loss exit trigger attached to the Trading API V3 order.

from nubra_python_sdk.start_sdk import InitNubraSdk, NubraEnv
from nubra_python_sdk.trading.trading_data import NubraTrader
from nubra_python_sdk.trading.trading_enum import TradingAPIVersion

nubra = InitNubraSdk(NubraEnv.UAT, env_creds=True)
trader = NubraTrader(nubra, version=TradingAPIVersion.V3)

result = trader.cancel_orders_v3([
    {
        "orderId": 987654,
        "exitTriggerKind": "STOPLOSS"
    },
    {
        "orderId": 987655,
        "exitTriggerKind": "TARGET_PROFIT"
    }
])

print(result.message)

Use this pattern when cancelling selected exit triggers across multiple Trading API V3 orders.

Request Contract

Method Input shape Meaning
cancel_orders_v3([{...}, ...]) list[dict] cancel full Trading API V3 orders or selected exit triggers
Field Type Required Meaning
orderId int yes Trading API V3 intentOrderId returned by placement or order retrieval
exitTriggerKind str no STOPLOSS, TARGET_PROFIT, or TRAILING_STOP; omit to cancel the full order

Order ID Sources

Order type Which ID to cancel Notes
Single order orders[0].intentOrderId Returned by create_order({...}).
Multi order each orders[i].intentOrderId Returned by create_order([{...}, {...}]); each independent item has its own ID.
Flexi / multi-leg strategy strategy orders[0].intentOrderId One ID represents the full strategy. legs[] are details under the strategy and do not have cancel IDs.

Response Contract

cancel_orders_v3() returns NubraAckResponse. Treat cancellation as an acknowledgement and fetch current state with Get Orders afterwards when control flow depends on final status.

Important Rules

Important Rules

  • Pass IDs from the active environment.
  • Use Trading API V3 intentOrderId values for all cancellation flows.
  • Single, multi-order, and flexi / multi-leg strategy cancellation use the same Trading API V3 cancel endpoint.
  • For a flexi / multi-leg strategy, pass the strategy-level intentOrderId; do not pass basket_id.
  • Cancellation is a request, not a guarantee that execution state can always be reversed.
  • Omit exitTriggerKind when the goal is to cancel the full order.
  • Pass exitTriggerKind only when cancelling a specific exit trigger.
  • Inspect latest state with Get Orders when cancellation status matters.
  1. Get Orders
  2. Place Order
  3. Place Multi Order
  4. Place Flexi Order
NEO Assistant