Sample code for 30+ languages & platforms
Tcl

ETrade List Transactions

See more ETrade Examples

Gets transactions for the selected brokerage account.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

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

set http [new_CkHttp]

CkHttp_put_OAuth1 $http 1
CkHttp_put_OAuthVerifier $http ""
CkHttp_put_OAuthConsumerKey $http "ETRADE_CONSUMER_KEY"
CkHttp_put_OAuthConsumerSecret $http "ETRADE_CONSUMER_SECRET"

# Load the access token previously obtained via the OAuth1 Authorization
set jsonToken [new_CkJsonObject]

set success [CkJsonObject_LoadFile $jsonToken "qa_data/tokens/etrade.json"]
if {$success != 1} then {
    puts "Failed to load OAuth1 token"
    delete_CkHttp $http
    delete_CkJsonObject $jsonToken
    exit
}

CkHttp_put_OAuthToken $http [CkJsonObject_stringOf $jsonToken "oauth_token"]
CkHttp_put_OAuthTokenSecret $http [CkJsonObject_stringOf $jsonToken "oauth_token_secret"]

set sandboxUrl "https://apisb.etrade.com/v1/accounts/{$accountIdKey}/transactions"
set liveUrl "https://api.etrade.com/v1/accounts/{$accountIdKey}/transactions"

CkHttp_SetUrlVar $http "accountIdKey" "6_Dpy0rmuQ9cu9IbTfvF2A"

set resp [new_CkHttpResponse]

set success [CkHttp_HttpNoBody $http "GET" $sandboxUrl $resp]
if {$success == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttp $http
    delete_CkJsonObject $jsonToken
    delete_CkHttpResponse $resp
    exit
}

# Make sure a successful response was received.
if {[CkHttpResponse_get_StatusCode $resp] > 200} then {
    puts [CkHttpResponse_statusLine $resp]
    puts [CkHttpResponse_header $resp]
    puts [CkHttpResponse_bodyStr $resp]
    delete_CkHttp $http
    delete_CkJsonObject $jsonToken
    delete_CkHttpResponse $resp
    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>

set xml [new_CkXml]

CkXml_LoadXml $xml [CkHttpResponse_bodyStr $resp]
puts [CkXml_getXml $xml]

set i 0
set count_i [CkXml_NumChildrenHavingTag $xml "Transaction"]
while {$i < $count_i} {
    CkXml_put_I $xml $i
    set transactionId [CkXml_getChildContent $xml "Transaction[i]|transactionId"]
    set accountId [CkXml_GetChildIntValue $xml "Transaction[i]|accountId"]
    set transactionDate [CkXml_getChildContent $xml "Transaction[i]|transactionDate"]
    set postDate [CkXml_getChildContent $xml "Transaction[i]|postDate"]
    set amount [CkXml_GetChildIntValue $xml "Transaction[i]|amount"]
    set description [CkXml_getChildContent $xml "Transaction[i]|description"]
    set description2 [CkXml_GetChildIntValue $xml "Transaction[i]|description2"]
    set transactionType [CkXml_getChildContent $xml "Transaction[i]|transactionType"]
    set imageFlag [CkXml_getChildContent $xml "Transaction[i]|imageFlag"]
    set instType [CkXml_getChildContent $xml "Transaction[i]|instType"]
    set quantity [CkXml_GetChildIntValue $xml "Transaction[i]|brokerage|quantity"]
    set price [CkXml_GetChildIntValue $xml "Transaction[i]|brokerage|price"]
    set settlementCurrency [CkXml_getChildContent $xml "Transaction[i]|brokerage|settlementCurrency"]
    set paymentCurrency [CkXml_getChildContent $xml "Transaction[i]|brokerage|paymentCurrency"]
    set fee [CkXml_GetChildIntValue $xml "Transaction[i]|brokerage|fee"]
    set settlementDate [CkXml_getChildContent $xml "Transaction[i]|brokerage|settlementDate"]
    set detailsURI [CkXml_getChildContent $xml "Transaction[i]|detailsURI"]
    set i [expr $i + 1]
}
set pageMarkers [CkXml_getChildContent $xml "pageMarkers"]
set moreTransactions [CkXml_getChildContent $xml "moreTransactions"]
set transactionCount [CkXml_GetChildIntValue $xml "transactionCount"]
set totalCount [CkXml_GetChildIntValue $xml "totalCount"]

puts "Success."

delete_CkHttp $http
delete_CkJsonObject $jsonToken
delete_CkHttpResponse $resp
delete_CkXml $xml