Tcl
Tcl
ETrade List Transactions
See more ETrade Examples
Gets transactions for the selected brokerage account.Chilkat Tcl Downloads
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