New Order

Message is New Order Single (35=D)

SubscriberOpenYieldTR
TagNameRequiredNotes
11ClOrdIDRequiredSubscriber order ID
18ExecInstOptionalG=AllOrNoneIf set, TimeInForce is ignored.
54SideRequired1=Buy·2=Sell
60TransactTimeRequiredTime the order was submitted
38OrderQtyRequiredQuantity in configured units
40OrdTypeRequired1=Market·2=Limit
423PriceTypeOptional1=Percentage (clean percent of face value)
44PriceOptionalRequired for Limit orders; ignored for Market orders
59TimeInForceOptional0=Day (also GoodTilCancel at OpenYield)·3=ImmediateOrCancel·4=FillOrKillDefault: Day (Limit), IOC (Market). Ignored if ExecInst=G is set.
640Price2OptionalDealer only: tiered price visible to other dealers
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
448PartyIDRequired
452PartyRoleRequiredRole of this party entry

Party Roles

RoleNameRequiredNotes
3Client IDRequiredYour assigned counterparty code (not MPID)
4Clearing FirmRequired (Y/O)Your MPID shown to contra firms. Optional if OpenYield can determine it via rules; mandatory if multiple MPIDs or configured so.
5Investor IDOptionalAccount / sub-account code if subscriber is configured for SubIDs
24Customer CodeRequired (Y/O)Pass-through tag; OpenYield returns this unchanged on all responses. Use for internal codes, strategy, algo, desk, portfolio, etc.
11Order Origination TraderRequired (Y/O)Obfuscated trader code for GUI users. OpenYield reflects it on all responses.
Repeating Group

SecurityBlock

The security being traded.

TagNameRequiredNotes
55SymbolRequiredSecurity identifier (ISIN, CUSIP, or FIGI per configuration)
48SecurityIDRequiredSecurity identifier (ISIN, CUSIP, or FIGI per configuration)
22SecurityIDSourceRequired1=CUSIP·4=ISIN·A=Bloomberg FIGI
460ProductRequired (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:

8=FIX.4.4 9=207 35=D 34=60 49=OPENEMS-TR 52=20231031-15:50:03.495 56=OPENYIELD-TR 11=OEMS-0002.0 22=4 38=10 40=2 44=100 48=USZ00000ZZ0X 54=2 55=USZ00000ZZ0X 60=20231031-15:50:03 423=1 453=2 448=RedBull 452=3 448=APCC 452=4 10=236

Message is Execution Report (35=8)

OrdStatus (39) = 0NewExecType (150) = 0New
OpenYieldSubscriberTRRQ
TagNameRequiredNotes
37OrderIDRequiredOpenYield's internal order ID
11ClOrdIDRequiredEchoes the client order ID
41OrigClOrdIDOptionalSet if the original order had one
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
38OrderQtyRequiredMatches order
44PriceRequiredMatches order
59TimeInForceRequired0=Day (also GoodTilCancel at OpenYield)·3=ImmediateOrCancel·4=FillOrKillMatches order
18ExecInstOptionalG=AllOrNoneMatches order
151LeavesQtyRequiredOrder quantity remaining
14CumQtyRequiredZero — no fills yet
6AvgPxRequiredZero — no fills yet
Repeating Group

PartyBlock-Execution(453 NoPartyIDs)

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

TagNameRequiredNotes
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
Repeating Group

SecurityBlock

The security being traded.

TagNameRequiredNotes
55SymbolRequiredSecurity identifier (ISIN, CUSIP, or FIGI per configuration)
48SecurityIDRequiredSecurity identifier (ISIN, CUSIP, or FIGI per configuration)
22SecurityIDSourceRequired1=CUSIP·4=ISIN·A=Bloomberg FIGI
460ProductRequired (Y/O)1=Agency·3=Corporate·6=Government·11=MunicipalRequired on OpenYield responses; optional on subscriber messages.
Repeating 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

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.

8=FIX.4.4 9=265 35=8 34=61 49=OPENYIELD-TR 52=20231031-15:50:03.498 56=OPENEMS-TR 6=0 11=OEMS-0002.0 14=0 17=RSP20231031-000000363 22=4 31=0 32=0 37=20 38=10 39=0 44=0 48=USZ00000ZZ0X 54=2 55=USZ00000ZZ0X 118=0 150=0 151=10 159=0 236=0 381=0 453=2 448=RedBull 452=3 448=OYLD 452=1 10=060