Sample code for 30+ languages & platforms
Xbase++

ETrade List Transactions

See more ETrade Examples

Gets transactions for the selected brokerage account.

Chilkat Xbase++ Downloads

Xbase++
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()