Order Cancel Request Reject
XCDE will respond with an OrderCancelReject message when it receives a Cancel Request or a cancel/replace request message which cannot be honoured. Requests to change price or decrease quantity of an Order are possible only when an outstanding quantity exists.
When rejecting a Cancel/Replace Request (or Cancel Request), the Cancel Reject message will provide the ClOrdID which was specified on the Cancel/Replace Request (or Cancel Request) message for identification, and the OrigClOrdId should be that of the last accepted Order message (except in the case of CxlRejReason = “Unknown Order”.
To accept CancelRequest and cancel/replace request messages, XCDE will send an simple ExecutionReport message.
Message format:
| Field Name | Format | Req'd | Comments | 
|---|---|---|---|
| MsgType | String | ✓ | 9 = OrderCancelReject | 
| MsgSeqNum | SeqNum | ✓ | User generated incremental number to allow receiver to identify possible message gaps | 
| SendingTime | UTCTimestamp | ✓ | Time of sending this message | 
| OrderID | String | ✓ | Assigned by XCDE for this message. If CxlRejReason = "Unknown order", specify "NONE". | 
| ClOrdID | String | ✓ | User generated Unique identifier of this replacement order | 
| ClOrdLinkID | String | In case of grouping of Orders e.g. with OCAO | |
| OrigClOrdID | String | ClOrdID(11) which could not be canceled/replaced. This is of the previously accepted order (NOT the initial order of the day). | |
| OrdStatus | Char | ✓ | OrdStatus value after this cancel reject is applied. If CxlRejReason = "Unknown Order", will be “Rejected”. Possible values: 1 =Partially filled 2 = Filled 4 = Canceled 8 = Rejected C = Expired | 
| Account | String | User account as defined by XCDE (not in use) | |
| TransactTime | UTCTimestamp | Time of creation of this reject message | |
| CxlRejResponseTo | Char | ✓ | Identifies which cancel type this reject responds to: 1 = Cancel request 2 = Cancel/replace request | 
| CxlRejReason | Int | Possible values: 0 = Too late to cancel 1 = Unknown order 3 = Order already in Pending Cancel or Pending Replace status 4 = Unable to process Order Mass Cancel Request 6 = Duplicate ClOrdID (11) received 99 = Other | |
| Text | String | Unessential freeform field to post information | |
Example:
 1MsgType: 9
 2MsgSeqNum: 98287534
 3SendingTime: 20220907-02:45:32.274
 4OrderID: jdjg8786864-hsf
 5ClOrdID: dgte4-5762
 6OrigClOrdID: dgte4-5758
 7OrdStatus: 1
 8Account: 42119
 9TransactTime: 20220907-02:45:32.003
10CxlRejResponseTo: 1
11CxlRejReason: 0
12Text: already partially filled 1{
 2  "Header": {
 3    "MsgType": "9",
 4    "MsgSeqNum": "98287534",
 5    "SenderCompID": "SENDER",
 6    "TargetCompID": "TARGET",
 7    "SendingTime": "20220907-02:45:32.274"
 8  },
 9  "OrderID": "jdjg8786864-hsf",
10  "ClOrdID": "dgte4-5762",
11  "OrigClOrderID": "dgte4-5758",
12  "OrdStatus": "1",
13  "TransactTime": "20220907-02:45:32.003",
14  "CxlRejResponseTo": "1",
15  "CxlRejReason": "0",
16  "Text": "Already partially filled"
17}