Cancel Order¶
cancel_orders_sentinel() 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
- strategy orders
For Trading API V3 strategy 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 strategy orders. Generate only cancel_orders_sentinel([...]). 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, trading_version=TradingAPIVersion.V3)
trader = NubraTrader(nubra)
result = trader.cancel_orders_sentinel([
{
"orderId": 987654
}
])
print(result)
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, trading_version=TradingAPIVersion.V3)
trader = NubraTrader(nubra)
single_order_id = 987654
result = trader.cancel_orders_sentinel([
{
"orderId": single_order_id
}
])
print(result)
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, trading_version=TradingAPIVersion.V3)
trader = NubraTrader(nubra)
multi_order_item_ids = [987654, 987655]
result = trader.cancel_orders_sentinel([
{
"orderId": order_id
}
for order_id in multi_order_item_ids
])
print(result)
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, trading_version=TradingAPIVersion.V3)
trader = NubraTrader(nubra)
strategy_order_id = 987654
result = trader.cancel_orders_sentinel([
{
"orderId": strategy_order_id
}
])
print(result)
Use this pattern when cancelling one strategy order. The strategy_order_id is the intentOrderId returned by the isMultiLeg=True placement response.
Cancel Exit Trigger Patterns¶
Use cancel_orders_sentinel() 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, trading_version=TradingAPIVersion.V3)
trader = NubraTrader(nubra)
result = trader.cancel_orders_sentinel([
{
"orderId": 987654,
"exitTriggerKind": "STOPLOSS"
}
])
print(result)
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, trading_version=TradingAPIVersion.V3)
trader = NubraTrader(nubra)
result = trader.cancel_orders_sentinel([
{
"orderId": 987654,
"exitTriggerKind": "TARGET_PROFIT"
}
])
print(result)
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, trading_version=TradingAPIVersion.V3)
trader = NubraTrader(nubra)
result = trader.cancel_orders_sentinel([
{
"orderId": 987654,
"exitTriggerKind": "TRAILING_STOP"
}
])
print(result)
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, trading_version=TradingAPIVersion.V3)
trader = NubraTrader(nubra)
result = trader.cancel_orders_sentinel([
{
"orderId": 987654,
"exitTriggerKind": "STOPLOSS"
},
{
"orderId": 987655,
"exitTriggerKind": "TARGET_PROFIT"
}
])
print(result)
Use this pattern when cancelling selected exit triggers across multiple Trading API V3 orders.
Request Contract¶
| Method | Input shape | Meaning |
|---|---|---|
cancel_orders_sentinel([{...}, ...]) |
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({...}). |
| Multiple orders in one request | each orders[i].intentOrderId |
Returned by create_order([{...}, {...}]); each independent item has its own ID. |
| Strategy order | 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_sentinel() returns a raw server acknowledgement dict. 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 strategy order cancellation use the same Trading API V3 cancel endpoint.
- For a strategy order, 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.