Receive a New Request for Order
Message is “Quote Request” (35=R)
| Tag | Name | Required | Notes |
|---|---|---|---|
| 131 | QuoteReqID | Required | Unique request ID. Reuse same ID for updates and cancels. |
| 146 | NoRelatedSym | Required | Must be 1 |
| 537 | QuoteType | Required | 0=Summon·1=Summon with a limit, or Legacy RFQRequired. 0 for a Summon. 1 for a Summon with a limit (send a price in 44), or for Legacy RFQ on a connection set up for it. The price does not change how the request is handled: with 537=1 and no price, nothing goes on the book, and responders are not told of updates or cancels. |
| 54 | Side | Required | 1=Buy·2=SellYour intent: Buy = request offers (OWIC); Sell = request bids (BWIC). |
| 38 | OrderQty | Required | Quantity in configured units (bonds by default). Set to 0 to cancel. |
| 63 | SettlType | Optional | 0=Regular settlement·6=Future dated settlementResponder-received only: Regular (0) for T+1, Future dated (6) when settlement is later |
| 64 | SettlDate | Optional | Responder-received only: settlement date (YYYYMMDD) any resulting trade will carry |
| 62 | ValidUntilTime | Optional | Responder-received only: the request time plus 5 seconds. On a Summon with a limit, the requester's limit goes on the book then; in Legacy RFQ, responses are forwarded to the requester then. |
| 126 | ExpireTime | Optional | Responder-received only: the request time plus 30 seconds. Responses, updates and cancels are accepted until then. |
| 423 | PriceType | Optional | 1=Percentage (clean percent of face value) |
| 44 | Price | Optional | Limit price as a percentage of face value. With 537=1 (Summon with a limit), a limit order goes on the book 5 seconds after the request. With 537=0 (Summon), no order is placed; the price is used only in the order-value check. Not sent to responders. Not needed to cancel. |
PartyBlock-Inbound(453 NoPartyIDs)
Party block sent by subscribers on orders, quotes, and Summon 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. |
Responders receive a QuoteRequest (35=R) message to respond to. The requester's identity and price are not included. QuoteReqID (131) is OpenYield's own request code, OrderQty (38) is in your connection's quantity unit, and OpenYield adds the settlement and timing fields, in UTC. QuoteType (537) is as the requester sent it: 0 for a Summon, or 1 for a Summon with a limit or Legacy RFQ.
ExpireTime (126) is 30 seconds after the request. Your quote, and any update or cancel of it, is accepted until then; after that it is rejected. ValidUntilTime (62) is 5 seconds after the request: on a Summon with a limit, the requester's limit goes on the book then, and in Legacy RFQ responses are forwarded to the requester then. Respond before 62 to be on the book when that happens. See Getting Started with Summon for all the timings.
SettlDate (64) is the settlement date any resulting trade will carry, and matches the SettlDate on the execution report. SettlType (63) is Regular (63=0) for standard T+1 settlement, or Future dated (63=6) when settlement is later, such as for a new issue that has not yet settled.
Side (54) is what your side will be on execution. It is set to Buy (54=1) if you receive a Bid Wanted (BWIC), where the initiator is selling and you would buy, or Sell (54=2) if you receive an Offer Wanted (OWIC), where the initiator is buying and you would sell.
For example, you receive a Bid Wanted (the initiator is selling, so your side is 54=1, Buy) for 100 (38=100) of US023135CF19, settling regular on 2025-02-18 (T+1 over the Presidents' Day holiday). In this example, 62 is 5 seconds and 126 is 10 seconds after the request; in production, 126 is 30 seconds after the request:
Updates and cancels of the request. On a Summon (537=0), you receive the QuoteRequest again with the same QuoteReqID (131): an update carries the new OrderQty (38) and the original 62 and 126, and a cancel carries 38=0. With 537=1, you are not told of updates or cancels.
At 126, OpenYield cancels your quote only if your connection is set up for it (see Automated Quote Cancel). Otherwise it stays on the book.