Sample code for 30+ languages & platforms
Go

ETrade v1 Preview Order

See more HTTP Misc Examples

Gets the order details for a selected brokerage account based on the search criteria provided.

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.

    // Sample XML Request
    // Use this online tool to generate the code from sample XML: 
    // Generate Code to Create XML

    // <?xml version="1.0" encoding="UTF-8"?>
    // <PreviewOrderRequest>
    //    <orderType>EQ</orderType>
    //    <clientOrderId>sdfer333</clientOrderId>
    //    <Order>
    //       <allOrNone>false</allOrNone>
    //       <priceType>LIMIT</priceType>
    //       <orderTerm>GOOD_FOR_DAY</orderTerm>
    //       <marketSession>REGULAR</marketSession>
    //       <stopPrice />
    //       <limitPrice>188.51</limitPrice>
    //       <Instrument>
    //          <Product>
    //             <securityType>EQ</securityType>
    //             <symbol>FB</symbol>
    //          </Product>
    //          <orderAction>BUY</orderAction>
    //          <quantityType>QUANTITY</quantityType>
    //          <quantity>10</quantity>
    //       </Instrument>
    //    </Order>
    // </PreviewOrderRequest>

    xml := chilkat.NewXml()
    xml.SetTag("PreviewOrderRequest")
    xml.UpdateChildContent("orderType","EQ")
    xml.UpdateChildContent("clientOrderId","sdfer333")
    xml.UpdateChildContent("Order|allOrNone","false")
    xml.UpdateChildContent("Order|priceType","LIMIT")
    xml.UpdateChildContent("Order|orderTerm","GOOD_FOR_DAY")
    xml.UpdateChildContent("Order|marketSession","REGULAR")
    xml.UpdateChildContent("Order|stopPrice","")
    xml.UpdateChildContent("Order|limitPrice","188.51")
    xml.UpdateChildContent("Order|Instrument|Product|securityType","EQ")
    xml.UpdateChildContent("Order|Instrument|Product|symbol","FB")
    xml.UpdateChildContent("Order|Instrument|orderAction","BUY")
    xml.UpdateChildContent("Order|Instrument|quantityType","QUANTITY")
    xml.UpdateChildContent("Order|Instrument|quantity","10")

    xmlContent := xml.GetXml()
    endpointUrl := "https://apisb.etrade.com/v1/accounts/{accountIdKey}/orders/preview"

    resp := chilkat.NewHttpResponse()
    success = http.HttpStr("POST",endpointUrl,*xmlContent,"utf-8","application/xml",resp)
    if success == false {
        fmt.Println(http.LastErrorText())
        http.DisposeHttp()
        json.DisposeJsonObject()
        xml.DisposeXml()
        resp.DisposeHttpResponse()
        return
    }

    // A 200 status code indicates success.
    statusCode := resp.StatusCode()
    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.LoadXml(resp.BodyStr())

    var tagPath string
    var orderType *string = new(string)
    var totalOrderValue *string = new(string)
    var orderTerm *string = new(string)
    var priceType *string = new(string)
    var limitPrice *string = new(string)
    var stopPrice int
    var marketSession *string = new(string)
    var allOrNone *string = new(string)
    var symbol *string = new(string)
    var securityType *string = new(string)
    var symbolDescription *string = new(string)
    var orderAction *string = new(string)
    var quantityType *string = new(string)
    var quantity int
    var cancelQuantity *string = new(string)
    var reserveOrder *string = new(string)
    var reserveQuantity *string = new(string)
    var i int
    var count_i int
    var code int
    var description *string = new(string)
    var v_type *string = new(string)
    var egQual *string = new(string)
    var estimatedCommission *string = new(string)
    var estimatedTotalAmount *string = new(string)
    var netPrice int
    var netBid int
    var netAsk int
    var gcd int
    var previewId int
    var previewTime *string = new(string)
    var dstFlag *string = new(string)
    var accountId int
    var optionLevelCd int
    var marginLevelCd *string = new(string)
    var ahDisclosureFlag *string = new(string)
    var aoDisclosureFlag *string = new(string)
    var conditionalDisclosureFlag *string = new(string)
    var ehDisclosureFlag *string = new(string)
    var marginBuyingPower *string = new(string)

    orderType = xml.GetChildContent("orderType")
    totalOrderValue = xml.GetChildContent("totalOrderValue")
    orderTerm = xml.GetChildContent("Order|orderTerm")
    priceType = xml.GetChildContent("Order|priceType")
    limitPrice = xml.GetChildContent("Order|limitPrice")
    stopPrice = xml.GetChildIntValue("Order|stopPrice")
    marketSession = xml.GetChildContent("Order|marketSession")
    allOrNone = xml.GetChildContent("Order|allOrNone")
    symbol = xml.GetChildContent("Order|Instrument|Product|symbol")
    securityType = xml.GetChildContent("Order|Instrument|Product|securityType")
    symbolDescription = xml.GetChildContent("Order|Instrument|symbolDescription")
    orderAction = xml.GetChildContent("Order|Instrument|orderAction")
    quantityType = xml.GetChildContent("Order|Instrument|quantityType")
    quantity = xml.GetChildIntValue("Order|Instrument|quantity")
    cancelQuantity = xml.GetChildContent("Order|Instrument|cancelQuantity")
    reserveOrder = xml.GetChildContent("Order|Instrument|reserveOrder")
    reserveQuantity = xml.GetChildContent("Order|Instrument|reserveQuantity")
    i = 0
    count_i = xml.NumChildrenHavingTag("Order|messages|Message")
    for i < count_i {
        xml.SetI(i)
        code = xml.GetChildIntValue("Order|messages|Message[i]|code")
        description = xml.GetChildContent("Order|messages|Message[i]|description")
        v_type = xml.GetChildContent("Order|messages|Message[i]|type")
        i = i + 1
    }

    egQual = xml.GetChildContent("Order|egQual")
    estimatedCommission = xml.GetChildContent("Order|estimatedCommission")
    estimatedTotalAmount = xml.GetChildContent("Order|estimatedTotalAmount")
    netPrice = xml.GetChildIntValue("Order|netPrice")
    netBid = xml.GetChildIntValue("Order|netBid")
    netAsk = xml.GetChildIntValue("Order|netAsk")
    gcd = xml.GetChildIntValue("Order|gcd")
    previewId = xml.GetChildIntValue("PreviewIds|previewId")
    previewTime = xml.GetChildContent("previewTime")
    dstFlag = xml.GetChildContent("dstFlag")
    accountId = xml.GetChildIntValue("accountId")
    optionLevelCd = xml.GetChildIntValue("optionLevelCd")
    marginLevelCd = xml.GetChildContent("marginLevelCd")
    ahDisclosureFlag = xml.GetChildContent("Disclosure|ahDisclosureFlag")
    aoDisclosureFlag = xml.GetChildContent("Disclosure|aoDisclosureFlag")
    conditionalDisclosureFlag = xml.GetChildContent("Disclosure|conditionalDisclosureFlag")
    ehDisclosureFlag = xml.GetChildContent("Disclosure|ehDisclosureFlag")
    marginBuyingPower = xml.GetChildContent("marginBuyingPower")

    // Sample XML Response

    // <?xml version="1.0" encoding="UTF-8"?>
    // <PreviewOrderResponse>
    //    <orderType>EQ</orderType>
    //    <totalOrderValue>1892.05</totalOrderValue>
    //    <Order>
    //       <orderTerm>GOOD_FOR_DAY</orderTerm>
    //       <priceType>LIMIT</priceType>
    //       <limitPrice>188.51</limitPrice>
    //       <stopPrice>0</stopPrice>
    //       <marketSession>REGULAR</marketSession>
    //       <allOrNone>false</allOrNone>
    //       <Instrument>
    //          <Product>
    //             <symbol>FB</symbol>
    //             <securityType>EQ</securityType>
    //          </Product>
    //          <symbolDescription>FACEBOOK INC CL A</symbolDescription>
    //          <orderAction>BUY</orderAction>
    //          <quantityType>QUANTITY</quantityType>
    //          <quantity>10</quantity>
    //          <cancelQuantity>0.0</cancelQuantity>
    //          <reserveOrder>true</reserveOrder>
    //          <reserveQuantity>0.0</reserveQuantity>
    //       </Instrument>
    //       <messages>
    //          <Message>
    //             <code>1042</code>
    //             <description>200|You have an existing open order for this security on the same side of the market. If you did not intend to place a second order for this security, please modify your order now.</description>
    //             <type>WARNING</type>
    //          </Message>
    //          <Message>
    //             <code>3093</code>
    //             <description>Position Concentrated.</description>
    //             <type>WARNING</type>
    //          </Message>
    //       </messages>
    //       <egQual>EG_QUAL_NOT_A_MARKET_ORDER</egQual>
    //       <estimatedCommission>6.95</estimatedCommission>
    //       <estimatedTotalAmount>1892.05</estimatedTotalAmount>
    //       <netPrice>0</netPrice>
    //       <netBid>0</netBid>
    //       <netAsk>0</netAsk>
    //       <gcd>0</gcd>
    //       <ratio />
    //    </Order>
    //    <PreviewIds>
    //       <previewId>1020563279</previewId>
    //    </PreviewIds>
    //    <previewTime>1529018458516</previewTime>
    //    <dstFlag>true</dstFlag>
    //    <accountId>84246841</accountId>
    //    <optionLevelCd>4</optionLevelCd>
    //    <marginLevelCd>MARGIN_TRADING_ALLOWED</marginLevelCd>
    //    <Disclosure>
    //       <ahDisclosureFlag>false</ahDisclosureFlag>
    //       <aoDisclosureFlag>false</aoDisclosureFlag>
    //       <conditionalDisclosureFlag>true</conditionalDisclosureFlag>
    //       <ehDisclosureFlag>false</ehDisclosureFlag>
    //    </Disclosure>
    //    <marginBuyingPower>86758.05</marginBuyingPower>
    // </PreviewOrderResponse>

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