Xbase++
Xbase++
ETrade List Accounts
See more ETrade Examples
Returns a list of E*TRADE accounts for the current user.Chilkat Xbase++ Downloads
LOCAL nSuccess
LOCAL oHttp
LOCAL oJsonToken
LOCAL cSandboxUrl
LOCAL cLiveUrl
LOCAL oResp
LOCAL oXml
LOCAL nAccountId
LOCAL cAccountIdKey
LOCAL cAccountMode
LOCAL cAccountDesc
LOCAL cAccountName
LOCAL cAccountType
LOCAL cInstitutionType
LOCAL cAccountStatus
LOCAL nClosedDate
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/list"
cLiveUrl := "https://api.etrade.com/v1/accounts/list"
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 >= 300)
? oResp:StatusLine
? oResp:Header
? oResp:BodyStr
oHttp:destroy()
oJsonToken:destroy()
oResp:destroy()
RETURN
ENDIF
IF (oResp:StatusCode == 204)
? "No records available."
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" standalone="yes"?>
// <AccountListResponse>
// <Accounts>
// <Account>
// <accountId>82314598</accountId>
// <accountIdKey>dBZOKt9xDrtRSAOl4MSiiA</accountIdKey>
// <accountMode>IRA</accountMode>
// <accountDesc>Brokerage</accountDesc>
// <accountName>NickName-1</accountName>
// <accountType>MARGIN</accountType>
// <institutionType>BROKERAGE</institutionType>
// <accountStatus>ACTIVE</accountStatus>
// <closedDate>0</closedDate>
// </Account>
// <Account>
// <accountId>58315636</accountId>
// <accountIdKey>vQMsebA1H5WltUfDkJP48g</accountIdKey>
// <accountMode>BROKERAGE</accountMode>
// <accountDesc>Complete Savings</accountDesc>
// <accountName>NickName-2</accountName>
// <accountType>INDIVIDUAL</accountType>
// <institutionType>BROKERAGE</institutionType>
// <accountStatus>ACTIVE</accountStatus>
// <closedDate>0</closedDate>
// </Account>
// <Account>
// <accountId>70700418</accountId>
// <accountIdKey>6_Dpy0rmuQ9cu9IbTfvF2A</accountIdKey>
// <accountMode>CASH</accountMode>
// <accountDesc>INDIVIDUAL</accountDesc>
// <accountName>NickName-3</accountName>
// <accountType>INDIVIDUAL</accountType>
// <institutionType>BROKERAGE</institutionType>
// <accountStatus>ACTIVE</accountStatus>
// <closedDate>0</closedDate>
// </Account>
// <Account>
// <accountId>83515143</accountId>
// <accountIdKey>xj1Dc18FTqWPqkEEVUr5rw</accountIdKey>
// <accountMode>CASH</accountMode>
// <accountDesc>INDIVIDUAL</accountDesc>
// <accountName/>
// <accountType>CASH</accountType>
// <institutionType>BROKERAGE</institutionType>
// <accountStatus>CLOSED</accountStatus>
// <closedDate>1521027780</closedDate>
//
// </Account>
// </Accounts>
// </AccountListResponse>
oXml := CreateObject("Chilkat.Xml")
oXml:LoadXml(oResp:BodyStr)
? oXml:GetXml()
i := 0
nCount_i := oXml:NumChildrenHavingTag("Accounts|Account")
DO WHILE i < nCount_i
oXml:I := i
nAccountId := oXml:GetChildIntValue("Accounts|Account[i]|accountId")
cAccountIdKey := oXml:GetChildContent("Accounts|Account[i]|accountIdKey")
cAccountMode := oXml:GetChildContent("Accounts|Account[i]|accountMode")
cAccountDesc := oXml:GetChildContent("Accounts|Account[i]|accountDesc")
cAccountName := oXml:GetChildContent("Accounts|Account[i]|accountName")
cAccountType := oXml:GetChildContent("Accounts|Account[i]|accountType")
cInstitutionType := oXml:GetChildContent("Accounts|Account[i]|institutionType")
cAccountStatus := oXml:GetChildContent("Accounts|Account[i]|accountStatus")
nClosedDate := oXml:GetChildIntValue("Accounts|Account[i]|closedDate")
i := i + 1
ENDDO
? "Success."
oHttp:destroy()
oJsonToken:destroy()
oResp:destroy()
oXml:destroy()