New Order
Message is “New Order Single” (35=D)
| Tag | Name | Required | Notes |
|---|---|---|---|
| 11 | ClOrdID | Required | Subscriber order ID |
| 18 | ExecInst | Optional | G=AllOrNone·Z=Single Fill or Cancel (SFC; cancel if not best)G (AllOrNone) or Z (Single Fill or Cancel). Mutually exclusive. If set, TimeInForce is ignored. |
| 54 | Side | Required | 1=Buy·2=Sell |
| 60 | TransactTime | Required | Time the order was submitted |
| 38 | OrderQty | Required | Quantity in configured units (bonds by default) |
| 40 | OrdType | Required | 1=Market·2=Limit |
| 423 | PriceType | Optional | 1=Percentage (clean percent of face value) |
| 44 | Price | Conditional | Required for Limit orders; ignored for Market orders |
| 59 | TimeInForce | Optional | 0=Day (59=0; good till cancel for the trading day at OpenYield)·3=ImmediateOrCancel·4=FillOrKillDefault: Day (Limit), IOC (Market). Ignored if ExecInst is set. |
| 640 | Price2 | Optional | Dealer only: tiered price visible to other dealers |
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. |
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 |
Send new orders on the Trading session (-TR suffix). Price must be within OpenYield's compliance limits (see Constraints); quantity may exceed the size at the top of book.
Set ClOrdID (11) to your unique order identifier — it is echoed in all responses and used as OrigClOrdID (41) in subsequent replaces and cancels.
Limit orders rest on the book. If the order crosses the market at entry, OpenYield fills at the top of book and books the remainder as a resting order. Expect one or more fill messages.
Market orders fill immediately against available liquidity. Any unfilled remainder is canceled — equivalent to an equity IOC. Market orders cannot be replaced, only canceled.
TimeInForce (59): Day (59=0, the default for Limit orders) or IoC (59=3) / FoK (59=4). Day behaves as good-till-cancel for the trading day: the order rests until filled, canceled, end of day, or disconnect, whichever comes first. Do not send 59=1.
Order types (ExecInst, 18): Set ExecInst=G for All-or-None (AoN), or ExecInst=Z for Single Fill or Cancel (SFC) — must fill completely in a single execution off the top of book, otherwise canceled. G and Z are mutually exclusive; when either is set, TimeInForce is ignored.
Party Block: Include PartyRole 3 (Client ID) with your assigned counterparty code, and PartyRole 4 (Clearing Firm) if required. Add PartyRole 5 (Investor ID) if the order is on behalf of a specific account — OpenYield uses it for matching and post-trade allocation. See Party Blocks.
Minima: Optionally include a Stipulations block (232/233/234) to set minimum-trade constraints on the resting order. See Minima for the full rule set and encoding details.
For example, a new Sell (54=2) Limit Order (40=2) for 10 bonds (38=10) at 100.0 (44=100) on USZ00000ZZ0X:
Message is “Execution Report” (35=8)
| Tag | Name | Required | Notes |
|---|---|---|---|
| 37 | OrderID | Required | OpenYield's internal order ID |
| 11 | ClOrdID | Required | Echoes the subscriber order ID |
| 41 | OrigClOrdID | Optional | Set if the original order had one |
| 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 | Matches order |
| 44 | Price | Required | Matches order |
| 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 |
| 151 | LeavesQty | Required | Order quantity remaining |
| 14 | CumQty | Required | Zero — no fills yet |
| 6 | AvgPx | Required | Zero — no fills yet |
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=0 New, OrdStatus 39=0 New) acknowledging the order. Note OrderID (37) — OpenYield's internal order identifier, included in all subsequent messages for this order.