Xbase++
Xbase++
ETrade List Transactions
See more ETrade Examples
Gets transactions for the selected brokerage account.Chilkat Xbase++ Downloads
LOCAL nSuccess
LOCAL oHttp
LOCAL oJsonToken
LOCAL cSandboxUrl
LOCAL cLiveUrl
LOCAL oResp
LOCAL oXml
LOCAL cTransactionId
LOCAL nAccountId
LOCAL cTransactionDate
LOCAL cPostDate
LOCAL nAmount
LOCAL cDescription
LOCAL nDescription2
LOCAL cTransactionType
LOCAL cImageFlag
LOCAL cInstType
LOCAL nQuantity
LOCAL nPrice
LOCAL cSettlementCurrency
LOCAL cPaymentCurrency
LOCAL nFee
LOCAL cSettlementDate
LOCAL cDetailsURI
LOCAL cPageMarkers
LOCAL cMoreTransactions
LOCAL nTransactionCount
LOCAL nTotalCount
LOCAL i
LOCAL nCount_i
nSuccess := 0
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
oHttp := CreateObject("Chilkat.Http")
oHttp:OAuth1 := 1
oHttp:OAuthVerifier := ""
oHttp:OAuthConsumerKey := "ETRADE_CONSUMER_KEY"
oHttp:OAuthConsumerSecret := "ETRADE_CONSUMER_SECRET"
// Load the access token previously obtained via the OAuth1 Authorization
oJsonToken := CreateObject("Chilkat.JsonObject")
nSuccess := oJsonToken:LoadFile("qa_data/tokens/etrade.json")
IF (nSuccess != 1)
? "Failed to load OAuth1 token"
oHttp:destroy()
oJsonToken:destroy()
RETURN
ENDIF
oHttp:OAuthToken := oJsonToken:StringOf("oauth_token")
oHttp:OAuthTokenSecret := oJsonToken:StringOf("oauth_token_secret")
cSandboxUrl := "https://apisb.etrade.com/v1/accounts/{$accountIdKey}/transactions"
cLiveUrl := "https://api.etrade.com/v1/accounts/{$accountIdKey}/transactions"
oHttp:SetUrlVar("accountIdKey", "6_Dpy0rmuQ9cu9IbTfvF2A")
oResp := CreateObject("Chilkat.HttpResponse")
nSuccess := oHttp:HttpNoBody("GET", cSandboxUrl, oResp)
IF (nSuccess == 0)
? oHttp:LastErrorText
oHttp:destroy()
oJsonToken:destroy()
oResp:destroy()
RETURN
ENDIF
// Make sure a successful response was received.
IF (oResp:StatusCode > 200)
? oResp:StatusLine
? oResp:Header
? oResp:BodyStr
oHttp:destroy()
oJsonToken:destroy()
oResp:destroy()
RETURN
ENDIF
// 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>
oXml := CreateObject("Chilkat.Xml")
oXml:LoadXml(oResp:BodyStr)
? oXml:GetXml()
i := 0
nCount_i := oXml:NumChildrenHavingTag("Transaction")
DO WHILE i < nCount_i
oXml:I := i
cTransactionId := oXml:GetChildContent("Transaction[i]|transactionId")
nAccountId := oXml:GetChildIntValue("Transaction[i]|accountId")
cTransactionDate := oXml:GetChildContent("Transaction[i]|transactionDate")
cPostDate := oXml:GetChildContent("Transaction[i]|postDate")
nAmount := oXml:GetChildIntValue("Transaction[i]|amount")
cDescription := oXml:GetChildContent("Transaction[i]|description")
nDescription2 := oXml:GetChildIntValue("Transaction[i]|description2")
cTransactionType := oXml:GetChildContent("Transaction[i]|transactionType")
cImageFlag := oXml:GetChildContent("Transaction[i]|imageFlag")
cInstType := oXml:GetChildContent("Transaction[i]|instType")
nQuantity := oXml:GetChildIntValue("Transaction[i]|brokerage|quantity")
nPrice := oXml:GetChildIntValue("Transaction[i]|brokerage|price")
cSettlementCurrency := oXml:GetChildContent("Transaction[i]|brokerage|settlementCurrency")
cPaymentCurrency := oXml:GetChildContent("Transaction[i]|brokerage|paymentCurrency")
nFee := oXml:GetChildIntValue("Transaction[i]|brokerage|fee")
cSettlementDate := oXml:GetChildContent("Transaction[i]|brokerage|settlementDate")
cDetailsURI := oXml:GetChildContent("Transaction[i]|detailsURI")
i := i + 1
ENDDO
cPageMarkers := oXml:GetChildContent("pageMarkers")
cMoreTransactions := oXml:GetChildContent("moreTransactions")
nTransactionCount := oXml:GetChildIntValue("transactionCount")
nTotalCount := oXml:GetChildIntValue("totalCount")
? "Success."
oHttp:destroy()
oJsonToken:destroy()
oResp:destroy()
oXml:destroy()