Log in

G Order Cancel/Replace Request

This message is used to change the parameters of an existing order.

Do not use this message to cancel the remaining quantity of an outstanding order, use Order Cancel Request <35=F> instead.

This request can be used to change any valid attribute of an open order, e.g. to reduce or increase quantity, to change limit price, or to change instructions. Subject to agreement between counterparties, it can be used to re-open a filled order by increasing OrderQty (38).

An immediate response to this message is required. It is recommended that an Execution Report <35=8> with ExecType (150) = "Pending Replace", be sent unless the request can be immediately accepted or rejected.

The request will only be accepted if the order can successfully be pulled from the exchange without executing. Requests which cannot be processed will be rejected using the Order Cancel Reject <35=9> message. The Order Cancel Reject <35=9> message should provide the ClOrdID (11) and OrigClOrdID (41) values which were specified on the request.

While it is necessary for the ClOrdID (11) to change and be unique, the broker's OrderID (37) field does not necessarily have to change as a result of an accepted request.

The protocol supports the chaining of multiple cancel/replace requests, though trading counterparties may not support this functionality. Care should be taken if the order owner wishes to send a cancel/replace request when there is any cancel/replace requests which have not yet been accepted or rejected. In general:

  • The order sender should chain client order ids on an 'optimistic' basis, i.e. set the OrigClOrdID (41) to the last non-rejected ClOrdID (11) sent
  • The order receiver should chain client order ids on a 'pessimistic' basis, i.e. set the OrigClOrdID (41) on execution reports that convey the receipt or successful application of a cancel/replace and Order Cancel Reject <35=9> messages to be the last 'accepted' ClOrdID (11)

In the event that an application chains order cancel/replaces rapidly, it should ensure that each request contains the desirable state of the order in full. For example, if an attempt is made to change the limit price and then an immediate request to change the quantity is issued, then if the desired behaviour is that both the limit price and quantity should be changed then the second request should include the revised limit price, in case the first request is rejected.

All of the application-level fields in the original order should be retransmitted with the original values in the request, except the fields that are being changed.

Any field may be changed with this message except those in the Instrument component block and limited changes to the Side (54) field, noted below. Applications may further restrict which fields are allowed to change, so bilateral agreement is required. For example, some firms may not allow fields such as Side (54) to change. Applications should validate the request to ensure that it does not attempt to change a field that cannot change; if it does, a Order Cancel Reject <35=9> with CxlRejReason (102) = 2 should be sent.

When modifying ExecInst (18) values in a replacement order, it is necessary to re-declare all ExecInst (18)s. ExecInst (18) values will not be carried forward from the original order to the replacement unless re-declared.

Structure

TagNameTypeRequiredDescription
Component
Required
37String
Unique identifier of most recent order as assigned by sell-side (broker, exchange, ECN)
2422Int
Required if provided on the order being replaced (or cancelled). Echo back the value provided by the requester
Component
This is party information related to the submitter of the request
Component
Identifies parties not directly associated with or owning the order, who are to be informed to effect processing of the order
229LocalMktDate
75LocalMktDate
41String
ClOrdID(11) of the previous non rejected order (NOT the initial order of the day) when canceling or replacing an order
11String
Required
Unique identifier of replacement order as assigned by institution or by the intermediary with closest association with the investor. Note that this identifier will be used in ClOrdID field of the Cancel Reject message if the replacement request is rejected
526String
583String
2829Boolean Enum
66String
Required for List Orders
586UTCTimestamp
TransactTime of the last state change that occurred to the original order
1String
660Int Enum
581Int Enum
589Char Enum
590Char Enum
591Char Enum
70String
Used to assign an overall allocation id to the block of preallocations
Component
Number of repeating groups for pre-trade allocation
63String Enum
For NDFs either SettlType or SettlDate should be specified
64LocalMktDate
Takes precedence over SettlType value and conditionally required/omitted for specific SettlType values
544Char Enum
635String Enum
21Char Enum
18MultipleCharValue Enum
Can contain multiple instructions, space delimited. Replacement order must be created with new parameters (i.e. original order values will not be brought forward to replacement order unless redefined within this message)
1805Int Enum
110Quantity
1822Int Enum
1089Quantity
1090Int
2676Percentage
Component
Component
2362String
May be used as an alternative to MatchingInstructions when the identifier does not appear in another field
2964Int Enum
Component
Component
Specifies instructions to disclose certain order level information in market data
111Quantity
1300String
100Exchange
1133Char Enum
2704Int Enum
Component
Specifies the number of repeating TradingSessionIDs
Component
Required
Must match original order
Component
Must match original order
Component
Number of underlyings
54Char Enum
Required
Should match original order's side, however, if bilaterally agreed to the following groups could potentially be interchanged:
2102Boolean
1688Int Enum
Available for optional use when Side(54) = 6(Sell short exempt)
60UTCTimestamp
Required
Time this order request was initiated/released by the trader or trading system
Component
854Int Enum
Component
Required
OrderQty(38) value should be the "Total Intended Order Quantity" (including the amount already executed for this chain of orders)
40Char Enum
Required
423Int Enum
44Price
Required for limit OrdTypes. For F/X orders, should be the "all-in" rate (spot rate adjusted for forward points). Can be used to specify a limit price for a pegged order, previously indicated, etc
2838Price
May be used to correct the initial working price of the parent order when this (child) order was entered
1092Char Enum
99Price
Required for OrdType = "Stop" or OrdType = "Stop limit"
Component
The set of "TriggeringInstruction" fields defined in "common components of application messages"
Component
Component
Component
Component
847Int Enum
The target strategy of the order
Component
Strategy parameter block
848String
For further specification of the TargetStrategy
849Percentage
Mandatory for a TargetStrategy=Participate order and specifies the target particpation rate
376String
2404String
2351Length
Must be set if EncodedComplianceText(2352) field is specified and must immediately precede it
2352Data
Encoded (non-ASCII characters) representation of the ComplianceText(2404) field in the encoded format specified via the MessageEncoding(347) field
377Boolean Enum
15Currency
Must match original order
2897String Enum
59Char Enum
Absence of this field indicates Day order
168UTCTimestamp
Can specify the time at which the order should be considered valid
432LocalMktDate
Conditionally required if TimeInForce = GTD and ExpireTime is not specified
126UTCTimestamp
Conditionally required if TimeInForce = GTD and ExpireDate is not specified
427Int Enum
States whether executions are booked out or accumulated on a partially filled GT order
1629Int
Conditionally required when TimeInForce(59)=10 (Good for Time)
1916Int Enum
Component
Component
Use as an alternative to CommissionData component if multiple commissions or enhanced attributes are needed
528Char Enum
529MultipleCharValue Enum
1815Int Enum
1091Boolean
1390Int Enum
Applies to trades resulting from the order
582Int Enum
Component
121Boolean Enum
Indicates that broker is requested to execute a Forex accommodation trade in conjunction with the security trade
120Currency
Required if ForexReq=Y
2899String Enum
Component
2795Int Enum
775Int Enum
Method for booking out this order. Used when notifying a broker that an order to be settled by that broker is to be booked out as an OTC derivative (e.g. CFD or similar). Absence of this field implies regular booking
58String
354Length
Must be set if EncodedText field is specified and must immediately precede it
355Data
Encoded (non-ASCII characters) representation of the Text field in the encoded format specified via the MessageEncoding field
193LocalMktDate
Can be used with OrdType = "Forex - Swap" to specify the "value date" for the future portion of a F/X swap
192Quantity
Can be used with OrdType = "Forex - Swap" to specify the order quantity for the future portion of a F/X swap
640Price
Can be used with OrdType = "Forex - Swap" to specify the price for the future portion of a F/X swap
1816Int Enum
77Char Enum
For use in derivatives omnibus accounting
203Int Enum
For use with derivatives, such as options
210Quantity
114Boolean Enum
Required for short sell orders
480Char Enum
For CIV - Optional
481Char Enum
513String
Reference to Registration Instructions message for this Order
494String
Supplementary registration information for this Order
1028Boolean
1029Boolean
1030String
1031MultipleStringValue Enum
1032Int Enum
1724Int Enum
2882Int Enum
May be used for cross orders submitted with single order messages
1725String
1726String
2883Int Enum
2884Int Enum
May be used for cross orders submitted with single order messages
522Int Enum
2679Int Enum
Can be used to request change of order ownership
Component
1685Int Enum
1803Int Enum
Conditionally required for auction orders
1804Percentage
1810Int Enum
1811Quantity
Component
Required