Sample code for 30+ languages & platforms
Dart

ETrade List Transactions

See more ETrade Examples

Gets transactions for the selected brokerage account.

Chilkat Dart Downloads

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

void main() {
  // This 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 Authorization
  final jsonToken = CkJsonObject();
  try {
    jsonToken.loadFile('qa_data/tokens/etrade.json');
  } on ChilkatException {
    print('Failed to load OAuth1 token');
    return;
  }

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

  final sandboxUrl = 'https://apisb.etrade.com/v1/accounts/{\$accountIdKey}/transactions';
  final liveUrl = 'https://api.etrade.com/v1/accounts/{\$accountIdKey}/transactions';

  http.setUrlVar('accountIdKey', '6_Dpy0rmuQ9cu9IbTfvF2A');

  final resp = CkHttpResponse();
  try {
    http.httpNoBody('GET', sandboxUrl, resp);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // Make sure a successful response was received.
  if (resp.statusCode > 200) {
    print(resp.statusLine);
    print(resp.header);
    print(resp.bodyStr);
    return;
  }

  // Sample XML response:

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

  // <?xml version="1.0" encoding="UTF-8"?>
  // <TransactionListResponse>
  //    <Transaction>
  //       <transactionId>18165100001766</transactionId>
  //       <accountId>83564979</accountId>
  //       <transactionDate>1528948800000</transactionDate>
  //       <postDate>1528948800000</postDate>
  //       <amount>-2</amount>
  //       <description>ACH WITHDRAWL REFID:109187276;</description>
  //       <description2>109187276</description2>
  //       <transactionType>Transfer</transactionType>
  //       <memo />
  //       <imageFlag>false</imageFlag>
  //       <instType>BROKERAGE</instType>
  //       <brokerage>
  //          <product />
  //          <quantity>0</quantity>
  //          <price>0</price>
  //          <settlementCurrency>USD</settlementCurrency>
  //          <paymentCurrency>USD</paymentCurrency>
  //          <fee>0</fee>
  //          <settlementDate>1528948800000</settlementDate>
  //       </brokerage>
  //       <detailsURI>https://api.etrade.com/v1/accounts/yIFaUoJ81qyAhgxLWRQ42g/transactions/18165100001766</detailsURI>
  //    </Transaction>
  //    <Transaction>
  //       <transactionId>18158100000983</transactionId>
  //       <accountId>83564979</accountId>
  //       <transactionDate>1528344000000</transactionDate>
  //       <postDate>1528344000000</postDate>
  //       <amount>-2</amount>
  //       <description>ACH WITHDRAWL REFID:98655276;</description>
  //       <description2>98655276</description2>
  //       <transactionType>Transfer</transactionType>
  //       <memo />
  //       <imageFlag>false</imageFlag>
  //       <instType>BROKERAGE</instType>
  //       <brokerage>
  //          <product />
  //          <quantity>0</quantity>
  //          <price>0</price>
  //          <settlementCurrency>USD</settlementCurrency>
  //          <paymentCurrency>USD</paymentCurrency>
  //          <fee>0</fee>
  //          <settlementDate>1528344000000</settlementDate>
  //       </brokerage>
  //       <detailsURI>https://api.etrade.com/v1/accounts/yIFaUoJ81qyAhgxLWRQ42g/transactions/18158100000983</detailsURI>
  //    </Transaction>
  //    <pageMarkers>eNpTsAlITE91zi%2FNK%2FHMc04syi8tTs2xM7TRxybMpWATkl%2BSmBOUmpxflAKWtTO10ccQg6mDmwEyEE0EqAbE8SvNTUotCk4tLE3NS061M9Ax0DEEYgOIA9BkuRQgmjxTfDKLQUYoQAV8E4uyU4vsDC0MzUwNDYDA0NzMrKamBmIKVJYLphpiKsyTUB7IbH1kwwFa7F0D</pageMarkers>
  //    <moreTransactions>false</moreTransactions>
  //    <transactionCount>5</transactionCount>
  //    <totalCount>5</totalCount>
  // </TransactionListResponse>

  final xml = CkXml();
  xml.loadXml(resp.bodyStr);
  print(xml.getXml());

  var transactionId = '';
  var accountId = 0;
  var transactionDate = '';
  var postDate = '';
  var amount = 0;
  var description = '';
  var description2 = 0;
  var transactionType = '';
  var imageFlag = '';
  var instType = '';
  var quantity = 0;
  var price = 0;
  var settlementCurrency = '';
  var paymentCurrency = '';
  var fee = 0;
  var settlementDate = '';
  var detailsURI = '';

  var i = 0;
  final countI = xml.numChildrenHavingTag('Transaction');
  while (i < countI) {
    xml.i = i;
    transactionId = xml.getChildContent('Transaction[i]|transactionId');
    accountId = xml.getChildIntValue('Transaction[i]|accountId');
    transactionDate = xml.getChildContent('Transaction[i]|transactionDate');
    postDate = xml.getChildContent('Transaction[i]|postDate');
    amount = xml.getChildIntValue('Transaction[i]|amount');
    description = xml.getChildContent('Transaction[i]|description');
    description2 = xml.getChildIntValue('Transaction[i]|description2');
    transactionType = xml.getChildContent('Transaction[i]|transactionType');
    imageFlag = xml.getChildContent('Transaction[i]|imageFlag');
    instType = xml.getChildContent('Transaction[i]|instType');
    quantity = xml.getChildIntValue('Transaction[i]|brokerage|quantity');
    price = xml.getChildIntValue('Transaction[i]|brokerage|price');
    settlementCurrency = xml.getChildContent('Transaction[i]|brokerage|settlementCurrency');
    paymentCurrency = xml.getChildContent('Transaction[i]|brokerage|paymentCurrency');
    fee = xml.getChildIntValue('Transaction[i]|brokerage|fee');
    settlementDate = xml.getChildContent('Transaction[i]|brokerage|settlementDate');
    detailsURI = xml.getChildContent('Transaction[i]|detailsURI');
    i++;
  }

  final pageMarkers = xml.getChildContent('pageMarkers');
  final moreTransactions = xml.getChildContent('moreTransactions');
  final transactionCount = xml.getChildIntValue('transactionCount');
  final totalCount = xml.getChildIntValue('totalCount');

  print('Success.');
}