New Order
Message is “New Order Single” (35=D)
| Tag | Name | Required | Notes |
|---|---|---|---|
| 11 | ClOrdID | Required | Subscriber order ID |
| 18 | ExecInst | Optional | G=AllOrNoneIf 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 |
| 40 | OrdType | Required | 1=Market·2=Limit |
| 423 | PriceType | Optional | 1=Percentage (clean percent of face value) |
| 44 | Price | Optional | Required for Limit orders; ignored for Market orders |
| 59 | TimeInForce | Optional | 0=Day (also GoodTilCancel at OpenYield)·3=ImmediateOrCancel·4=FillOrKillDefault: Day (Limit), IOC (Market). Ignored if ExecInst=G 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 |
|---|---|---|---|
| 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 | Required (Y/O) | Your MPID shown to contra firms. Optional if OpenYield can determine it via rules; mandatory if multiple MPIDs or configured so. |
| 5 | Investor ID | Optional | Account / sub-account code if subscriber is configured for SubIDs |
| 24 | Customer Code | Required (Y/O) | Pass-through tag; OpenYield returns this unchanged on all responses. Use for internal codes, strategy, algo, desk, portfolio, etc. |
| 11 | Order Origination Trader | Required (Y/O) | Obfuscated trader code for GUI users. OpenYield reflects it on all responses. |
SecurityBlock
The security being traded.
| Tag | Name | Required | Notes |
|---|---|---|---|
| 55 | Symbol | Required | Security identifier (ISIN, CUSIP, or FIGI per configuration) |
| 48 | SecurityID | Required | Security identifier (ISIN, CUSIP, or FIGI per configuration) |
| 22 | SecurityIDSource | Required | 1=CUSIP·4=ISIN·A=Bloomberg FIGI |
| 460 | Product | Required (Y/O) | 1=Agency·3=Corporate·6=Government·11=MunicipalRequired on OpenYield responses; optional on subscriber messages. |
Send new orders on the Trading session (*-TR). Price must be within the Compliance Level; quantity may exceed top-of-market size.
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 top-of-market 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: Day (default for Limit) or IOC/FOK. Set ExecInst=G for All-or-None; when set, TimeInForce is ignored. Day orders are good until end-of-day or disconnect, whichever comes first.
Party Block: Include at least one entry for your Customer ID. Add a second entry with your Investor ID if the order is on behalf of a specific account — OpenYield uses it for matching and post-trade allocation.
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 client 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 (also GoodTilCancel at OpenYield)·3=ImmediateOrCancel·4=FillOrKillMatches order |
| 18 | ExecInst | Optional | G=AllOrNoneMatches 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 |
|---|---|---|---|
| 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 | Security identifier (ISIN, CUSIP, or FIGI per configuration) |
| 48 | SecurityID | Required | Security identifier (ISIN, CUSIP, or FIGI per configuration) |
| 22 | SecurityIDSource | Required | 1=CUSIP·4=ISIN·A=Bloomberg FIGI |
| 460 | Product | Required (Y/O) | 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 |
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.