Sample code for 30+ languages & platforms
Dart

ETrade v1 Preview Order

See more HTTP Misc Examples

Gets the order details for a selected brokerage account based on the search criteria provided.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // This example requires the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  final http = CkHttp();

  http.oAuth1 = true;
  http.oAuthVerifier = '';
  http.oAuthConsumerKey = 'ETRADE_CONSUMER_KEY';
  http.oAuthConsumerSecret = 'ETRADE_CONSUMER_SECRET';

  // Load the access token previously obtained via the OAuth1 3-Legged Authorization examples Step1 and Step2.
  final json = CkJsonObject();
  try {
    json.loadFile('qa_data/tokens/etrade.json');
  } on ChilkatException {
    print('Failed to load OAuth1 token');
    return;
  }

  http.oAuthToken = json.stringOf('oauth_token');
  http.oAuthTokenSecret = json.stringOf('oauth_token_secret');

  // See the ETrade v1 API documentation HERE.

  // Sample XML Request
  // Use this online tool to generate the code from sample XML: 
  // Generate Code to Create XML

  // <?xml version="1.0" encoding="UTF-8"?>
  // <PreviewOrderRequest>
  //    <orderType>EQ</orderType>
  //    <clientOrderId>sdfer333</clientOrderId>
  //    <Order>
  //       <allOrNone>false</allOrNone>
  //       <priceType>LIMIT</priceType>
  //       <orderTerm>GOOD_FOR_DAY</orderTerm>
  //       <marketSession>REGULAR</marketSession>
  //       <stopPrice />
  //       <limitPrice>188.51</limitPrice>
  //       <Instrument>
  //          <Product>
  //             <securityType>EQ</securityType>
  //             <symbol>FB</symbol>
  //          </Product>
  //          <orderAction>BUY</orderAction>
  //          <quantityType>QUANTITY</quantityType>
  //          <quantity>10</quantity>
  //       </Instrument>
  //    </Order>
  // </PreviewOrderRequest>

  final xml = CkXml();
  xml.tag = 'PreviewOrderRequest';
  xml.updateChildContent('orderType', 'EQ');
  xml.updateChildContent('clientOrderId', 'sdfer333');
  xml.updateChildContent('Order|allOrNone', 'false');
  xml.updateChildContent('Order|priceType', 'LIMIT');
  xml.updateChildContent('Order|orderTerm', 'GOOD_FOR_DAY');
  xml.updateChildContent('Order|marketSession', 'REGULAR');
  xml.updateChildContent('Order|stopPrice', '');
  xml.updateChildContent('Order|limitPrice', '188.51');
  xml.updateChildContent('Order|Instrument|Product|securityType', 'EQ');
  xml.updateChildContent('Order|Instrument|Product|symbol', 'FB');
  xml.updateChildContent('Order|Instrument|orderAction', 'BUY');
  xml.updateChildContent('Order|Instrument|quantityType', 'QUANTITY');
  xml.updateChildContent('Order|Instrument|quantity', '10');

  final xmlContent = xml.getXml();
  final endpointUrl = 'https://apisb.etrade.com/v1/accounts/{accountIdKey}/orders/preview';

  final resp = CkHttpResponse();
  try {
    http.httpStr('POST', endpointUrl, xmlContent, 'utf-8', 'application/xml', resp);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // A 200 status code indicates success.
  final statusCode = resp.statusCode;
  print('statusCode = $statusCode');

  // Use the following online tool to generate parsing code from sample XML: 
  // Generate Parsing Code from XML

  // A sample XML response is shown below...

  xml.loadXml(resp.bodyStr);

  final tagPath = '';
  var i = 0;
  var code = 0;
  var description = '';
  var vType = '';

  final orderType = xml.getChildContent('orderType');
  final totalOrderValue = xml.getChildContent('totalOrderValue');
  final orderTerm = xml.getChildContent('Order|orderTerm');
  final priceType = xml.getChildContent('Order|priceType');
  final limitPrice = xml.getChildContent('Order|limitPrice');
  final stopPrice = xml.getChildIntValue('Order|stopPrice');
  final marketSession = xml.getChildContent('Order|marketSession');
  final allOrNone = xml.getChildContent('Order|allOrNone');
  final symbol = xml.getChildContent('Order|Instrument|Product|symbol');
  final securityType = xml.getChildContent('Order|Instrument|Product|securityType');
  final symbolDescription = xml.getChildContent('Order|Instrument|symbolDescription');
  final orderAction = xml.getChildContent('Order|Instrument|orderAction');
  final quantityType = xml.getChildContent('Order|Instrument|quantityType');
  final quantity = xml.getChildIntValue('Order|Instrument|quantity');
  final cancelQuantity = xml.getChildContent('Order|Instrument|cancelQuantity');
  final reserveOrder = xml.getChildContent('Order|Instrument|reserveOrder');
  final reserveQuantity = xml.getChildContent('Order|Instrument|reserveQuantity');
  i = 0;
  final countI = xml.numChildrenHavingTag('Order|messages|Message');
  while (i < countI) {
    xml.i = i;
    code = xml.getChildIntValue('Order|messages|Message[i]|code');
    description = xml.getChildContent('Order|messages|Message[i]|description');
    vType = xml.getChildContent('Order|messages|Message[i]|type');
    i++;
  }

  final egQual = xml.getChildContent('Order|egQual');
  final estimatedCommission = xml.getChildContent('Order|estimatedCommission');
  final estimatedTotalAmount = xml.getChildContent('Order|estimatedTotalAmount');
  final netPrice = xml.getChildIntValue('Order|netPrice');
  final netBid = xml.getChildIntValue('Order|netBid');
  final netAsk = xml.getChildIntValue('Order|netAsk');
  final gcd = xml.getChildIntValue('Order|gcd');
  final previewId = xml.getChildIntValue('PreviewIds|previewId');
  final previewTime = xml.getChildContent('previewTime');
  final dstFlag = xml.getChildContent('dstFlag');
  final accountId = xml.getChildIntValue('accountId');
  final optionLevelCd = xml.getChildIntValue('optionLevelCd');
  final marginLevelCd = xml.getChildContent('marginLevelCd');
  final ahDisclosureFlag = xml.getChildContent('Disclosure|ahDisclosureFlag');
  final aoDisclosureFlag = xml.getChildContent('Disclosure|aoDisclosureFlag');
  final conditionalDisclosureFlag = xml.getChildContent('Disclosure|conditionalDisclosureFlag');
  final ehDisclosureFlag = xml.getChildContent('Disclosure|ehDisclosureFlag');
  final marginBuyingPower = xml.getChildContent('marginBuyingPower');

  // Sample XML Response

  // <?xml version="1.0" encoding="UTF-8"?>
  // <PreviewOrderResponse>
  //    <orderType>EQ</orderType>
  //    <totalOrderValue>1892.05</totalOrderValue>
  //    <Order>
  //       <orderTerm>GOOD_FOR_DAY</orderTerm>
  //       <priceType>LIMIT</priceType>
  //       <limitPrice>188.51</limitPrice>
  //       <stopPrice>0</stopPrice>
  //       <marketSession>REGULAR</marketSession>
  //       <allOrNone>false</allOrNone>
  //       <Instrument>
  //          <Product>
  //             <symbol>FB</symbol>
  //             <securityType>EQ</securityType>
  //          </Product>
  //          <symbolDescription>FACEBOOK INC CL A</symbolDescription>
  //          <orderAction>BUY</orderAction>
  //          <quantityType>QUANTITY</quantityType>
  //          <quantity>10</quantity>
  //          <cancelQuantity>0.0</cancelQuantity>
  //          <reserveOrder>true</reserveOrder>
  //          <reserveQuantity>0.0</reserveQuantity>
  //       </Instrument>
  //       <messages>
  //          <Message>
  //             <code>1042</code>
  //             <description>200|You have an existing open order for this security on the same side of the market. If you did not intend to place a second order for this security, please modify your order now.</description>
  //             <type>WARNING</type>
  //          </Message>
  //          <Message>
  //             <code>3093</code>
  //             <description>Position Concentrated.</description>
  //             <type>WARNING</type>
  //          </Message>
  //       </messages>
  //       <egQual>EG_QUAL_NOT_A_MARKET_ORDER</egQual>
  //       <estimatedCommission>6.95</estimatedCommission>
  //       <estimatedTotalAmount>1892.05</estimatedTotalAmount>
  //       <netPrice>0</netPrice>
  //       <netBid>0</netBid>
  //       <netAsk>0</netAsk>
  //       <gcd>0</gcd>
  //       <ratio />
  //    </Order>
  //    <PreviewIds>
  //       <previewId>1020563279</previewId>
  //    </PreviewIds>
  //    <previewTime>1529018458516</previewTime>
  //    <dstFlag>true</dstFlag>
  //    <accountId>84246841</accountId>
  //    <optionLevelCd>4</optionLevelCd>
  //    <marginLevelCd>MARGIN_TRADING_ALLOWED</marginLevelCd>
  //    <Disclosure>
  //       <ahDisclosureFlag>false</ahDisclosureFlag>
  //       <aoDisclosureFlag>false</aoDisclosureFlag>
  //       <conditionalDisclosureFlag>true</conditionalDisclosureFlag>
  //       <ehDisclosureFlag>false</ehDisclosureFlag>
  //    </Disclosure>
  //    <marginBuyingPower>86758.05</marginBuyingPower>
  // </PreviewOrderResponse>
}