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}