Sample code for 30+ languages & platforms
PowerBuilder

ETrade List Accounts

See more ETrade Examples

Returns a list of E*TRADE accounts for the current user.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Http
oleobject loo_JsonToken
string ls_SandboxUrl
string ls_LiveUrl
oleobject loo_Resp
oleobject loo_Xml
integer li_AccountId
string ls_AccountIdKey
string ls_AccountMode
string ls_AccountDesc
string ls_AccountName
string ls_AccountType
string ls_InstitutionType
string ls_AccountStatus
integer li_ClosedDate
integer i
integer li_Count_i

li_Success = 0

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

loo_Http = create oleobject
li_rc = loo_Http.ConnectToNewObject("Chilkat.Http")
if li_rc < 0 then
    destroy loo_Http
    MessageBox("Error","Connecting to COM object failed")
    return
end if

loo_Http.OAuth1 = 1
loo_Http.OAuthVerifier = ""
loo_Http.OAuthConsumerKey = "ETRADE_CONSUMER_KEY"
loo_Http.OAuthConsumerSecret = "ETRADE_CONSUMER_SECRET"

// Load the access token previously obtained via the OAuth1 Authorization
loo_JsonToken = create oleobject
li_rc = loo_JsonToken.ConnectToNewObject("Chilkat.JsonObject")

li_Success = loo_JsonToken.LoadFile("qa_data/tokens/etrade.json")
if li_Success <> 1 then
    Write-Debug "Failed to load OAuth1 token"
    destroy loo_Http
    destroy loo_JsonToken
    return
end if

loo_Http.OAuthToken = loo_JsonToken.StringOf("oauth_token")
loo_Http.OAuthTokenSecret = loo_JsonToken.StringOf("oauth_token_secret")

ls_SandboxUrl = "https://apisb.etrade.com/v1/accounts/list"
ls_LiveUrl = "https://api.etrade.com/v1/accounts/list"

loo_Resp = create oleobject
li_rc = loo_Resp.ConnectToNewObject("Chilkat.HttpResponse")

li_Success = loo_Http.HttpNoBody("GET",ls_SandboxUrl,loo_Resp)
if li_Success = 0 then
    Write-Debug loo_Http.LastErrorText
    destroy loo_Http
    destroy loo_JsonToken
    destroy loo_Resp
    return
end if

// Make sure a successful response was received.
if loo_Resp.StatusCode >= 300 then
    Write-Debug loo_Resp.StatusLine
    Write-Debug loo_Resp.Header
    Write-Debug loo_Resp.BodyStr
    destroy loo_Http
    destroy loo_JsonToken
    destroy loo_Resp
    return
end if

if loo_Resp.StatusCode = 204 then
    Write-Debug "No records available."
    destroy loo_Http
    destroy loo_JsonToken
    destroy loo_Resp
    return
end if

// 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>

loo_Xml = create oleobject
li_rc = loo_Xml.ConnectToNewObject("Chilkat.Xml")

loo_Xml.LoadXml(loo_Resp.BodyStr)
Write-Debug loo_Xml.GetXml()

i = 0
li_Count_i = loo_Xml.NumChildrenHavingTag("Accounts|Account")
do while i < li_Count_i
    loo_Xml.I = i
    li_AccountId = loo_Xml.GetChildIntValue("Accounts|Account[i]|accountId")
    ls_AccountIdKey = loo_Xml.GetChildContent("Accounts|Account[i]|accountIdKey")
    ls_AccountMode = loo_Xml.GetChildContent("Accounts|Account[i]|accountMode")
    ls_AccountDesc = loo_Xml.GetChildContent("Accounts|Account[i]|accountDesc")
    ls_AccountName = loo_Xml.GetChildContent("Accounts|Account[i]|accountName")
    ls_AccountType = loo_Xml.GetChildContent("Accounts|Account[i]|accountType")
    ls_InstitutionType = loo_Xml.GetChildContent("Accounts|Account[i]|institutionType")
    ls_AccountStatus = loo_Xml.GetChildContent("Accounts|Account[i]|accountStatus")
    li_ClosedDate = loo_Xml.GetChildIntValue("Accounts|Account[i]|closedDate")
    i = i + 1
loop

Write-Debug "Success."


destroy loo_Http
destroy loo_JsonToken
destroy loo_Resp
destroy loo_Xml