====== ORDER CANCEL REJECT [35=9] ====== The Order Cancel Reject message notifies clients when cancel or replace requests fail. ===== Rejection Scenarios ===== * Invalid cancel request * Invalid cancel/replace request * List cancel request failure * Unsolicited rejections from non-FIX sources ===== Request Identification ===== * **ClOrdID (11)** - Failed request ID * **CxlRejResponseTo (434)** - Request type: * 1 = Cancel Request * 2 = Cancel/Replace Request * 3 = List Cancel Request ===== Target Order Identification ===== * **OrigClOrdID (41)** - Original order's ClOrdID * **OrderID (37)** - T4-assigned order ID * **ListID (66)** - Batch order identifier (if applicable) ===== Message Specification ===== **Message Direction:** T4 → Client ^ Tag ^ Field Name ^ Type ^ Req'd ^ Description ^ | | **Message Header** | | Y | MsgType = 9 | | 1 | Account | String | O | Account code | | 11 | ClOrdID | String | Y | Failed request ID | | 41 | OrigClOrdID | String | Y | Target order's ClOrdID | | 37 | OrderID | String | O | T4-assigned order ID | | 66 | ListID | String | O | Batch order ID | | 39 | OrdStatus | Char | Y | Current order status | | 434 | CxlRejResponseTo | Char | Y | 1=Cancel, 2=Replace, 3=List Cancel | | 102 | CxlRejReason | Int | O | 1=Unknown order, 2=Broker option | | 58 | Text | String | O | Rejection details | | 60 | TransactTime | UTCTimestamp | O | Rejection time | | 1028 | ManualOrderIndicator | Boolean | O | Y=Manual, N=Automated | | | **Message Trailer** | | Y | | ===== Sample Messages ===== **Note:** Pipe (|) used for readability. Actual FIX messages use SOH (ASCII 01) delimiter. **Invalid Price in Cancel/Replace:** 8=FIX.4.2|9=350|35=9|49=T4|56=T4Example|50=T4FIX|52=20121212-21:35:28.098| 1=Account1|11=fr-634909233280833034|41=fn-634909233209540909| 37=EDDF2612-A6E5-426D-A7A1-0925EBA836B5|39=0|434=2|102=2| 58=CME:FIX field incorrect 'Illegal Price: '143001.0 contract 'ESZ2' (ticks in 25, CAB of 0)'| 60=20121212-21:35:49.172|1028=N|10=234| **Unknown Order Cancel:** 8=FIX.4.2|9=250|35=9|49=T4|56=T4Example|50=T4FIX|52=20121212-21:37:11.508| 1=Account1|11=fc-634909234315082852|41=fn-634909233209540909|37=NONE| 39=8|434=1|102=1|58=Undetermined Order|60=20121212-21:37:11.508|1028=N|10=234| ===== Notes ===== * For non-FIX orders: OrigClOrdID = OrderID * CxlRejReason provides standard rejection codes * Text field contains exchange-specific rejection details