Update Order
Message is “Order Cancel Replace Request” (35=G)
| Tag | Name | Required | Notes |
|---|---|---|---|
| 41 | OrigClOrdID | Required | ClOrdID of the order being replaced |
| 11 | ClOrdID | Required | New subscriber order ID for this replacement |
| 18 | ExecInst | Optional | G=AllOrNone·Z=Single Fill or Cancel (SFC; cancel if not best)Must match original |
| 54 | Side | Required | 1=Buy·2=SellMust match original |
| 60 | TransactTime | Required | Time of the replacement request |
| 38 | OrderQty | Required | New quantity |
| 40 | OrdType | Required | 1=Market·2=LimitMust match original |
| 423 | PriceType | Optional | 1=Percentage (clean percent of face value) |
| 44 | Price | Required | New price |
| 59 | TimeInForce | Optional | 0=Day (59=0; good till cancel for the trading day at OpenYield)·3=ImmediateOrCancel·4=FillOrKillMust match original |
| 640 | Price2 | Optional | Dealer only: new tiered price |
PartyBlock-Inbound(453 NoPartyIDs)
Party block sent by subscribers on orders, quotes, and RFO requests. Identifies the trading party and optional sub-accounts.
| Tag | Name | Required | Notes |
|---|---|---|---|
| 453 | NoPartyIDsCount | Required | Number of party block entriesSet to the number of entries that follow. |
| The fields below repeat once per entry (count in NoPartyIDs) | |||
| 448 | PartyID | Required | — |
| 452 | PartyRole | Required | Role of this party entry |
Party Roles
| Role | Name | Required | Notes |
|---|---|---|---|
| 3 | Client ID | Required | Your assigned counterparty code (not MPID) |
| 4 | Clearing Firm | Conditional | Your 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. |
| 5 | Investor ID | Optional | Account / sub-account code, if the subscriber is configured for sub-accounts |
| 24 | Customer Code | Conditional | Pass-through tag; OpenYield returns this unchanged on all responses. Use for internal codes, strategy, algo, desk, portfolio, etc. |
| 11 | Order Origination Trader | Conditional | Obfuscated 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).
SecurityBlock
The security being traded.
| Tag | Name | Required | Notes |
|---|---|---|---|
| 55 | Symbol | Required | Same value as SecurityID (48) |
| 48 | SecurityID | Required | Security identifier (ISIN, CUSIP, or FIGI per configuration) |
| 22 | SecurityIDSource | Required | 1=CUSIP·4=ISIN·A=Bloomberg Symbol (FIGI) |
| 460 | Product | Conditional | 1=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:
Message is “Execution Report” (35=8)
| Tag | Name | Required | Notes |
|---|---|---|---|
| 37 | OrderID | Required | OpenYield's order ID |
| 11 | ClOrdID | Required | New ClOrdID of the replacement order |
| 41 | OrigClOrdID | Required | ClOrdID of the order being replaced |
| 17 | ExecID | Required | OpenYield's response ID for this message |
| 39 | OrdStatus | Required | 0=New·1=PartiallyFilled·2=Filled·4=Canceled·5=Replaced·8=Rejected·A=PendingNew·B=Calculated |
| 54 | Side | Required | 1=Buy·2=SellMatches order |
| 38 | OrderQty | Required | New order quantity |
| 44 | Price | Required | New order price |
| 59 | TimeInForce | Required | 0=Day (59=0; good till cancel for the trading day at OpenYield)·3=ImmediateOrCancel·4=FillOrKillMatches order |
| 18 | ExecInst | Optional | G=AllOrNone·Z=Single Fill or Cancel (SFC; cancel if not best)Matches order |
| 32 | LastQty | Required | 0 |
| 31 | LastPx | Required | 0 |
| 151 | LeavesQty | Required | Remaining quantity after replacement |
| 14 | CumQty | Required | Quantity filled so far (may be non-zero if partially filled before replace) |
| 6 | AvgPx | Required | Average fill price (zero if no fills) |
| 381 | GrossTradeAmt | Optional | Principal cash if partially filled |
| 157 | NumDaysInterest | Optional | Days of accrued interest, if partially filled |
| 159 | AccruedInterestAmt | Optional | Accrued interest, if partially filled |
| 118 | NetMoney | Optional | Settlement cash if partially filled |
PartyBlock-Execution(453 NoPartyIDs)
Party block returned by OpenYield on non-fill execution reports.
| Tag | Name | Required | Notes |
|---|---|---|---|
| 453 | NoPartyIDsCount | Required | Number of party block entriesSet to the number of entries that follow. |
| The fields below repeat once per entry (count in NoPartyIDs) | |||
| 448 | PartyID | Required | — |
| 452 | PartyRole | Required | Role of this party entry |
Party Roles
| Role | Name | Required | Notes |
|---|---|---|---|
| 3 | Client ID | Required | Matches order |
| 4 | Clearing Firm | Optional | Matches order |
| 5 | Investor ID | Optional | Matches order |
| 24 | Customer Code | Optional | Matches order |
| 11 | Order Origination Trader | Optional | Matches order |
| 1 | Executing Firm | Required | OpenYield MPID |
SecurityBlock
The security being traded.
| Tag | Name | Required | Notes |
|---|---|---|---|
| 55 | Symbol | Required | Same value as SecurityID (48) |
| 48 | SecurityID | Required | Security identifier (ISIN, CUSIP, or FIGI per configuration) |
| 22 | SecurityIDSource | Required | 1=CUSIP·4=ISIN·A=Bloomberg Symbol (FIGI) |
| 460 | Product | Conditional | 1=Agency·3=Corporate·6=Government·11=MunicipalRequired on OpenYield responses; optional on subscriber messages. |
ExecutionReportCore
Fields common to all order execution reports: ExecType discriminator and optional Yield.
| Tag | Name | Required | Notes |
|---|---|---|---|
| 150 | ExecType | Required | 0=New·4=Canceled·5=Replaced·8=Rejected·F=Trade·G=TradeCorrect·H=TradeCancel |
| 236 | Yield | Optional | Set for fixed- and zero-coupon bonds |
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.
| Tag | Name | Required | Notes |
|---|---|---|---|
| 232 | NoStipulationsCount | Optional | Number 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) | |||
| 233 | StipulationType | Required | MINQTY=Minimum Quantity·MININCR=Minimum Increment·MINDNOM=Minimum Balance Remaining (MINDNOM; OpenYield usage)MINQTY, MININCR, or MINDNOM |
| 234 | StipulationValue | Required | Numeric 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).