Differences
This shows you the differences between two versions of the page.
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 chad | developers: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 | + | ===== Prerequisites ===== |
+ | | ||
+ | | ||
+ | * 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 | + | **Frontend-submitted orders:** |
+ | * Use 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 |
- | * **OrderId (Tag 37)** – T4 FIX API-generated unique identifier | + | |
- | > Note: Orders with previous rejections can be canceled using either OrderId or the ClOrdId | + | ^ 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 | ||
+ | | 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 | ||
+ | | 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 readability. Actual FIX messages use SOH (ASCII 01) delimiter. |
- | * 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 | + | |
- | * Canceling a suspended component cancels only that targeted suspended component | + | |
- | Message Dictionary | + | **Cancel API-Submitted Order:** |
- | ------------------ | + | < |
- | + | 8=FIX.4.2|9=200|35=F|49=T4Example|56=T4|50=TraderName|52=20121212-20: | |
- | ^ Tag ^ Field Name ^ Req'd ^ Comments ^ | + | 1=Account1|11=fc-634909192236370301|41=fr-634909107579297721| |
- | | Standard Header | + | 37=FA657BC9-A1D2-4644-B558-A1155C731DA4|48=CME_20121200_ESZ2|55=ES|207=CME_Eq| |
- | | 1 | + | 54=1|167=FUT|60=20121212-20: |
- | | 11 | ClOrdID | Y | Client-Side identifier for this cancel request. Max characters: 20 | | + | </ |
- | | 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), | + | |
- | | 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:** | ||
< | < | ||
- | [FIXCANCEL] 34=290|49=T4Example|56=T4|50=TraderName|52=20121212-20: | + | 8=FIX.4.2|9=200|35=F|49=T4Example|56=T4|50=TraderName|52=20121212-20: |
- | + | 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: |
- | [TargetCompID] 56 = T4 | + | |
- | [SenderSubID] 50 = TraderName | + | |
- | [SendingTime] 52 = 20121212-20: | + | |
- | [Account] 1 = Account1 | + | |
- | [ClOrdID] 11 = fc-634909192236370301 | + | |
- | [OrderID] | + | |
- | [OrigClOrdID] 41 = fr-634909107579297721 | + | |
- | [SecurityID] 48 = CME_20121200_ESZ2 | + | |
- | [Side] 54 = 1 (BUY) | + | |
- | [Symbol] 55 = ES | + | |
- | [SecurityExchange] 207 = CME_Eq | + | |
- | [TransactTime] 60 = 20121212-20: | + | |
- | [SecurityType] 167 = FUT (FUTURE) | + | |
- | + | ||
- | + | ||
- | [fixexecutionreport] 34=648|49=T4|56=T4Example|50=T4FIX|52=20121212-20: | + | |
- | + | ||
- | [MsgSeqNum] 34 = 648 | + | |
- | [SenderCompID] 49 = T4 | + | |
- | [TargetCompID] 56 = T4Example | + | |
- | [SenderSubID] 50 = T4FIX | + | |
- | [SendingTime] 52 = 20121212-20: | + | |
- | [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: | + | |
</ | </ | ||
- | + | **Successful Cancel Response:** | |
- | Canceling a Working Order entered through the CTS Front-end | + | |
< | < | ||
- | [FIXCANCEL] 34=309|49=T4Example|56=T4|50=TraderName|52=20121212-20: | + | 8=FIX.4.2|9=350|35=8|49=T4|56=T4Example|50=T4FIX|52=20121212-20: |
- | + | 143=US, | |
- | [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: |
- | [SendingTime] 52 = 20121212-20: | + | |
- | [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: | + | |
- | [SecurityType] 167 = FUT (FUTURE) | + | |
- | + | ||
- | + | ||
- | [fixexecutionreport] 34=787|49=T4|56=T4Example|50=T4FIX|52=20121212-20: | + | |
- | + | ||
- | [MsgSeqNum] 34 = 787 | + | |
- | [SenderCompID] 49 = T4 | + | |
- | [TargetCompID] 56 = T4Example | + | |
- | [SenderSubID] 50 = T4FIX | + | |
- | [SendingTime] 52 = 20121212-20: | + | |
- | [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: | + | |
</ | </ | ||
- | + | ===== 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/ | ||
+ | * Canceling working component → cancels all components | ||
+ | * Canceling suspended component → cancels only that component |