Sample code for 30+ languages & platforms
Ruby

ETrade List Transactions

See more ETrade Examples

Gets transactions for the selected brokerage account.

Chilkat Ruby Downloads

Ruby
require 'chilkat'

success = false

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

http = Chilkat::CkHttp.new()

http.put_OAuth1(true)
http.put_OAuthVerifier("")
http.put_OAuthConsumerKey("ETRADE_CONSUMER_KEY")
http.put_OAuthConsumerSecret("ETRADE_CONSUMER_SECRET")

# Load the access token previously obtained via the OAuth1 Authorization
jsonToken = Chilkat::CkJsonObject.new()
success = jsonToken.LoadFile("qa_data/tokens/etrade.json")
if (success != true)
    print "Failed to load OAuth1 token" + "\n";
    exit
end

http.put_OAuthToken(jsonToken.stringOf("oauth_token"))
http.put_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 = Chilkat::CkHttpResponse.new()
success = http.HttpNoBody("GET",sandboxUrl,resp)
if (success == false)
    print http.lastErrorText() + "\n";
    exit
end

# Make sure a successful response was received.
if (resp.get_StatusCode() > 200)
    print resp.statusLine() + "\n";
    print resp.header() + "\n";
    print resp.bodyStr() + "\n";
    exit
end

# 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 = Chilkat::CkXml.new()
xml.LoadXml(resp.bodyStr())
print xml.getXml() + "\n";

i = 0
count_i = xml.NumChildrenHavingTag("Transaction")
while i < count_i
    xml.put_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
end
pageMarkers = xml.getChildContent("pageMarkers")
moreTransactions = xml.getChildContent("moreTransactions")
transactionCount = xml.GetChildIntValue("transactionCount")
totalCount = xml.GetChildIntValue("totalCount")

print "Success." + "\n";