developers:fixapi:cancelreject

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
developers:fixapi:cancelreject [2025/09/12 01:35] – removed - external edit (Unknown date) 127.0.0.1developers:fixapi:cancelreject [2025/09/12 02:10] (current) chad
Line 1: Line 1:
 +====== 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:**
 +<code>
 +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|
 +</code>
 +
 +**Unknown Order Cancel:**
 +<code>
 +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|
 +</code>
 +
 +===== Notes =====
 +  * For non-FIX orders: OrigClOrdID = OrderID
 +  * CxlRejReason provides standard rejection codes
 +  * Text field contains exchange-specific rejection details