Sample code for 30+ languages & platforms
PHP ActiveX

ETrade List Transactions

See more ETrade Examples

Gets transactions for the selected brokerage account.

Chilkat PHP ActiveX Downloads

PHP ActiveX
<?php

$success = 0;

// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

$http = new COM("Chilkat.Http");

$http->OAuth1 = 1;
$http->OAuthVerifier = '';
$http->OAuthConsumerKey = 'ETRADE_CONSUMER_KEY';
$http->OAuthConsumerSecret = 'ETRADE_CONSUMER_SECRET';

// Load the access token previously obtained via the OAuth1 Authorization
$jsonToken = new COM("Chilkat.JsonObject");
$success = $jsonToken->LoadFile('qa_data/tokens/etrade.json');
if ($success != 1) {
    print 'Failed to load OAuth1 token' . "\n";
    exit;
}

$http->OAuthToken = $jsonToken->stringOf('oauth_token');
$http->OAuthTokenSecret = $jsonToken->stringOf('oauth_token_secret');

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

$http->SetUrlVar('accountIdKey','6_Dpy0rmuQ9cu9IbTfvF2A');

$resp = new COM("Chilkat.HttpResponse");
$success = $http->HttpNoBody('GET',$sandboxUrl,$resp);
if ($success == 0) {
    print $http->LastErrorText . "\n";
    exit;
}

// Make sure a successful response was received.
if ($resp->StatusCode > 200) {
    print $resp->StatusLine . "\n";
    print $resp->Header . "\n";
    print $resp->BodyStr . "\n";
    exit;
}

// 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>

$xml = new COM("Chilkat.Xml");
$xml->LoadXml($resp->BodyStr);
print $xml->getXml() . "\n";

$i = 0;
$count_i = $xml->NumChildrenHavingTag('Transaction');
while ($i < $count_i) {
    $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 = $i + 1;
}

$pageMarkers = $xml->getChildContent('pageMarkers');
$moreTransactions = $xml->getChildContent('moreTransactions');
$transactionCount = $xml->GetChildIntValue('transactionCount');
$totalCount = $xml->GetChildIntValue('totalCount');

print 'Success.' . "\n";

?>