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
E*TRADE Developer Platform 166 Place Equity Order Change
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 alimitPrice
. If STOP_LIMIT, requires both. limitPrice double conditional The highest price at which to buy or the lowest price atwhich 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.
E*TRADE Developer Platform 167 Place Equity Order Change
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/placechangeequityorderE*TRADE Developer Platform 168 Place Equity Order Change
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>
E*TRADE Developer Platform 169 Place Equity Order Change <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 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.
E*TRADE Developer Platform 170 Place Equity Order Change
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.