Overview
Submits changes to an equity order request.
Description

This API submits changes to an equity order - essentially cancelling the original order and creating a new one, with a new order ID which appears in the XML response. It's recommended to preview the changes with previewchangeequityorder before submitting them.

Throughout this documentation, the terms "submit" and "place" refer to entering an order into the system to be executed. The actual execution of the order depends on a variety of circumstances. To receive timely notification of the order status, use the streaming order status API, detailed elsewhere in this documentation.

The related Preview Equity Order Change API returns a preview of an order change that includes estimated order cost and a unique preview ID. It is possible to submit an order change without first previewing it, but a typical workflow lets the user preview the order change first. Be aware that, once the change has been previewed, submitting it requires that it include the preview ID and the same parameters that were used in the preview.

URL
https://etws.etrade.com/order/rest/placechangeequityorder
HTTP Method: POST

Since this is a POST request, the parameters are included in the request as XML or JSON.

Request Parameters
Parameter Type Required? Description
accountId integer required Numeric account ID
orderNum integer required Order number that identifies the order to be changed
clientOrderId string optional A reference number generated by the developer. Used to ensure that a duplicate order is not being submitted. It can be any value of 20 alphanumeric characters or less, but must be unique within this account. It does not appear in any API responses.
previewId long conditional If the change was not previewed, this parameter should not be specified. If the change was previewed, this parameter must specify the numeric preview ID from the preview, and other parameters of this request must match the parameters of the preview.
priceType enum required The type of pricing specified in the equity order. Possible values are:
• MARKET
• LIMIT
• STOP
• STOP_LIMIT
• MARKET_ON_CLOSE
If STOP, requires a stopPrice. If LIMIT, requires a limitPrice. If STOP_LIMIT, requires both.
limitPrice double conditional The highest price at which to buy or the lowest price at which to sell. Required if priceType is LIMIT.
stopPrice double conditional The price at which to buy or sell if specified in a stop order. Required if priceType is STOP.
allOrNone boolean optional If TRUE, the transactions specified in the order must be executed all at once, or not at all. Default is FALSE.
quantity integer required The number of shares to buy or sell
reserveOrder boolean optional If TRUE, publicly displays only a limited number of shares (the reserve quantity), instead of the entire order, to avoid influencing other traders. Default is FALSE. If TRUE, must also specify the reserveQuantity.
reserveQuantity integer conditional The number of shares displayed for a reserve order. This parameter is required if reserveOrder is TRUE.
orderTerm enum required Specifies the term for which the order is in effect. Possible values are:
• GOOD_UNTIL_CANCEL
• GOOD_FOR_DAY
• IMMEDIATE_OR_CANCEL (only for limit orders)
• FILL_OR_KILL (only for limit orders)
Response Properties
Property Type Description
accountId integer Numeric account ID
allOrNone boolean If TRUE, the transactions specified in the order must be executed all at once, or not at all.
estimatedCommission double The cost billed to the user to perform the requested action
estimatedTotalAmount double The cost or proceeds, including broker commission, resulting from the requested action
messageList complex Container for messages describing the result of the action
message complex Container for a result message
   msgDesc string Text of the result message, indicating order status, success or failure, additional requirements that must be met before placing the order, etc. Applications typically display this message to the user, which may result in further user action.
   msgCode integer Standard numeric code of the result message. Refer to the Error Messages documentation for examples. May optionally be displayed to the user, but is primarily intended for internal use.
orderNum integer Numeric ID for this order in the E*TRADE system
orderTime long The time the order was submitted, in epoch time
previewTime long The time of the preview referenced in the change request, if any
previewId long Numeric preview ID
quantity integer The number of shares to buy or sell
reserveOrder boolean If TRUE, this is a reserve order - meaning that only a limited number of shares will be publicly displayed, instead of the entire order, to avoid influencing other traders.
reserveQuantity integer The number of shares to be publicly displayed if this is a reserve order
orderTerm string Specifies the term for which the order is in effect. Possible values are:
• GOOD_UNTIL_CANCEL
• GOOD_FOR_DAY
• IMMEDIATE_OR_CANCEL (only for limit orders)
• FILL_OR_KILL (only for limit orders)
priceType string The type of pricing. Possible values are:
• MARKET
• LIMIT
• STOP
• STOP_LIMIT
• MARKET_ON_CLOSE
limitPrice double The highest price at which to buy or the lowest price at which to sell if specified in a limit order. Returned if priceType is LIMIT.
stopPrice double The price at which a stock is to be bought or sold if specified in a stop order. Returned if priceType is STOP.
symbolDesc string Text description of the security being bought or sold
symbol string The market symbol for the security being bought or sold
orderAction string The action that the broker is requested to perform. Possible values are:
• BUY
• SELL
• BUY_OPEN
• SELL_OPEN
Sample Request
Request URL
POST https://etwssandbox.etrade.com/order/sandbox/rest/placechangeequityorder
Request Parameters - XML
<placeChangeEquityOrder xmlns="http://order.etws.etrade.com">
  <changeEquityOrderRequest>
    <accountId>83405188</accountId>
    <orderNum>14</orderNum>
    <clientOrderId></clientOrderId>
    <previewId></previewId>
    <limitPrice>5</limitPrice>
    <stopPrice></stopPrice>
    <allOrNone></allOrNone>
    <quantity></quantity>
    <reserveOrder></reserveOrder>
    <reserveQuantity></reserveQuantity>
    <priceType>LIMIT</priceType>
    <orderTerm></orderTerm>
  </changeEquityOrderRequest>
</placeChangeEquityOrder>
Request Parameters - JSON
{
  "placeChangeEquityOrder": {
    "-xmlns": "http://order.etws.etrade.com",
    "changeEquityOrderRequest": {
      "accountId": "83405188",
      "orderNum": "14",
      "limitPrice": "5",
      "priceType": "LIMIT"
    }
  }
}
Sample Response - XML
<PlaceChangeEquityOrderResponse>
  <equityOrderResponse>
    <accountId>83405188</accountId>
    <allOrNone>false</allOrNone>
    <estimatedCommission>7.99</estimatedCommission>
    <estimatedTotalAmount>27.99</estimatedTotalAmount>
    <messageList>
      <message>
        <msgDesc>
          Your order was successfully entered during market hours.
        </msgDesc>
        <msgCode>1026</msgCode>
      </message>
    </messageList>
    <orderNum>15</orderNum>
    <orderTime>1269424985364</orderTime>
    <previewTime>0</previewTime>
    <previewId>0</previewId>
    <quantity>4</quantity>
    <reserveOrder>false</reserveOrder>
    <reserveQuantity>0</reserveQuantity>
    <orderTerm>GOOD_FOR_DAY</orderTerm>
    <limitPrice>5</limitPrice>
    <symbolDesc>E TRADE FINANCIAL CORP COM</symbolDesc>
    <symbol>ETFC</symbol>
    <orderAction>BUY</orderAction>
    <priceType>LIMIT</priceType>
  </equityOrderResponse>
</PlaceChangeEquityOrderResponse>
Sample response – JSON
 {
  "PlaceChangeEquityOrderResponse": {
    "equityOrderResponse": {
      "accountId": "83405188",
      "allOrNone": "FALSE",
      "estimatedCommission": "7.99",
      "estimatedTotalAmount": "27.99",
      "messageList": {
        "message": {
          "msgDesc": "
Your order was successfully entered during market hours.
                ",
          "msgCode": "1026"
        }
      },
      "orderNum": "15",
      "orderTime": "1269424985364",
      "previewTime": "0",
      "previewId": "0",
      "quantity": "4",
      "reserveOrder": "FALSE",
      "reserveQuantity": "0",
      "orderTerm": "GOOD_FOR_DAY",
      "limitPrice": "5",
      "symbolDesc": "E TRADE FINANCIAL CORP COM",
      "symbol": "ETFC",
      "orderAction": "BUY",
      "priceType": "LIMIT"
    }
  }
}
Notes
  • For equity and option orders, types STOP and STOP LIMIT represent the "Stop On Quote" and "Stop Limit on Quote" price types offered by E*TRADE, respectively.
  • For equity orders, use limit price for type LIMIT, stop price for type STOP, and both prices for type STOP_LIMIT. For option orders, use limit limit price for type LIMIT, stop price for type STOP, and stop-limit price for type STOP_LIMIT.
  • The clientOrderID element is used to ensure that a duplicate order is not inadvertently submitted. Within a given account, clientOrderID must be unique for every order (regardless of which APIs are used).
Sample use cases
Some possible use-cases and workflows are described below.
Purpose Workflow Related APIs
Change order On the order screen, enable the menu option to place an order only when displaying the order preview. In addition to the order preview (and optionally the original order), show account ID, name, and balances, as well as product fundamentals, intraday, and current (streaming) price info. Confirm that balance is sufficient to cover estimated cost before committing the change. Display response. Get Quote, List Accounts, Get Account Balance, Streaming API
Display order status When placing or changing an order, register for push notifications on the account. Have a listener process on each page appropriately - for instance, be prepared to display order status updates on the completed order display, order list display, or account display. See Notifications and Streaming API documentation for details.
Sandbox Samples

The following is an example of a request and response in the sandbox environment. Note that the HTTP POST method is used.

Request URL
POST https://etwssandbox.etrade.com/order/sandbox/rest/placechangeequityorder
Request Parameters - XML
<placeChangeEquityOrder xmlns="http://order.etws.etrade.com">
  changeEquityOrderRequest>
    <priceType></priceType>
    <orderTerm>GOOD_UNTIL_CANCEL</orderTerm>
    <accountId>83550325</accountId>
    <orderNum>162</orderNum>
    <clientOrderId>asdf1234</clientOrderId>
    <limitPrice></limitPrice>
    <previewId></previewId>
    <stopPrice></stopPrice>
    <allOrNone></allOrNone>
    <quantity></quantity>
    <reserveOrder></reserveOrder>
    <reserveQuantity></reserveQuantity>
  </changeEquityOrderRequest>
</placeChangeEquityOrder>
Response
<PlaceChangeEquityOrderResponse>
  <equityOrderResponse>
    <accountId>83405188</accountId>
    <allOrNone>false</allOrNone>
    <estimatedCommission>5</estimatedCommission>
    <estimatedTotalAmount>77</estimatedTotalAmount>
    <messageList>
      <message>
        <msgDesc>Your order was successfully entered during market hours.</msgDesc>
        <msgCode>1026</msgCode>
      </message>
    </messageList>
    <orderNum>1320</orderNum>
    <orderTime>1267487586056</orderTime>
    <previewTime>0</previewTime>
    <previewId>0</previewId>
    <quantity>4</quantity>
    <reserveOrder>false</reserveOrder>
    <reserveQuantity>0</reserveQuantity>
    <orderTerm>GOOD_FOR_DAY</orderTerm>
    <limitPrice>16</limitPrice>
    <stopPrice>15</stopPrice>
    <symbolDesc>TD AMERITRADE HLDG CORP COM</symbolDesc>
    <symbol>AMTD</symbol>
    <orderAction>BUY</orderAction>
    <priceType>STOP_LIMIT</priceType>
  </equityOrderResponse>
</PlaceChangeEquityOrderResponse>
Related APIs
PLEASE READ THE IMPORTANT DISCLOSURES BELOW

By using E*TRADE API ("API") and accepting the terms of the Application Programming Interface License Agreement and the Application Programming Interface User Agreement, you agree that API may employ security policies, procedures and systems of Third Party providers which may or may not be less stringent and secure than the policies, procedures and systems of E*TRADE Securities LLC ("E*TRADE") or its affiliates. Material provided on API may have been produced by independent third parties not affiliated or endorsed by E*TRADE or its affiliates ("Third Party"). To the extent that API or Third Party providers express opinions or make recommendations, you understand that such opinions or recommendations are expressed by the Third Party provider and are not the opinions or recommendations of E*TRADE or its affiliates. E*TRADE is not responsible for the accuracy of market data displayed on API or made available by Third Party providers. There may be latency between the time an order (or other information) is submitted from API and the time the order is received by E*TRADE. The E*TRADE Two Second Execution Guarantee or any similar guarantee does not apply for orders placed through API and Third Party provider web sites. The E*TRADE CompleteTM Protection Guarantee does not apply. Orders created and submitted through API are not vetted until they are received by E*TRADE. It is possible that E*TRADE may reject an order placed through API. Please see the Application Programming Interface License Agreement and the Application Programming Interface User Agreement for more information.


The E*TRADE family of companies provides financial services including trading, investing, and related banking products and services to retail investors.


Securities products and services offered by E*TRADE Securities LLC, Member FINRA/SIPC.


System response and account access times may vary due to a variety of factors, including trading volumes, market conditions, system performance, and other factors.