Sample code for 30+ languages & platforms
Lua

ETrade List Transactions

See more ETrade Examples

Gets transactions for the selected brokerage account.

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

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

local http = chilkat.Http.new()

http.oauth1 = true
http.oauth_verifier = ""
http.oauth_consumer_key = "ETRADE_CONSUMER_KEY"
http.oauth_consumer_secret = "ETRADE_CONSUMER_SECRET"

-- Load the access token previously obtained via the OAuth1 Authorization
local jsonToken = chilkat.JsonObject.new()
local success = jsonToken:load_file("qa_data/tokens/etrade.json")
if not success then
    print("Failed to load OAuth1 token")
    return
end

http.oauth_token = jsonToken:string_of("oauth_token")
http.oauth_token_secret = jsonToken:string_of("oauth_token_secret")

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

http:set_url_var("accountIdKey", "6_Dpy0rmuQ9cu9IbTfvF2A")

local resp = chilkat.HttpResponse.new()
success = http:http_no_body("GET", sandboxUrl, resp)
if not success then
    print(http.last_error_text)
    return
end

-- Make sure a successful response was received.
if resp.status_code > 200 then
    print(resp.status_line)
    print(resp.header)
    print(resp.body_str)
    return
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>

local xml = chilkat.Xml.new()
xml:load_xml(resp.body_str)
print(xml:get_xml())

local transactionId = ""
local accountId = 0
local transactionDate = ""
local postDate = ""
local amount = 0
local description = ""
local description2 = 0
local transactionType = ""
local imageFlag = ""
local instType = ""
local quantity = 0
local price = 0
local settlementCurrency = ""
local paymentCurrency = ""
local fee = 0
local settlementDate = ""
local detailsURI = ""

local i = 0
local count_i = xml:num_children_having_tag("Transaction")
while i < count_i do
    xml.i = i
    transactionId = xml:get_child_content("Transaction[i]|transactionId")
    accountId = xml:get_child_int_value("Transaction[i]|accountId")
    transactionDate = xml:get_child_content("Transaction[i]|transactionDate")
    postDate = xml:get_child_content("Transaction[i]|postDate")
    amount = xml:get_child_int_value("Transaction[i]|amount")
    description = xml:get_child_content("Transaction[i]|description")
    description2 = xml:get_child_int_value("Transaction[i]|description2")
    transactionType = xml:get_child_content("Transaction[i]|transactionType")
    imageFlag = xml:get_child_content("Transaction[i]|imageFlag")
    instType = xml:get_child_content("Transaction[i]|instType")
    quantity = xml:get_child_int_value("Transaction[i]|brokerage|quantity")
    price = xml:get_child_int_value("Transaction[i]|brokerage|price")
    settlementCurrency = xml:get_child_content("Transaction[i]|brokerage|settlementCurrency")
    paymentCurrency = xml:get_child_content("Transaction[i]|brokerage|paymentCurrency")
    fee = xml:get_child_int_value("Transaction[i]|brokerage|fee")
    settlementDate = xml:get_child_content("Transaction[i]|brokerage|settlementDate")
    detailsURI = xml:get_child_content("Transaction[i]|detailsURI")
    i = i + 1
end

local pageMarkers = xml:get_child_content("pageMarkers")
local moreTransactions = xml:get_child_content("moreTransactions")
local transactionCount = xml:get_child_int_value("transactionCount")
local totalCount = xml:get_child_int_value("totalCount")

print("Success.")