Sample code for 30+ languages & platforms
Lianja

ETrade Cancel Order

See more ETrade Examples

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

Chilkat Lianja Downloads

Lianja
llSuccess = .F.

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

loHttp = createobject("CkHttp")

loHttp.OAuth1 = .T.
loHttp.OAuthVerifier = ""
loHttp.OAuthConsumerKey = "ETRADE_CONSUMER_KEY"
loHttp.OAuthConsumerSecret = "ETRADE_CONSUMER_SECRET"

// Load the access token previously obtained via the OAuth1 Authorization
loJsonToken = createobject("CkJsonObject")
llSuccess = loJsonToken.LoadFile("qa_data/tokens/etrade.json")
if (llSuccess <> .T.) then
    ? "Failed to load OAuth1 token"
    release loHttp
    release loJsonToken
    return
endif

loHttp.OAuthToken = loJsonToken.StringOf("oauth_token")
loHttp.OAuthTokenSecret = loJsonToken.StringOf("oauth_token_secret")

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

loHttp.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>

loXml = createobject("CkXml")
loXml.Tag = "CancelOrderRequest"
loXml.UpdateChildContent("orderId","11")
loXml.EmitCompact = .T.

lcHttpRequestBody = loXml.GetXml()
loResp = createobject("CkHttpResponse")
llSuccess = loHttp.HttpStr("PUT",lcSandboxUrl,lcHttpRequestBody,"utf-8","application/xml",loResp)
if (llSuccess = .F.) then
    ? loHttp.LastErrorText
    release loHttp
    release loJsonToken
    release loXml
    release loResp
    return
endif

// Make sure a successful response was received.
if (loResp.StatusCode > 200) then
    ? loResp.StatusLine
    ? loResp.Header
    ? loResp.BodyStr
    release loHttp
    release loJsonToken
    release loXml
    release loResp
    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>

loXml.LoadXml(loResp.BodyStr)
? loXml.GetXml()

lnAccountId = loXml.GetChildIntValue("accountId")
lnOrderId = loXml.GetChildIntValue("orderId")
lcCancelTime = loXml.GetChildContent("cancelTime")
lnCode = loXml.GetChildIntValue("Messages|Message|code")
lcDescription = loXml.GetChildContent("Messages|Message|description")
lcV_type = loXml.GetChildContent("Messages|Message|type")

? "Success."


release loHttp
release loJsonToken
release loXml
release loResp