Modify Multi Order¶
Use this page to modify multiple existing Trading API V3 order IDs in one REST request.
Group modifications for:
- multiple independent single-instrument orders
- multiple items that were originally placed through Place Multi Order
- multiple strategy orders
- a mixed list of single orders and strategy order IDs
Every item in orders[] carries its own orderId and only the fields being changed for that target order.
For strategy orders created with isMultiLeg: true, use the strategy-level intentOrderId as orderId. Do not use basketId, and do not resend legs, isMultiLeg, or basketParams.
Endpoint¶
Method: POST
Endpoint: sentinel/orders/modify
Basic Usage¶
curl --location 'https://uatapi.nubra.io/sentinel/orders/modify' \
--header 'x-device-id: {{x_device_id}}' \
--header 'x-app-version: 0.4.5' \
--header 'x-device-os: sdk' \
--header 'Cookie: deviceId={{x_device_id}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{session_token}}' \
--data '{
"orders": [
{
"orderId": 987654,
"qty": 1,
"entryPrice": 24600,
"deliveryType": "IDAY",
"priceType": "LIMIT",
"validityType": "DAY",
"executionMode": "ENTRY"
},
{
"orderId": 987655,
"entryPrice": 18000,
"deliveryType": "IDAY",
"priceType": "LIMIT",
"validityType": "DAY",
"executionMode": "ENTRY"
}
]
}'
Order Type Scope¶
| Existing order type | Which ID to use in each item | Notes |
|---|---|---|
| Single order | orderId: orders[i].intentOrderId |
Modify several independent single orders together. |
| Multi-order item | orderId: orders[i].intentOrderId |
Each item from a multi-order placement has its own ID. |
| Strategy order | orderId: strategy intentOrderId |
Each strategy order is one strategy-level order ID. |
Example Modify Patterns¶
{
"orders": [
{
"orderId": 987654,
"qty": 1,
"entryPrice": 24600,
"deliveryType": "IDAY",
"priceType": "LIMIT",
"validityType": "DAY",
"executionMode": "ENTRY"
},
{
"orderId": 987655,
"qty": 1,
"entryPrice": 18000,
"deliveryType": "IDAY",
"priceType": "LIMIT",
"validityType": "DAY",
"executionMode": "ENTRY"
}
]
}
{
"orders": [
{
"orderId": 987654,
"entryPrice": 24600,
"entryConfig": {
"triggers": {
"ltp": {
"atOrAbove": {"value": 24600}
}
}
},
"executionMode": "ENTRY"
},
{
"orderId": 987655,
"exitConfig": {
"targetParams": {
"targetProfitTriggerPrice": { "value": 18400 },
"targetProfitLimitPrice": { "value": 18380 }
}
},
"executionMode": "EXIT"
}
]
}
{
"orders": [
{
"orderId": 987654,
"qty": 130,
"entryPrice": -36000,
"deliveryType": "CNC",
"priceType": "LIMIT",
"validityType": "DAY",
"executionMode": "ENTRY"
},
{
"orderId": 987655,
"exitConfig": {
"targetParams": {
"targetProfitTriggerPrice": { "value": -39000 },
"targetProfitLimitPrice": { "value": -39100 }
}
},
"executionMode": "EXIT"
}
]
}
Use this pattern when several strategy orders need strategy-level updates. Each orderId is a strategy-level intentOrderId. For example, if one strategy unit uses base qty: 65, then qty: 130 represents two strategy units.
{
"orders": [
{
"orderId": 987654,
"entryPrice": 24600,
"executionMode": "ENTRY"
},
{
"orderId": 987655,
"qty": 130,
"entryPrice": -36000,
"executionMode": "ENTRY"
}
]
}
Timed And GTE Modifications¶
Timed entry, timed exit, and GTE validity can also be grouped inside orders[]. Keep the execution mode aligned to the fields being changed in each item.
{
"orders": [
{
"orderId": 987654,
"entryConfig": {
"entryTime": "2026-10-30T09:20:00.000Z"
},
"exitConfig": {
"exitTime": "2026-10-30T15:10:00.000Z"
},
"executionMode": "ENTRY_AND_EXIT"
},
{
"orderId": 987655,
"validityType": "GTE",
"goodTillDate": "2026-10-30T15:20:00.000Z",
"executionMode": "ENTRY"
}
]
}
For futures and options, goodTillDate must not be beyond the contract expiry. For stocks, the date can be up to a maximum of one year.
Execution Modes¶
Each item inside orders[] has its own executionMode.
| Item payload shape | executionMode |
Meaning |
|---|---|---|
The item modifies entryPrice and/or entryConfig, and has no exitConfig. |
ENTRY |
Entry-only order modification. |
The item has no entry fields and modifies only exitConfig. |
EXIT |
Exit-only order modification. |
The item modifies entry fields and also modifies exitConfig. |
ENTRY_AND_EXIT |
Entry order with attached exit modifications. |
Request Attributes¶
| Field | Type | Required | Allowed values / shape | Meaning |
|---|---|---|---|---|
orders |
array |
yes | non-empty array | Modification items. |
orders[].orderId |
int |
yes | Trading API V3 intentOrderId |
Target Trading API V3 order ID for this item. |
orders[].refId |
int |
no | instrument ref ID | Replacement instrument reference ID when supported. Do not use for strategy order modification. |
orders[].qty |
int |
no | positive integer | Updated single-order quantity. For strategy orders, send the updated common executable base quantity. To scale the full strategy, multiply the base quantity here. |
orders[].side |
string |
no | BUY, SELL |
Updated side when supported. Do not use for strategy order modification. |
orders[].entryPrice |
int |
no | price integer | Updated entry price, or net strategy price for strategy orders. |
orders[].goodTillDate |
string |
no | date-time string | Updated GTE date/time. |
orders[].entryConfig |
object |
no | timed entry or triggers | Updated entry conditions. |
orders[].exitConfig |
object |
no | stop-loss, target, trailing stop, exit time | Updated exit conditions. |
orders[].deliveryType |
string |
no | IDAY, CNC |
Updated delivery type when supported by the order. |
orders[].priceType |
string |
no | LIMIT, MARKET |
Updated price type. |
orders[].validityType |
string |
no | DAY, IOC, GTE |
Updated validity. |
orders[].executionMode |
string |
no | ENTRY, EXIT, ENTRY_AND_EXIT |
Execution mode that matches this item's updated fields. |
orders[].icebergInfo |
object |
no | numberOfLegs or maxQtyPerLeg |
Updated iceberg slicing settings when supported. |
orders[].echoFields |
string |
no | string | Metadata echoed back by Trading API V3. |
Response Structure¶
{
"message": "order modify request pushed successfully"
}
Fetch the latest order state with Get Orders after modification when control flow depends on final order status, fill state, rejection reason, or strategy order leg state.
Important Rules¶
Important Rules
- Include
orderIdinside every item. - Send only the fields being changed for each target order.
- Set
executionModeper item based on that item's entry and exit fields. - Strategy order IDs can be modified in the same grouped request as single-order IDs.
- For strategy orders, use the strategy-level
intentOrderIdasorderId; do not passbasketId. - For strategy-order quantity changes, update
qtyusing the same base-quantity model used at placement time. - Do not send
legs,isMultiLeg, orbasketParamsin modify requests. - Do not send top-level
refIdor top-levelsidewhen modifying a strategy order. - Use Modify Order when modifying only one Trading API V3 order ID.
- Use Get Orders to inspect current order state before and after modification.