Skip to content

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 orderId inside every item.
  • Send only the fields being changed for each target order.
  • Set executionMode per 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 intentOrderId as orderId; do not pass basketId.
  • For strategy-order quantity changes, update qty using the same base-quantity model used at placement time.
  • Do not send legs, isMultiLeg, or basketParams in modify requests.
  • Do not send top-level refId or top-level side when 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.
  1. Modify Order
  2. Place Multi Order
  3. Place Strategy Order
  4. Get Orders
  5. Cancel Order
NEO Assistant