Sample code for 30+ languages & platforms
Go

ETrade v1 Get Account Balances

See more HTTP Misc Examples

Get account balances using the ETrade v1 API.

Chilkat Go Downloads

Go
    success := false

    // This example 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 3-Legged Authorization examples Step1 and Step2.
    json := chilkat.NewJsonObject()
    success = json.LoadFile("qa_data/tokens/etrade.json")
    if success != true {
        fmt.Println("Failed to load OAuth1 token")
        http.DisposeHttp()
        json.DisposeJsonObject()
        return
    }

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

    // See the ETrade v1 API documentation HERE.

    http.SetUrlVar("accountIdKey","vsnhtF7d9jXxBy6HyaAC4vQ")
    http.SetUrlVar("instType","BROKERAGE")
    respStr := http.QuickGetStr("https://apisb.etrade.com/v1/accounts/{$accountIdKey}/balance?instType={$instType}&realTimeNAV=true")
    if http.LastMethodSuccess() != true {
        fmt.Println(http.LastErrorText())
        http.DisposeHttp()
        json.DisposeJsonObject()
        return
    }

    // A 200 status code indicates success.
    statusCode := http.LastStatus()
    fmt.Println("statusCode = ", statusCode)

    // Use the following online tool to generate parsing code from sample XML: 
    // Generate Parsing Code from XML

    // A sample XML response is shown below...

    xml := chilkat.NewXml()
    xml.LoadXml(*respStr)

    var tagPath string
    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")

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

    http.DisposeHttp()
    json.DisposeJsonObject()
    xml.DisposeXml()