developers:fixapi:ordercancelrequest

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
developers:fixapi:ordercancelrequest [2025/09/12 01:35] – ↷ Page moved and renamed from developers:fixapi.ordercancelrequest to developers:fixapi:ordercancelrequest chaddevelopers:fixapi:ordercancelrequest [2025/09/12 02:05] (current) chad
Line 1: Line 1:
-===== Order Cancel Request =====+====== ORDER CANCEL REQUEST [35=F] ======
  
-Canceling Working Orders +The Order Cancel Request message cancels working orders. This message supports all strategy types including futures, options, spreads, and multileg strategies.
-------------------------+
  
-The **Order Cancel Request** message (MsgType=F) is used by the T4 FIX API to electronically cancel (pullworking orders. This message is used for all CTS strategy types including outright futures, futures options, spreads, and multileg strategies.  +===== Prerequisites ===== 
 +  Account must be subscribed before order submission 
 +  Working order must be identified by OrigClOrdID (41) and/or OrderID (37) 
 +  * New unique ClOrdID required (12-20 characters)
  
-The instrument for which the cancel request is submitted is identified with the following tags:  +===== Order Identification =====
  
-* **Tag 48** = SecurityID   +**API-submitted orders:** 
-* **Tag 55** = Symbol   +  * Use OrigClOrdID (41) of target order
-**Tag 207** = SecurityExchange  +
  
-All cancel requests must also be uniquely identified with a verbose **Client Order Id** (Tag 11between 12 and 20 characters.  +**Frontend-submitted orders:** 
 +  * Use OrderID (37) and set OrigClOrdID = OrderID
  
-Identifying the Order to be Canceled +**Best practice:** 
-------------------------------------+  * Always specify both OrigClOrdID and OrderID
  
-Working orders can be identified by:  +===== Message Specification =====
  
-* **OrigClOrdId (Tag 41)** – Client-side identifier of the target working order   +**Message Direction:** Client → T4
-* **OrderId (Tag 37)** – T4 FIX API-generated unique identifier  +
  
-> Note: Orders with previous rejections can be canceled using either OrderId or the ClOrdId of the rejection.   +^ Tag ^ Field Name ^ Type ^ Req'd ^ Description ^ 
-> Orders submitted outside the T4 FIX API (e.g.CTS T4 Front-End) must use **OrderId (Tag 37)**, and OrigClOrdId should be set to the same value.   +| | **Message Header** | | Y | MsgType = F | 
-> It is recommended to specify both OrigClOrdId and OrderId for all cancel requests.  +| 1 | Account | String | Y | Account code | 
 +| 11 | ClOrdID | String | Y | New unique ID for this cancel (12-20 chars) | 
 +| 41 | OrigClOrdID | String | Y | Original ClOrdID of target order | 
 +| 37 | OrderID | String | Y | T4-generated ID of target order | 
 +| 48 | SecurityID | String | Y | T4 Market ID | 
 +| 55 | Symbol | String | Y | T4 Contract ID | 
 +| 207 | SecurityExchange | String | Y | T4 Exchange ID | 
 +| 167 | SecurityType | String | O | FUT, OPT, STK, SYN, BIN | 
 +| 54 | Side | Char | Y | 0=None (Flatten)1=Buy, 2=Sell | 
 +| 38 | OrderQty | Int | O | Original quantity for partial fills | 
 +| 60 | TransactTime | UTCTimestamp | Y | Cancel request time | 
 +| 109 | ClientID | String | O | Firm ID for third-party transactions | 
 +| 107 | SecurityDesc | String | O | Security description | 
 +| 1028 | ManualOrderIndicator | Boolean | O | Y=Manual, N=Automated | 
 +| | **Message Trailer** | | Y | |
  
-Important Considerations +===== Sample Messages =====
-------------------------+
  
-Malformed cancel requests (missing required tags, empty tags, invalid values) will be rejected with a **FIX Session Reject**.   +**Note:** Pipe (|) used for readabilityActual FIX messages use SOH (ASCII 01delimiter.
-* All order routing must be preceded by a successful subscription to the account. See **Collateral Inquiry** for instructions  +
-* Contingent orders like OCO and AutoOCO:   +
-  * Canceling a working component cancels all components (working and suspended  +
-  * Canceling a suspended component cancels only that targeted suspended component  +
  
-Message Dictionary +**Cancel API-Submitted Order:** 
------------------+<code> 
- +8=FIX.4.2|9=200|35=F|49=T4Example|56=T4|50=TraderName|52=20121212-20:27:03.637
-^ Tag ^ Field Name ^ Req'd ^ Comments ^ +1=Account1|11=fc-634909192236370301|41=fr-634909107579297721
-Standard Header Y | MsgType = F | +37=FA657BC9-A1D2-4644-B558-A1155C731DA4|48=CME_20121200_ESZ2|55=ES|207=CME_Eq
-1  Account Y | Account (code) for which the cancel request is submitted +54=1|167=FUT|60=20121212-20:27:03.637|10=123
-| 11 | ClOrdID | Y | Client-Side identifier for this cancel request. Max characters: 20 | +</code>
-| 41 | OrigClOrdID | Y | Client-Side ClOrdID of the target working order. Max characters: 20 +
-37 | OrderId | Y | T4-generated unique identifier for the target working order | +
-| 48 | SecurityID | Y | T4 Market ID | +
-| 55 | Symbol | Y | T4 Contract ID | +
-| 207 | SecurityExchange | Y | T4 Exchange ID +
-| 167 | SecurityType | N | Instrument type: FUT, OPT, STK, SYN, BIN | +
-54 | Side | Y | 0=None (Flatten), 1=Buy, 2=Sell | +
-| 38 | OrderQty | N | Number of contracts to cancel. Reflects original quantity for partially filled orders | +
-| 60 | TransactTime | Y | Time cancel request was requested (UTC) | +
-| 109 | ClientID | N | Firm identification for third-party transactions | +
-| 107 | SecurityDesc | N | Description of the specified SecurityID (Tag 48) | +
-| 1028 | ManualOrderIndicator | N | Y=Manual, N=Automated +
-| Standard Trailer | Y | | +
- +
-Sample Messages +
- +
-Canceling a Working Order entered through the T4 FIX API+
  
 +**Cancel Frontend-Submitted Order:**
 <code> <code>
-[FIXCANCEL] 34=290|49=T4Example|56=T4|50=TraderName|52=20121212-20:27:03.637|1=Account1|11=fc-634909192236370301|37=FA657BC9-A1D2-4644-B558-A1155C731DA4|41=fr-634909107579297721|48=CME_20121200_ESZ2|54=1|55=ES|207=CME_Eq|60=20121212-20:27:03.637|167=FUT| +8=FIX.4.2|9=200|35=F|49=T4Example|56=T4|50=TraderName|52=20121212-20:33:42.046| 
- +1=Account1|11=fc-634909196220461298|41=4C3DFFB6-04CC-4B1F-8152-0EC58C9E5653
-[MsgSeqNum] 34 = 290 +37=4C3DFFB6-04CC-4B1F-8152-0EC58C9E5653|48=CME_20121200_ESZ2|55=ES|207=CME_Eq| 
-[SenderCompID] 49 = T4Example +54=2|167=FUT|60=20121212-20:33:42.046|10=123|
-[TargetCompID] 56 = T4 +
-[SenderSubID] 50 = TraderName +
-[SendingTime] 52 = 20121212-20:27:03.637 +
-[Account] 1 = Account1 +
-[ClOrdID] 11 = fc-634909192236370301 +
-[OrderID] 37 = FA657BC9-A1D2-4644-B558-A1155C731DA4 +
-[OrigClOrdID] 41 = fr-634909107579297721 +
-[SecurityID] 48 = CME_20121200_ESZ2 +
-[Side] 54 = 1 (BUY) +
-[Symbol] 55 = ES +
-[SecurityExchange] 207 = CME_Eq +
-[TransactTime] 60 = 20121212-20:27:03.637 +
-[SecurityType] 167 = FUT (FUTURE) +
- +
- +
-[fixexecutionreport] 34=648|49=T4|56=T4Example|50=T4FIX|52=20121212-20:27:03.715|143=US,IL|1=Account1|11=fc-634909192236370301|41=fr-634909107579297721|17=48202.71332626389_ESZ2.63490919244745000018.2.FA657BC9|150=4|37=FA657BC9-A1D2-4644-B558-A1155C731DA4|39=4|48=CME_20121200_ESZ2|55=ES|207=CME_Eq|200=201212|59=0|107=E-mini S&P 500 Dec12|54=1|167=FUT|38=1|40=2|44=143075|60=20121212-20:27:24.745| +
- +
-[MsgSeqNum] 34 648 +
-[SenderCompID] 49 = T4 +
-[TargetCompID] 56 = T4Example +
-[SenderSubID] 50 = T4FIX +
-[SendingTime] 52 = 20121212-20:27:03.715 +
-[TargetLocationID] 143 = US,IL +
-[Account] 1 = Account1 +
-[ClOrdID] 11 = fc-634909192236370301 +
-[OrigClOrdID] 41 = fr-634909107579297721 +
-[ExecID] 17 = 48202.71332626389_ESZ2.63490919244745000018.2.FA657BC9 +
-[ExecType] 150 = 4 (CANCELED) +
-[OrderID] 37 = FA657BC9-A1D2-4644-B558-A1155C731DA4 +
-[OrdStatus] 39 = 4 (CANCELED) +
-[SecurityID] 48 = CME_20121200_ESZ2 +
-[Symbol] 55 = ES +
-[SecurityExchange] 207 = CME_Eq +
-[MaturityMonthYear] 200 = 201212 +
-[TimeInForce] 59 = 0 (DAY) +
-[SecurityDesc] 107 = E-mini S&P 500 Dec12 +
-[Side] 54 = 1 (BUY) +
-[SecurityType] 167 = FUT (FUTURE) +
-[OrderQty] 38 = 1 +
-[OrdType] 40 = 2 (LIMIT) +
-[Price] 44 = 143075 +
-[TransactTime] 60 = 20121212-20:27:24.745+
 </code> </code>
  
- +**Successful Cancel Response:**
-Canceling a Working Order entered through the CTS Front-end +
 <code> <code>
-[FIXCANCEL] 34=309|49=T4Example|56=T4|50=TraderName|52=20121212-20:33:42.046|1=Account1|11=fc-634909196220461298|37=4C3DFFB6-04CC-4B1F-8152-0EC58C9E5653|41=4C3DFFB6-04CC-4B1F-8152-0EC58C9E5653|48=CME_20121200_ESZ2|54=2|55=ES|207=CME_Eq|60=20121212-20:33:42.046|167=FUT| +8=FIX.4.2|9=350|35=8|49=T4|56=T4Example|50=T4FIX|52=20121212-20:27:03.715| 
- +143=US,IL|1=Account1|11=fc-634909192236370301|41=fr-634909107579297721| 
-[MsgSeqNum] 34 = 309 +17=48202.71332626389_ESZ2.63490919244745000018.2.FA657BC9|150=4| 
-[SenderCompID] 49 = T4Example +37=FA657BC9-A1D2-4644-B558-A1155C731DA4|39=4|48=CME_20121200_ESZ2|55=ES| 
-[TargetCompID] 56 = T4 +207=CME_Eq|200=201212|59=0|107=E-mini S&P 500 Dec12|54=1|167=FUT|38=1|40=2| 
-[SenderSubID] 50 = TraderName +44=143075|60=20121212-20:27:24.745|10=234|
-[SendingTime] 52 = 20121212-20:33:42.046 +
-[Account] 1 = Account1 +
-[ClOrdID] 11 = fc-634909196220461298 +
-[OrderID] 37 = 4C3DFFB6-04CC-4B1F-8152-0EC58C9E5653 +
-[OrigClOrdID] 41 = 4C3DFFB6-04CC-4B1F-8152-0EC58C9E5653 +
-[SecurityID] 48 = CME_20121200_ESZ2 +
-[Side] 54 = 2 (SELL) +
-[Symbol] 55 = ES +
-[SecurityExchange] 207 = CME_Eq +
-[TransactTime] 60 = 20121212-20:33:42.046 +
-[SecurityType] 167 = FUT (FUTURE) +
- +
- +
-[fixexecutionreport] 34=787|49=T4|56=T4Example|50=T4FIX|52=20121212-20:33:42.092|143=US,IL|1=Account1|11=fc-634909196220461298|17=48212.71332696293_ESZ2.63490919643143000018.2.4C3DFFB6|150=4|37=4C3DFFB6-04CC-4B1F-8152-0EC58C9E5653|39=4|48=CME_20121200_ESZ2|55=ES|207=CME_Eq|200=201212|59=0|107=E-mini S&P 500 Dec12|54=2|167=FUT|38=1|40=2|44=143525|60=20121212-20:34:03.143| +
- +
-[MsgSeqNum] 34 787 +
-[SenderCompID] 49 = T4 +
-[TargetCompID] 56 = T4Example +
-[SenderSubID] 50 = T4FIX +
-[SendingTime] 52 = 20121212-20:33:42.092 +
-[TargetLocationID] 143 = US,IL +
-[Account] 1 = Account1 +
-[ClOrdID] 11 = fc-634909196220461298 +
-[ExecID] 17 = 48212.71332696293_ESZ2.63490919643143000018.2.4C3DFFB6 +
-[ExecType] 150 = 4 (CANCELED) +
-[OrderID] 37 = 4C3DFFB6-04CC-4B1F-8152-0EC58C9E5653 +
-[OrdStatus] 39 = 4 (CANCELED) +
-[SecurityID] 48 = CME_20121200_ESZ2 +
-[Symbol] 55 = ES +
-[SecurityExchange] 207 = CME_Eq +
-[MaturityMonthYear] 200 = 201212 +
-[TimeInForce] 59 = 0 (DAY) +
-[SecurityDesc] 107 = E-mini S&P 500 Dec12 +
-[Side] 54 = 2 (SELL) +
-[SecurityType] 167 = FUT (FUTURE) +
-[OrderQty] 38 = 1 +
-[OrdType] 40 = 2 (LIMIT) +
-[Price] 44 = 143525 +
-[TransactTime] 60 = 20121212-20:34:03.143+
 </code> </code>
  
- +===== Notes ===== 
-[[developers:legacy_fix_api|T4 FIX API Home]] +  * Malformed messages rejected with Session Reject (35=3) 
 +  * Application errors returned via Order Cancel Reject (35=9) 
 +  * Previously rejected orders can be canceled using ClOrdID from rejection 
 +  * **OCO/AutoOCO behavior:** 
 +    * Canceling working component → cancels all components 
 +    * Canceling suspended component → cancels only that component
  • developers/fixapi/ordercancelrequest.txt
  • Last modified: 2025/09/12 02:05
  • by chad