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
intentOrderIdvalues 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 passbasket_id. - Cancellation is a request, not a guarantee that execution state can always be reversed.
- Omit
exitTriggerKindwhen the goal is to cancel the full order. - Pass
exitTriggerKindonly when cancelling a specific exit trigger. - Inspect latest state with Get Orders when cancellation status matters.