Initiate a New Request for Order

Message is “Quote Request” (35=R)

bothbothRQ
TagNameRequiredNotes
131QuoteReqIDRequiredUnique request ID. Reuse same ID for updates and cancels.
146NoRelatedSymRequiredMust be 1
537QuoteTypeOptional0=Indicative (Order Book Summon)·1=Tradeable (Firm RFO)Defaults to Tradeable.
54SideRequired1=Buy·2=SellYour intent: Buy = request offers (OWIC); Sell = request bids (BWIC).
38OrderQtyRequiredQuantity in configured units (bonds by default). Set to 0 to cancel.
63SettlTypeOptional0=Regular settlement·6=Future dated settlementResponder-received only: Regular (0) for T+1, Future dated (6) when settlement is later
64SettlDateOptionalResponder-received only: settlement date (YYYYMMDD) any resulting trade will carry
62ValidUntilTimeOptionalResponder-received only: end of collection window
126ExpireTimeOptionalResponder-received only: end of firm window
423PriceTypeOptional1=Percentage (clean percent of face value)
44PriceOptionalReserve price as a percentage of face value. When canceling (OrderQty=0), also set to 0.
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.

New RFOs are sent on the Request Quote session (-RQ suffix). OpenYield validates the request and also checks that:

  • the security is supported on the platform
  • the quantity is within compliance limits
  • the reserve price (if set) is within compliance limits of mid-market or the opening price
Note

Side (54) is what you want to do: set it to Sell (54=2) if you want bids back (BWIC), or Buy (54=1) if you want offers back (OWIC).

Note

ValidUntilTime (62) and ExpireTime (126) may be set, but are ignored, as are any other fields not listed in the table below.

For example, to send a Bid Wanted (54=2, Sell) to sell 100 (38=100) of US023135CF19 with a reserve price of 101.255 (44=101.255):

8=FIX.4.4 9=193 35=R 34=9 49=BASTION-RQ 52=20250213-18:48:22.941 56=OPENYIELD-RQ 131=REQ-MUN-0002 146=1 55=US023135CF19 48=US023135CF19 22=4 537=1 54=2 38=100 44=101.255 453=2 448=Bastion 452=3 448=OYLD 452=1 10=038

OpenYield acknowledges the request with OrdStatus Pending New (39=A) and ExecType New (150=0). SD in the IDs identifies OpenYield's staging engine:

8=FIX.4.4 9=326 35=8 34=13 49=OPENYIELD-RQ 52=20250213-18:48:22.997 56=BASTION-RQ 6=0 11=REQ-MUN-0002 14=0 17=RSP20250213-SD-000000000002 22=4 31=0 32=0 37=ORD20250213-SD-000000000005 38=100 39=A 44=0 48=US023135CF19 54=2 55=US023135CF19 118=0 136=0 150=0 151=100 157=0 159=0 236=0 381=0 453=3 448=Bastion 452=3 448=BAST 452=4 448=OYLD 452=1 10=058

If a reserve price was set, when OpenYield places the order on the marketplace at the end of the collection window, it acknowledges this by changing the order status to New (39=0). The live order has a new OrderID (37); OD in the IDs identifies the marketplace:

8=FIX.4.4 9=326 35=8 34=16 49=OPENYIELD-RQ 52=20250213-18:48:27.001 56=BASTION-RQ 6=0 11=REQ-MUN-0002 14=0 17=RSP20250213-OD-000000000016 22=4 31=0 32=0 37=ORD20250213-OD-000000000008 38=100 39=0 44=0 48=US023135CF19 54=2 55=US023135CF19 118=0 136=0 150=0 151=100 157=0 159=0 236=0 381=0 453=3 448=Bastion 452=3 448=BAST 452=4 448=OYLD 452=1 10=025