The order cancel/replace request 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 the Order Cancel Request (F) message for this purpose.
Cancel/Replace will be used to change any valid attribute of an open order (i.e. reduce/increase quantity, change limit price, change instructions, etc.), Subject (147) to agreement between counterparties, it can be used to re-open a filled order by increasing OrderQty.
An immediate response to this message is required. It is recommended that an ExecutionRpt with ExecType=Pending Replace be sent unless the Order Cancel/Replace Request can be immediately accepted (ExecutionRpt with ExecType=Replace) or rejected (Order Cancel Reject message).
The Cancel/Replace request will only be accepted if the order can successfully be pulled back from the exchange floor without executing. Requests which cannot be processed will be rejected using the Cancel Reject message. The Cancel Reject message should provide the ClOrdID (11) and OrigClOrdID (41) values which were specified on the Cancel/Replace Request message for identification.
Note that while it is necessary for the ClOrdID (11) to change and be unique, the brokers OrderID (37) field does not necessarily have to change as a result of the Cancel/Replace request.
In the event that the order sender wants to chain order cancel/replaces rapidly then they should ensure that each replace request contains the full details of the order as they would now like it to be. 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 replace request is rejected).
All of the application-level fields in the original order should be retransmitted with the original values in the Order Cancel/Replace 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), however, buy-side firms should note that sell-side firms may further restrict which fields they allow to change; hence bilateral agreement is required. For example, some sell-side firms may not allow fields such as Side, SettlDate, etc. to change. Sell-side firms should validate the Order Cancel/Replace Request to ensure that the client is not requesting a change for a field that the sell-side cannot change; in this case the sell-side should send a Cancel Reject message with CxlRejReason (102) = 2 (Broker/Exchange Option).
When modifying ExecInst (18) values in a replacement order, it is necessary to re-declare all ExecInst (18) in the replacement order. ExecInst (18) values will not be carried forward from the original order to the replacement unless re-declared.
| Tag | Field Name | FIXML | Req'd | Comments | |||
|---|---|---|---|---|---|---|---|
| <Standard Message Header> | Y | MsgType = G | |||||
| 37 | OrderID | @OrdID | N | Unique identifier of most recent order as assigned by sell-side (broker, exchange, ECN). | |||
| <Parties> | N | Insert here the set of "Parties" (firm identification) fields defined in "Common Components of Application Messages". | |||||
| 229 | TradeOriginationDate | @OrignDt | N | ||||
| 75 | TradeDate | @TrdDt | N | ||||
| 41 | OrigClOrdID | @OrigClOrdID | Y | ClOrdID of the previous non rejected order (NOT the initial order of the day) when canceling or replacing an order. | |||
| 11 | ClOrdID | @ClOrdID | Y | 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 (11) field of the Cancel Reject message if the replacement request is rejected. | |||
| 526 | SecondaryClOrdID | @ClOrdID2 | N | ||||
| 583 | ClOrdLinkID | @ClOrdLinkID | N | ||||
| 66 | ListID | @ListID | N | Required for List Orders | |||
| 586 | OrigOrdModTime | @OrigOrdModTm | N | TransactTime of the last state change that occurred to the original order | |||
| 1 | Account | @Acct | N | ||||
| 660 | AcctIDSource | @AcctIDSrc | N | ||||
| 581 | AccountType | @AcctTyp | N | ||||
| 589 | DayBookingInst | @DayBkngInst | N | ||||
| 590 | BookingUnit | @BkngUnit | N | ||||
| 591 | PreallocMethod | @PreallocMeth | N | ||||
| 70 | AllocID | @AllocID | N | Used to assign an overall allocation id to the block of preallocations | |||
| 78 | NoAllocs | PreAll | N | Number of repeating groups for pre-trade allocation | |||
| => | 79 | AllocAccount | @Acct | C | Required if NoAllocs (78) > 0. Must be first field in repeating group. | ||
| => | 661 | AllocAcctIDSource | @ActIDSrc | N | |||
| => | 736 | AllocSettlCurrency | @AllocSettlCcy | N | |||
| => | 467 | IndividualAllocID | @IndAllocID | N | |||
| => | <NestedParties> | N | Insert here the set of "Nested Parties" (firm identification "nested" within additional repeating group) fields defined in "Common Components of Application Messages". Used for NestedPartyRole=Clearing Firm | ||||
| => | 80 | AllocQty | @Qty | N | |||
| 63 | SettlType | @SettlTyp | N | ||||
| 64 | SettlDate | @SettlDt | C | Takes precedence over SettlType (63) value and conditionally required/omitted for specific SettlType (63) values. | |||
| 544 | CashMargin | @CshMgn | N | ||||
| 635 | ClearingFeeIndicator | @ClrFeeInd | N | ||||
| 21 | HandlInst | @HandlInst | N | ||||
| 18 | ExecInst | @ExecInst | N | 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). | |||
| 110 | MinQty | @MinQty | N | ||||
| 1089 | MatchIncrement | @MtchInc | N | ||||
| 1090 | MaxPriceLevels | @MxPxLvls | N | ||||
| <DisplayInstruction> | N | Insert here the set of "DisplayInstruction" fields defined in "common components of application messages". | |||||
| 111 | MaxFloor | @MaxFloor | N | (Deprecated in FIX.5.0) | |||
| 100 | ExDestination | @ExDest | N | ||||
| 1133 | ExDestinationIDSource | @ExDestIDSrc | N | ||||
| 386 | NoTradingSessions | TrdSes | N | Specifies the number of repeating TradingSessionIDs | |||
| => | 336 | TradingSessionID | @SesID | C | Required if NoTradingSessions (386) is > 0. | ||
| => | 625 | TradingSessionSubID | @SesSub | N | |||
| <Instrument> | Y | Insert here the set of "Instrument" fields defined in "Common Components of Application Messages". Must match original order | |||||
| <FinancingDetails> | N | Insert here the set of "FinancingDetails" fields defined in "Common Components of Application Messages". Must match original order | |||||
| 711 | NoUnderlyings | Undly | N | Number of underlyings | |||
| => | <UnderlyingInstrument> | C | Must be provided if Number of underlyings > 0 | ||||
| 54 | Side | @Side | Y | Should match original order's side, however, if bilaterally agreed to the following groups could potentially be interchanged: Buy and Buy Minus Sell, Sell Plus, Sell Short, and Sell Short Exempt Cross, Cross Short, and Cross Short Exempt | |||
| 60 | TransactTime | @TxnTm | Y | Time this order request was initiated/released by the trader or trading system. | |||
| 854 | QtyType | @QtyTyp | N | ||||
| <OrderQtyData> | Y | Insert here the set of "OrderQtyData" fields defined in "Common Components of Application Messages". Note: OrderQty (38) value should be the "Total Intended Order Quantity" (including the amount already executed for this chain of orders) | |||||
| 40 | OrdType | @OrdTyp | Y | ||||
| 423 | PriceType | @PxTyp | N | ||||
| 44 | Price | @Px | C | 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. | |||
| 1092 | PriceProtectionScope | @PxPrtScp | N | ||||
| 99 | StopPx | @StopPx | C | Required for OrdType (40) = "Stop" or OrdType (40) = "Stop limit". | |||
| <TriggeringInstruction> | N | Insert here the set of "TriggeringInstruction" fields defined in "common components of application messages". | |||||
| <SpreadOrBenchmarkCurveData> | N | Insert here the set of "SpreadOrBenchmarkCurveData" (Fixed Income spread or benchmark curve) fields defined in "Common Components of Application Messages". | |||||
| <YieldData> | N | Insert here the set of "YieldData" (yield-related) fields defined in "Common Components of Application Messages". | |||||
| <PegInstructions> | N | Insert here the set of "PegInstruction" fields defined in "Common Components of Application Messages". | |||||
| <DiscretionInstructions> | N | Insert here the set of "DiscretionInstruction" fields defined in "Common Components of Application Messages". | |||||
| 847 | TargetStrategy | @TgtStrategy | N | The target strategy of the order | |||
| 957 | NoStrategyParameters | StrpPrmGrp | N | Indicates number of strategy parameters | |||
| => | 958 | StrategyParameterName | @StrtPrmNme | C | Name of parameter | ||
| => | 959 | StrategyParameterType | @StrtPrmTyp | N | Datatype of the parameter. | ||
| => | 960 | StrategyParameterValue | @StrtPrmVal | N | Value of the parameter | ||
| 848 | TargetStrategyParameters | @TgtStrategyParameters | N | (Deprecated in FIX.5.0)For further specification of the TargetStrategy | |||
| 849 | ParticipationRate | @ParticipationRt | C | (Deprecated in FIX.5.0)Mandatory for a TargetStrategy=Participate order and specifies the target particpation rate. For other order types optionally specifies a volume limit (i.e. do not be more than this percent of the market volume) | |||
| 376 | ComplianceID | @ComplianceID | N | ||||
| 377 | SolicitedFlag | @SolFlag | N | ||||
| 15 | Currency | @Ccy | N | Must match original order. | |||
| 59 | TimeInForce | @TmInForce | N | Absence of this field indicates Day order | |||
| 168 | EffectiveTime | @EfctvTm | N | Can specify the time at which the order should be considered valid | |||
| 432 | ExpireDate | @ExpireDt | C | Conditionally required if TimeInForce (59) = GTD and ExpireTime (126) is not specified. | |||
| 126 | ExpireTime | @ExpireTm | C | Conditionally required if TimeInForce (59) = GTD and ExpireDate (432) is not specified. | |||
| 427 | GTBookingInst | @GTBkngInst | N | States whether executions are booked out or accumulated on a partially filled GT order | |||
| <CommissionData> | N | Insert here the set of "CommissionData" fields defined in "Common Components of Application Messages". | |||||
| 528 | OrderCapacity | @Cpcty | N | ||||
| 529 | OrderRestrictions | @Rstctions | N | ||||
| 1091 | PreTradeAnonymity | @PrTrdAnon | N | ||||
| 582 | CustOrderCapacity | @CustCpcty | N | ||||
| 121 | ForexReq | @ForexReq | N | Indicates that broker is requested to execute a Forex accommodation trade in conjunction with the security trade. | |||
| 120 | SettlCurrency | @SettlCcy | C | Required if ForexReq (121) = Y. | |||
| 775 | BookingType | @BkngTyp | N | 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. | |||
| 58 | Text | @Txt | N | ||||
| 354 | EncodedTextLen | @EncTxtLen | C | Must be set if EncodedText (355) field is specified and must immediately precede it. | |||
| 355 | EncodedText | @EncTxt | C | Encoded (non-ASCII characters) representation of the Text (58) field in the encoded format specified via the MessageEncoding (347) field. | |||
| 193 | SettlDate2 | @SettlDt2 | N | (Deprecated in FIX.5.0)Can be used with OrdType (40) = "Forex - Swap" to specify the "value date" for the future portion of a F/X swap. | |||
| 192 | OrderQty2 | @Qty2 | N | (Deprecated in FIX.5.0)Can be used with OrdType (40) = "Forex - Swap" to specify the order quantity for the future portion of a F/X swap. | |||
| 640 | Price2 | @Px2 | N | (Deprecated in FIX.5.0)Can be used with OrdType (40) = "Forex - Swap" to specify the price for the future portion of a F/X swap. | |||
| 77 | PositionEffect | @PosEfct | N | For use in derivatives omnibus accounting | |||
| 203 | CoveredOrUncovered | @Covered | N | For use with derivatives, such as options | |||
| 210 | MaxShow | @MaxShow | N | (Deprecated in FIX.5.0) | |||
| 114 | LocateReqd | @LocReqd | C | Required for short sell orders | |||
| 480 | CancellationRights | @CxllationRights | N | For CIV - Optional | |||
| 481 | MoneyLaunderingStatus | @MnyLaunderingStat | N | ||||
| 513 | RegistID | @RegistID | N | Reference to Registration Instructions (o) message for this Order. | |||
| 494 | Designation | @Designation | N | Supplementary registration information for this Order | |||
| 1028 | ManualOrderIndicator | @ManOrdInd | N | ||||
| 1029 | CustDirectedOrder | @CustDrctdOrd | N | ||||
| 1030 | ReceivedDeptID | @RcvdDptID | N | ||||
| 1031 | CustOrderHandlingInst | @CustOrdHdlInst | N | ||||
| 1032 | OrderHandlingInstSource | @OrdHndlInstSrc | N | ||||
| <TrdRegTimestamps> | N | ||||||
| <Standard Message Trailer> | Y | ||||||
© 2026.
EPAM Systems. All Rights Reserved.
All material contained within the website is copyright of EPAM Systems, Inc. No material contained herein can be copied or otherwise used without the express permission of the copyright holder.