Update Order

Message is “Order Cancel Replace Request” (35=G)

SubscriberOpenYieldTR
TagNameRequiredNotes
41OrigClOrdIDRequiredClOrdID of the order being replaced
11ClOrdIDRequiredNew subscriber order ID for this replacement
18ExecInstOptionalG=AllOrNone·Z=Single Fill or Cancel (SFC; cancel if not best)Must match original
54SideRequired1=Buy·2=SellMust match original
60TransactTimeRequiredTime of the replacement request
38OrderQtyRequiredNew quantity
40OrdTypeRequired1=Market·2=LimitMust match original
423PriceTypeOptional1=Percentage (clean percent of face value)
44PriceRequiredNew price
59TimeInForceOptional0=Day (59=0; good till cancel for the trading day at OpenYield)·3=ImmediateOrCancel·4=FillOrKillMust match original
640Price2OptionalDealer only: new tiered price
Repeating Group

PartyBlock-Inbound(453 NoPartyIDs)

Party block sent by subscribers on orders, quotes, and RFO requests. Identifies the trading party and optional sub-accounts.

TagNameRequiredNotes
453NoPartyIDsCountRequiredNumber of party block entriesSet to the number of entries that follow.
The fields below repeat once per entry (count in NoPartyIDs)
448PartyIDRequired—
452PartyRoleRequiredRole of this party entry

Party Roles

RoleNameRequiredNotes
3Client IDRequiredYour assigned counterparty code (not MPID)
4Clearing FirmConditionalYour MPID shown to contra firms. Optional if OpenYield can determine it via rules; required if you have multiple MPIDs or are configured to send it.
5Investor IDOptionalAccount / sub-account code, if the subscriber is configured for sub-accounts
24Customer CodeConditionalPass-through tag; OpenYield returns this unchanged on all responses. Use for internal codes, strategy, algo, desk, portfolio, etc.
11Order Origination TraderConditionalObfuscated trader code for GUI users. OpenYield reflects it on all responses.

Optionally add a PartySubID block (802/523/803) under role 4 if the subscriber has multiple accounts at the same DTCC clearing firm (set PartySubIDType 803=10, PartySubID 523=clearing account code).

Field Group

SecurityBlock

The security being traded.

TagNameRequiredNotes
55SymbolRequiredSame value as SecurityID (48)
48SecurityIDRequiredSecurity identifier (ISIN, CUSIP, or FIGI per configuration)
22SecurityIDSourceRequired1=CUSIP·4=ISIN·A=Bloomberg Symbol (FIGI)
460ProductConditional1=Agency·3=Corporate·6=Government·11=MunicipalRequired on OpenYield responses; optional on subscriber messages.

Send an OrderCancelReplaceRequest (35=G) to modify the price (44) or quantity (38) of a resting limit order. Market orders cannot be replaced.

Set OrigClOrdID (41) to the most recent ClOrdID of the order being replaced, and assign a new ClOrdID (11) — this becomes the active order ID going forward and must be used in any subsequent replace or cancel. Changing side, security, TimeInForce, or Investor ID will be rejected.

If the order is partially filled, fills already booked are preserved. How OrderQty (38) is interpreted on a replace depends on your Order Quantity Model (by default, send the total intended quantity).

For example, replace order OEMS-0002.0 at a new price of 101.00 (44=101), assigning ClOrdID OEMS-0002.1:

8=FIX.4.4 9=222 35=G 34=64 49=OPENEMS-TR 52=20231031-15:51:40.041 56=OPENYIELD-TR 11=OEMS-0002.1 22=4 38=10 40=2 41=OEMS-0002.0 44=101 48=USZ00000ZZ0X 54=2 55=USZ00000ZZ0X 60=20231031-15:51:40 423=1 453=2 448=RedBull 452=3 448=APCC 452=4 10=013

Message is “Execution Report” (35=8)

OrdStatus (39) = 5— ReplacedExecType (150) = 5— Replaced
OpenYieldSubscriberTRRQ
TagNameRequiredNotes
37OrderIDRequiredOpenYield's order ID
11ClOrdIDRequiredNew ClOrdID of the replacement order
41OrigClOrdIDRequiredClOrdID of the order being replaced
17ExecIDRequiredOpenYield's response ID for this message
39OrdStatusRequired0=New·1=PartiallyFilled·2=Filled·4=Canceled·5=Replaced·8=Rejected·A=PendingNew·B=Calculated
54SideRequired1=Buy·2=SellMatches order
38OrderQtyRequiredNew order quantity
44PriceRequiredNew order price
59TimeInForceRequired0=Day (59=0; good till cancel for the trading day at OpenYield)·3=ImmediateOrCancel·4=FillOrKillMatches order
18ExecInstOptionalG=AllOrNone·Z=Single Fill or Cancel (SFC; cancel if not best)Matches order
32LastQtyRequired0
31LastPxRequired0
151LeavesQtyRequiredRemaining quantity after replacement
14CumQtyRequiredQuantity filled so far (may be non-zero if partially filled before replace)
6AvgPxRequiredAverage fill price (zero if no fills)
381GrossTradeAmtOptionalPrincipal cash if partially filled
157NumDaysInterestOptionalDays of accrued interest, if partially filled
159AccruedInterestAmtOptionalAccrued interest, if partially filled
118NetMoneyOptionalSettlement cash if partially filled
Repeating Group

PartyBlock-Execution(453 NoPartyIDs)

Party block returned by OpenYield on non-fill execution reports.

TagNameRequiredNotes
453NoPartyIDsCountRequiredNumber of party block entriesSet to the number of entries that follow.
The fields below repeat once per entry (count in NoPartyIDs)
448PartyIDRequired—
452PartyRoleRequiredRole of this party entry

Party Roles

RoleNameRequiredNotes
3Client IDRequiredMatches order
4Clearing FirmOptionalMatches order
5Investor IDOptionalMatches order
24Customer CodeOptionalMatches order
11Order Origination TraderOptionalMatches order
1Executing FirmRequiredOpenYield MPID
Field Group

SecurityBlock

The security being traded.

TagNameRequiredNotes
55SymbolRequiredSame value as SecurityID (48)
48SecurityIDRequiredSecurity identifier (ISIN, CUSIP, or FIGI per configuration)
22SecurityIDSourceRequired1=CUSIP·4=ISIN·A=Bloomberg Symbol (FIGI)
460ProductConditional1=Agency·3=Corporate·6=Government·11=MunicipalRequired on OpenYield responses; optional on subscriber messages.
Field Group

ExecutionReportCore

Fields common to all order execution reports: ExecType discriminator and optional Yield.

TagNameRequiredNotes
150ExecTypeRequired0=New·4=Canceled·5=Replaced·8=Rejected·F=Trade·G=TradeCorrect·H=TradeCancel
236YieldOptionalSet for fixed- and zero-coupon bonds
Repeating GroupOptional

StipulationsBlock(232 NoStipulations)

Optional Minima constraints on a resting order or quote. When present, restricts the quantities a taker may fill against this maker order. Encoded as a FIX stipulations repeating group.

TagNameRequiredNotes
232NoStipulationsCountOptionalNumber of Minima stipulations in the repeating groupSet to the number of entries that follow. Not sent when the group has no entries.
The fields below repeat once per entry (count in NoStipulations)
233StipulationTypeRequiredMINQTY=Minimum Quantity·MININCR=Minimum Increment·MINDNOM=Minimum Balance Remaining (MINDNOM; OpenYield usage)MINQTY, MININCR, or MINDNOM
234StipulationValueRequiredNumeric value for the stipulation

OpenYield responds with an Execution Report (35=8, ExecType 150=5 Replaced, OrdStatus 39=5 Replaced) confirming the replacement. The order retains the same OrderID (37).

8=FIX.4.4 9=271 35=8 34=65 49=OPENYIELD-TR 52=20231031-15:51:40.044 56=OPENEMS-TR 6=0 11=OEMS-0002.1 14=0 17=RSP20231031-000000364 22=4 31=0 32=0 37=20 38=10 39=5 44=0 48=USZ00000ZZ0X 54=2 55=USZ00000ZZ0X 118=0 150=5 151=10 157=0 159=0 236=0 381=0 453=2 448=RedBull 452=3 448=OYLD 452=1 10=073