Sample code for 30+ languages & platforms
Go

ETrade Get Account Balances

See more ETrade Examples

Retrieves the current account balance and related details for a specified account.

Chilkat Go Downloads

Go
    success := false

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

    http := chilkat.NewHttp()

    http.SetOAuth1(true)
    http.SetOAuthVerifier("")
    http.SetOAuthConsumerKey("ETRADE_CONSUMER_KEY")
    http.SetOAuthConsumerSecret("ETRADE_CONSUMER_SECRET")

    // Load the access token previously obtained via the OAuth1 Authorization
    jsonToken := chilkat.NewJsonObject()
    success = jsonToken.LoadFile("qa_data/tokens/etrade.json")
    if success != true {
        fmt.Println("Failed to load OAuth1 token")
        http.DisposeHttp()
        jsonToken.DisposeJsonObject()
        return
    }

    http.SetOAuthToken(jsonToken.StringOf("oauth_token"))
    http.SetOAuthTokenSecret(jsonToken.StringOf("oauth_token_secret"))

    sandboxUrl := "https://apisb.etrade.com/v1/accounts/{$accountIdKey}/balance?instType={$instType}&realTimeNAV=true"
    liveUrl := "https://api.etrade.com/v1/accounts/{$accountIdKey}/balance?instType={$instType}&realTimeNAV=true"

    http.SetUrlVar("accountIdKey","6_Dpy0rmuQ9cu9IbTfvF2A")
    http.SetUrlVar("instType","BROKERAGE")

    resp := chilkat.NewHttpResponse()
    success = http.HttpNoBody("GET",sandboxUrl,resp)
    if success == false {
        fmt.Println(http.LastErrorText())
        http.DisposeHttp()
        jsonToken.DisposeJsonObject()
        resp.DisposeHttpResponse()
        return
    }

    // Make sure a successful response was received.
    if resp.StatusCode() > 200 {
        fmt.Println(resp.StatusLine())
        fmt.Println(resp.Header())
        fmt.Println(resp.BodyStr())
        http.DisposeHttp()
        jsonToken.DisposeJsonObject()
        resp.DisposeHttpResponse()
        return
    }

    // 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"?>
    // <BalanceResponse>
    //    <accountId>83564979</accountId>
    //    <accountType>PDT_ACCOUNT</accountType>
    //    <optionLevel>LEVEL_4</optionLevel>
    //    <accountDescription>KRITHH TT</accountDescription>
    //    <quoteMode>6</quoteMode>
    //    <dayTraderStatus>PDT_MIN_EQUITY_RES_1XK</dayTraderStatus>
    //    <accountMode>PDT ACCOUNT</accountMode>
    //    <Cash>
    //       <fundsForOpenOrdersCash>0</fundsForOpenOrdersCash>
    //       <moneyMktBalance>0</moneyMktBalance>
    //    </Cash>
    //    <Computed>
    //       <cashAvailableForInvestment>0</cashAvailableForInvestment>
    //       <netCash>93921.44</netCash>
    //       <cashBalance>93921.44</cashBalance>
    //       <settledCashForInvestment>0</settledCashForInvestment>
    //       <unSettledCashForInvestment>0</unSettledCashForInvestment>
    //       <fundsWithheldFromPurchasePower>0</fundsWithheldFromPurchasePower>
    //       <fundsWithheldFromWithdrawal>0</fundsWithheldFromWithdrawal>
    //       <marginBuyingPower>0</marginBuyingPower>
    //       <cashBuyingPower>93921.44</cashBuyingPower>
    //       <dtMarginBuyingPower>0</dtMarginBuyingPower>
    //       <dtCashBuyingPower>0</dtCashBuyingPower>
    //       <shortAdjustBalance>0</shortAdjustBalance>
    //       <regtEquity>0</regtEquity>
    //       <regtEquityPercent>0</regtEquityPercent>
    //       <accountBalance>0</accountBalance>
    //    </Computed>
    //    <Margin>
    //       <dtCashOpenOrderReserve>0</dtCashOpenOrderReserve>
    //       <dtMarginOpenOrderReserve>0</dtMarginOpenOrderReserve>
    //    </Margin>
    // </BalanceResponse>

    xml := chilkat.NewXml()
    xml.LoadXml(resp.BodyStr())
    fmt.Println(*xml.GetXml())

    var accountId int
    var accountType *string = new(string)
    var optionLevel *string = new(string)
    var accountDescription *string = new(string)
    var quoteMode int
    var dayTraderStatus *string = new(string)
    var accountMode *string = new(string)
    var fundsForOpenOrdersCash int
    var moneyMktBalance int
    var cashAvailableForInvestment int
    var netCash *string = new(string)
    var cashBalance *string = new(string)
    var settledCashForInvestment int
    var unSettledCashForInvestment int
    var fundsWithheldFromPurchasePower int
    var fundsWithheldFromWithdrawal int
    var marginBuyingPower int
    var cashBuyingPower *string = new(string)
    var dtMarginBuyingPower int
    var dtCashBuyingPower int
    var shortAdjustBalance int
    var regtEquity int
    var regtEquityPercent int
    var accountBalance int
    var dtCashOpenOrderReserve int
    var dtMarginOpenOrderReserve int

    accountId = xml.GetChildIntValue("accountId")
    accountType = xml.GetChildContent("accountType")
    optionLevel = xml.GetChildContent("optionLevel")
    accountDescription = xml.GetChildContent("accountDescription")
    quoteMode = xml.GetChildIntValue("quoteMode")
    dayTraderStatus = xml.GetChildContent("dayTraderStatus")
    accountMode = xml.GetChildContent("accountMode")
    fundsForOpenOrdersCash = xml.GetChildIntValue("Cash|fundsForOpenOrdersCash")
    moneyMktBalance = xml.GetChildIntValue("Cash|moneyMktBalance")
    cashAvailableForInvestment = xml.GetChildIntValue("Computed|cashAvailableForInvestment")
    netCash = xml.GetChildContent("Computed|netCash")
    cashBalance = xml.GetChildContent("Computed|cashBalance")
    settledCashForInvestment = xml.GetChildIntValue("Computed|settledCashForInvestment")
    unSettledCashForInvestment = xml.GetChildIntValue("Computed|unSettledCashForInvestment")
    fundsWithheldFromPurchasePower = xml.GetChildIntValue("Computed|fundsWithheldFromPurchasePower")
    fundsWithheldFromWithdrawal = xml.GetChildIntValue("Computed|fundsWithheldFromWithdrawal")
    marginBuyingPower = xml.GetChildIntValue("Computed|marginBuyingPower")
    cashBuyingPower = xml.GetChildContent("Computed|cashBuyingPower")
    dtMarginBuyingPower = xml.GetChildIntValue("Computed|dtMarginBuyingPower")
    dtCashBuyingPower = xml.GetChildIntValue("Computed|dtCashBuyingPower")
    shortAdjustBalance = xml.GetChildIntValue("Computed|shortAdjustBalance")
    regtEquity = xml.GetChildIntValue("Computed|regtEquity")
    regtEquityPercent = xml.GetChildIntValue("Computed|regtEquityPercent")
    accountBalance = xml.GetChildIntValue("Computed|accountBalance")
    dtCashOpenOrderReserve = xml.GetChildIntValue("Margin|dtCashOpenOrderReserve")
    dtMarginOpenOrderReserve = xml.GetChildIntValue("Margin|dtMarginOpenOrderReserve")

    fmt.Println("Success.")

    http.DisposeHttp()
    jsonToken.DisposeJsonObject()
    resp.DisposeHttpResponse()
    xml.DisposeXml()