Skip to content

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 intentOrderId values 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 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 Multiple Orders
  4. Place Strategy Order
NEO Assistant