developers:fixapi.cancelreplacerequest

Amending Working Orders


The Order Cancel-Replace Request message (MsgType=G) is used by the T4 FIX API to electronically amend (revise) the replaceable fields of working orders. This message is used for all CTS strategy types including outright futures, futures options, spreads, and multileg strategies.

The instrument for which the replace applies is identified with the following tags:

* Tag 48 = SecurityID * Tag 55 = Symbol * Tag 207 = SecurityExchange * Tag 167 = SecurityType

Options orders must also include:

* Tag 202 = Strike Price * Tag 201 = PutOrCall

All cancel-replaces must be uniquely identified with a verbose Client Order Id (Tag 11) between 12 and 20 characters. The subscribed account must also be provided.

Replaceable Fields


The fields that can be replaced:

Field Name Tag Number Comments
Order Quantity 38 For all Orders
Price 44 For Limits, Stop Limits, and Market-If-Touched
Stop Price 99 For Stops and Stop Limits
MaxShow 210 For Icebergs (if supported by Exchange)
Trailing Delta 10100 For Trailing Stops
Activation Value 10103 For Activation Orders

Identifying the Order to be Replaced


Working orders can be identified by:

* OrigClOrdId (Tag 41) – Client-side identifier of the target working order * OrderId (Tag 37) – T4 FIX API-generated unique identifier

Note: Orders with previous rejections can be replaced using either OrderId or the ClOrdId of the rejection.
Orders submitted outside the T4 FIX API (e.g., CTS T4 Front-End) must use OrderId (Tag 37), and OrigClOrdId should be set to the same value.
It is recommended to specify both OrigClOrdId and OrderId for all cancel-replaces.

Activating Queued Orders


For Queue Orders, the cancel-replace message is also used to activate held or suspended orders.

* Activation Value (Tag 10102) must be set to -1

Important Considerations


* Malformed replace orders will be rejected with a FIX Session Reject. * Application-level rejections are manifested with Cancel Reject messages. * All order routing must be preceded by a successful subscription to the account. See Collateral Inquiry for subscription instructions. * Contingent orders like OCO and AutoOCO can only be replaced one component at a time, identified by OrigClOrdID (Tag 41) and/or OrderID (Tag 37).

Message Dictionary


Tag Field Name Req'd Comments
Standard Header Y MsgType = G
1 Account Y Account (code) for which the order is submitted
11 ClOrdID Y Client-Side identifier for this replace order. Max characters: 20
41 OrigClOrdID Y Client-Side ClOrdID of the target working order. Max characters: 20
37 OrderId Y T4 API-generated unique identifier for the target working order
48 SecurityID Y T4 Market ID
55 Symbol Y T4 Contract ID
207 SecurityExchange Y T4 Exchange ID
167 SecurityType Y Instrument type (FUT, OPT, STK, SYN, BIN)
201 PutOrCall N For Options: 0=Put, 1=Call
202 StrikePrice N For Options: Strike Price
54 Side Y 0=None, 1=Buy, 2=Sell
38 OrderQty Y Number of contracts to replace. For partially filled orders, reflects original Quantity
210 MaxShow N Max visible quantity for Icebergs
40 OrdType Y Order Type. Some types cannot be replaced (Flatten, Hit, Market). Valid values: 1=Market, 2=Limit, 3=Stop, 4=Stop-Limit, J=Market If Touched, F=Flatten, N=Join, H=Hit
44 Price N Required for Limit, Stop-Limit, and Market-if-Touched. Auto OCO: relative to Trigger Price (Tag 10101). Negative allowed
99 StopPx N Required for Stops and Stop-Limit. Auto OCO: relative to Trigger Price (Tag 10101). Negative allowed
59 TimeInForce Y 0=Day, 1=GTC, 3=IOC, 4=FOK
200 MaturityMonthYear N Format YYYYMM
60 TransactTime Y Time order was requested (UTC)
21 HandlInst N 1=Automated private, 2=Automated public, 3=Manual
77 OpenClose N O=Open, C=Close
58 Text N Free form text
107 SecurityDesc N Description of SecurityID (Tag 48)
1028 ManualOrderIndicator N Y=Manual, N=Automated
10100 TrailingDelta N Trailing Stop amount
10103 ActivationValue N Conditions for ActivationType; multiple values delimited by “:”
Standard Trailer Y

Sample Messages

Replacing a Working Order entered through the T4 FIX API

[FIXCANCELREPLACE] 34=121|49=T4Example|56=T4|50=TraderName|52=20121212-16:43:37.426|1=Account1|11=fr-634909058174264921|41=fn-634909058088464770|37=C8D64D65-7FCD-472B-9A55-3E77F404F1BE|48=CME_20121200_ESZ2|55=ES|207=CME_Eq|54=1|38=1|40=2|44=143025|59=0|167=FUT|21=1|60=20121212-16:43:37.426|204=0|

[MsgSeqNum] 34 = 121
[SenderCompID] 49 = T4Example
[TargetCompID] 56 = T4
[SenderSubID] 50 = TraderName
[SendingTime] 52 = 20121212-16:43:37.426
[Account] 1 = Account1
[ClOrdID] 11 = fr-634909058174264921
[OrigClOrdID] 41 = fn-634909058088464770
[OrderID] 37 = C8D64D65-7FCD-472B-9A55-3E77F404F1BE
[SecurityID] 48 = CME_20121200_ESZ2
[Symbol] 55 = ES
[SecurityExchange] 207 = CME_Eq
[Side] 54 = 1 (BUY)
[OrderQty] 38 = 1
[OrdType] 40 = 2 (LIMIT)
[Price] 44 = 143025
[TimeInForce] 59 = 0 (DAY)
[SecurityType] 167 = FUT (FUTURE)
[HandlInst] 21 = 1 (AUTOMATED_EXECUTION_ORDER_PRIVATE_NO_BROKER_INTERVENTION)
[TransactTime] 60 = 20121212-16:43:37.426
[CustomerOrFirm] 204 = 0 (CUSTOMER)

[fixexecutionreport] 34=5702|49=T4|56=T4Example|50=T4FIX|52=20121212-16:43:37.457|143=US,IL|1=Account1|11=fr-634909058174264921|41=fn-634909058088464770|17=48187.71332576498_ESZ2.63490905838440000012.1.C8D64D65|150=5|37=C8D64D65-7FCD-472B-9A55-3E77F404F1BE|39=5|48=CME_20121200_ESZ2|55=ES|207=CME_Eq|200=201212|59=0|107=E-mini S&P 500 Dec12|54=1|167=FUT|38=1|40=2|44=143025|60=20121212-16:43:58.440|

[MsgSeqNum] 34 = 5702
[SenderCompID] 49 = T4
[TargetCompID] 56 = T4Example
[SenderSubID] 50 = T4FIX
[SendingTime] 52 = 20121212-16:43:37.457
[TargetLocationID] 143 = US,IL
[Account] 1 = Account1
[ClOrdID] 11 = fr-634909058174264921
[OrigClOrdID] 41 = fn-634909058088464770
[ExecID] 17 = 48187.71332576498_ESZ2.63490905838440000012.1.C8D64D65
[ExecType] 150 = 5 (REPLACE)
[OrderID] 37 = C8D64D65-7FCD-472B-9A55-3E77F404F1BE
[OrdStatus] 39 = 5 (REPLACED)
[SecurityID] 48 = CME_20121200_ESZ2
[Symbol] 55 = ES
[SecurityExchange] 207 = CME_Eq
[MaturityMonthYear] 200 = 201212
[TimeInForce] 59 = 0 (DAY)
[SecurityDesc] 107 = E-mini S&P 500 Dec12
[Side] 54 = 1 (BUY)
[SecurityType] 167 = FUT (FUTURE)
[OrderQty] 38 = 1
[OrdType] 40 = 2 (LIMIT)
[Price] 44 = 143025
[TransactTime] 60 = 20121212-16:43:58.440

Replacing a Working Order entered through the CTS Front-end

[FIXCANCELREPLACE] 34=6|49=T4Example|56=T4|50=TraderName|52=20121212-18:05:57.929|1=Account1|11=fr-634909107579297721|41=FA657BC9-A1D2-4644-B558-A1155C731DA4|37=FA657BC9-A1D2-4644-B558-A1155C731DA4|48=CME_20121200_ESZ2|55=ES|207=CME_Eq|54=1|38=1|40=2|44=143075|59=0|167=FUT|21=1|60=20121212-18:05:57.929|204=0|

[MsgSeqNum] 34 = 6
[SenderCompID] 49 = T4Example
[TargetCompID] 56 = T4
[SenderSubID] 50 = TraderName
[SendingTime] 52 = 20121212-18:05:57.929
[Account] 1 = Account1
[ClOrdID] 11 = fr-634909107579297721
[OrigClOrdID] 41 = FA657BC9-A1D2-4644-B558-A1155C731DA4
[OrderID] 37 = FA657BC9-A1D2-4644-B558-A1155C731DA4
[SecurityID] 48 = CME_20121200_ESZ2
[Symbol] 55 = ES
[SecurityExchange] 207 = CME_Eq
[Side] 54 = 1 (BUY)
[OrderQty] 38 = 1
[OrdType] 40 = 2 (LIMIT)
[Price] 44 = 143075
[TimeInForce] 59 = 0 (DAY)
[SecurityType] 167 = FUT (FUTURE)
[HandlInst] 21 = 1 (AUTOMATED_EXECUTION_ORDER_PRIVATE_NO_BROKER_INTERVENTION)
[TransactTime] 60 = 20121212-18:05:57.929
[CustomerOrFirm] 204 = 0 (CUSTOMER)

[fixexecutionreport] 34=236|49=T4|56=T4Example|50=T4FIX|52=20121212-18:05:58.023|143=US,IL|1=Account1|11=fr-634909107579297721|17=48199.71332626389_ESZ2.63490910779020000012.1.FA657BC9|150=5|37=FA657BC9-A1D2-4644-B558-A1155C731DA4|39=5|48=CME_20121200_ESZ2|55=ES|207=CME_Eq|200=201212|59=0|107=E-mini S&P 500 Dec12|54=1|167=FUT|38=1|40=2|44=143075|60=20121212-18:06:19.020|

[MsgSeqNum] 34 = 236
[SenderCompID] 49 = T4
[TargetCompID] 56 = T4Example
[SenderSubID] 50 = T4FIX
[SendingTime] 52 = 20121212-18:05:58.023
[TargetLocationID] 143 = US,IL
[Account] 1 = Account1
[ClOrdID] 11 = fr-634909107579297721
[ExecID] 17 = 48199.71332626389_ESZ2.63490910779020000012.1.FA657BC9
[ExecType] 150 = 5 (REPLACE)
[OrderID] 37 = FA657BC9-A1D2-4644-B558-A1155C731DA4
[OrdStatus] 39 = 5 (REPLACED)
[SecurityID] 48 = CME_20121200_ESZ2
[Symbol] 55 = ES
[SecurityExchange] 207 = CME_Eq
[MaturityMonthYear] 200 = 201212
[TimeInForce] 59 = 0 (DAY)
[SecurityDesc] 107 = E-mini S&P 500 Dec12
[Side] 54 = 1 (BUY)
[SecurityType] 167 = FUT (FUTURE)
[OrderQty] 38 = 1
[OrdType] 40 = 2 (LIMIT)
[Price] 44 = 143075
[TransactTime] 60 = 20121212-18:06:19.020

T4 FIX API Home

  • developers/fixapi.cancelreplacerequest.txt
  • Last modified: 2025/08/13 13:57
  • by rob