Sample code for 30+ languages & platforms
Xbase++

ETrade Cancel Order

See more ETrade Examples

The cancel order API is used to cancel an existing order.

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oHttp
LOCAL oJsonToken
LOCAL cSandboxUrl
LOCAL cLiveUrl
LOCAL oXml
LOCAL cHttpRequestBody
LOCAL oResp
LOCAL nAccountId
LOCAL nOrderId
LOCAL cCancelTime
LOCAL nCode
LOCAL cDescription
LOCAL cV_type

nSuccess := 0

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

oHttp := CreateObject("Chilkat.Http")

oHttp:OAuth1 := 1
oHttp:OAuthVerifier := ""
oHttp:OAuthConsumerKey := "ETRADE_CONSUMER_KEY"
oHttp:OAuthConsumerSecret := "ETRADE_CONSUMER_SECRET"

//  Load the access token previously obtained via the OAuth1 Authorization
oJsonToken := CreateObject("Chilkat.JsonObject")
nSuccess := oJsonToken:LoadFile("qa_data/tokens/etrade.json")
IF (nSuccess != 1)
    ? "Failed to load OAuth1 token"
    oHttp:destroy()
    oJsonToken:destroy()
    RETURN
ENDIF

oHttp:OAuthToken := oJsonToken:StringOf("oauth_token")
oHttp:OAuthTokenSecret := oJsonToken:StringOf("oauth_token_secret")

cSandboxUrl := "https://apisb.etrade.com/v1/accounts/{$accountIdKey}/orders/cancel"
cLiveUrl := "https://api.etrade.com/v1/accounts/{$accountIdKey}/orders/cancel"

oHttp:SetUrlVar("accountIdKey", "6_Dpy0rmuQ9cu9IbTfvF2A")

//  Send a PUT with the following XML body

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

//  <CancelOrderRequest>
//     <orderId>11</orderId>
//  </CancelOrderRequest>

oXml := CreateObject("Chilkat.Xml")
oXml:Tag := "CancelOrderRequest"
oXml:UpdateChildContent("orderId", "11")
oXml:EmitCompact := 1

cHttpRequestBody := oXml:GetXml()
oResp := CreateObject("Chilkat.HttpResponse")
nSuccess := oHttp:HttpStr("PUT", cSandboxUrl, cHttpRequestBody, "utf-8", "application/xml", oResp)
IF (nSuccess == 0)
    ? oHttp:LastErrorText
    oHttp:destroy()
    oJsonToken:destroy()
    oXml:destroy()
    oResp:destroy()
    RETURN
ENDIF

//  Make sure a successful response was received.
IF (oResp:StatusCode > 200)
    ? oResp:StatusLine
    ? oResp:Header
    ? oResp:BodyStr
    oHttp:destroy()
    oJsonToken:destroy()
    oXml:destroy()
    oResp:destroy()
    RETURN
ENDIF

//  Sample XML response:

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

//  <CancelOrderResponse>
//     <accountId>63438617</accountId>
//     <orderId>11</orderId>
//     <cancelTime>1529563499081</cancelTime>
//     <Messages>
//        <Message>
//           <code>5011</code>
//           <description>200|Your request to cancel your order is being processed.</description>
//           <type>WARNING</type>
//        </Message>
//     </Messages>
//  </CancelOrderResponse>

oXml:LoadXml(oResp:BodyStr)
? oXml:GetXml()

nAccountId := oXml:GetChildIntValue("accountId")
nOrderId := oXml:GetChildIntValue("orderId")
cCancelTime := oXml:GetChildContent("cancelTime")
nCode := oXml:GetChildIntValue("Messages|Message|code")
cDescription := oXml:GetChildContent("Messages|Message|description")
cV_type := oXml:GetChildContent("Messages|Message|type")

? "Success."

oHttp:destroy()
oJsonToken:destroy()
oXml:destroy()
oResp:destroy()