Sample code for 30+ languages & platforms
Java

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 Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Http;
import com.chilkatsoft.chilkat2.HttpResponse;
import com.chilkatsoft.chilkat2.JsonObject;
import com.chilkatsoft.chilkat2.Xml;

public class ChilkatExample {

    public static void main(String[] args) {
        // This example requires the Chilkat API to have been previously unlocked.
        // See Global Unlock Sample for sample code.

        Http http = new Http();

        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.
        JsonObject json = new JsonObject();
        try {
            json.loadFile("qa_data/tokens/etrade.json");
        } catch (ChilkatException e) {
            System.out.println("Failed to load OAuth1 token");
            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 xml = new Xml();
        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");

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

        HttpResponse resp = new HttpResponse();
        try {
            http.httpStr("POST", endpointUrl, xmlContent, "utf-8", "application/xml", resp);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        // A 200 status code indicates success.
        int statusCode = resp.getStatusCode();
        System.out.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.getBodyStr());

        int code = 0;
        String description = "";
        String v_type = "";

        String orderType = xml.getChildContent("orderType");
        String totalOrderValue = xml.getChildContent("totalOrderValue");
        String orderTerm = xml.getChildContent("Order|orderTerm");
        String priceType = xml.getChildContent("Order|priceType");
        String limitPrice = xml.getChildContent("Order|limitPrice");
        int stopPrice = xml.getChildIntValue("Order|stopPrice");
        String marketSession = xml.getChildContent("Order|marketSession");
        String allOrNone = xml.getChildContent("Order|allOrNone");
        String symbol = xml.getChildContent("Order|Instrument|Product|symbol");
        String securityType = xml.getChildContent("Order|Instrument|Product|securityType");
        String symbolDescription = xml.getChildContent("Order|Instrument|symbolDescription");
        String orderAction = xml.getChildContent("Order|Instrument|orderAction");
        String quantityType = xml.getChildContent("Order|Instrument|quantityType");
        int quantity = xml.getChildIntValue("Order|Instrument|quantity");
        String cancelQuantity = xml.getChildContent("Order|Instrument|cancelQuantity");
        String reserveOrder = xml.getChildContent("Order|Instrument|reserveOrder");
        String reserveQuantity = xml.getChildContent("Order|Instrument|reserveQuantity");
        int i = 0;
        int count_i = xml.numChildrenHavingTag("Order|messages|Message");
        while (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;
        }

        String egQual = xml.getChildContent("Order|egQual");
        String estimatedCommission = xml.getChildContent("Order|estimatedCommission");
        String estimatedTotalAmount = xml.getChildContent("Order|estimatedTotalAmount");
        int netPrice = xml.getChildIntValue("Order|netPrice");
        int netBid = xml.getChildIntValue("Order|netBid");
        int netAsk = xml.getChildIntValue("Order|netAsk");
        int gcd = xml.getChildIntValue("Order|gcd");
        int previewId = xml.getChildIntValue("PreviewIds|previewId");
        String previewTime = xml.getChildContent("previewTime");
        String dstFlag = xml.getChildContent("dstFlag");
        int accountId = xml.getChildIntValue("accountId");
        int optionLevelCd = xml.getChildIntValue("optionLevelCd");
        String marginLevelCd = xml.getChildContent("marginLevelCd");
        String ahDisclosureFlag = xml.getChildContent("Disclosure|ahDisclosureFlag");
        String aoDisclosureFlag = xml.getChildContent("Disclosure|aoDisclosureFlag");
        String conditionalDisclosureFlag = xml.getChildContent("Disclosure|conditionalDisclosureFlag");
        String ehDisclosureFlag = xml.getChildContent("Disclosure|ehDisclosureFlag");
        String 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>
    }
}