360X
API ReferenceRESTWebsocketsFIX
SupportStatusWebsite
API ReferenceRESTWebsocketsFIX
SupportStatusWebsite
  1. FIX
  • Introduction
  • Getting Started
  • Connectivity Setup
  • Authentication
  • Session Management
  • Instrument Discovery
  • Market Data
  • Order Management
  • Request for Quote (RFQ)
  • Message Reference
  • Error Handling
  • Code Examples
  • Troubleshooting
  • Support & Ressources
  • Appendix
  • Exchange FIX Dictionary Downloads
  1. FIX

Request for Quote (RFQ)

RFQ Overview:
The Request for Quote (RFQ) workflow enables price discovery through a three-phase process: request initiation, quote provision, and quote acceptance/rejection. It's particularly valuable for large orders, illiquid instruments, or when seeking competitive pricing from multiple counterparties.
Business Context:
RFQs are standard practice in fixed income and OTC derivatives markets. They allow buyers and sellers to solicit firm prices before committing to trades, enabling better execution and price transparency. The platform supports bilateral RFQs where requesters target specific counterparties identified by LEI (Legal Entity Identifier).

RFQ Workflow Overview#

Complete RFQ Lifecycle#

QuoteRequest (35=R)#

Purpose:
The QuoteRequest message initiates an RFQ, soliciting price quotes from one or more counterparties. The requester specifies the instrument, side, quantity, and target counterparty.
When to Use:
For large orders requiring price discovery
When seeking competitive quotes before trading
For illiquid instruments without visible market depth
To establish bilateral trading relationships
Before executing block trades
Business Context:
QuoteRequests are the foundation of negotiated trading. They signal trading interest to counterparties and invite firm pricing. The platform validates the request, stores it, and broadcasts it to the specified counterparty (identified by CounterpartyLEI). Multiple quotes may be received from different counterparties, allowing the requester to select the best price.

QuoteRequest Tags#

TagNameRequiredDescription
131QuoteReqIDYUnique RFQ identifier
1AccountYAccount ID
48SecurityIDYISIN code
22SecurityIDSourceY4 = ISIN
38OrderQtyNDesired quantity
54SideY1=BUY, 2=SELL
59TimeInForceN0=DAY, 1=GTC, 6=GTD
126ExpireTimeNRequired if TIF=6
36010ReportingPartyLEINRequester's LEI
36012CounterpartyLEIYCounterparty's LEI

Example QuoteRequest#

8=FIXT.1.1|9=XXX|35=R|
131=RFQ-123456|1=ACC-001|
48=DE000BASF111|22=4|38=1000000|54=1|
59=1|
36012=549300VVUQHJQ56LTY28|
10=XXX|

QuoteStatusReport (35=AI)#

Purpose:
The QuoteStatusReport provides lifecycle status updates for RFQs and quotes. It confirms RFQ creation, quote acceptance, rejections, expirations, and cancellations.
When to Use:
QuoteStatusReports are sent by the server automatically. Clients receive them:
After sending QuoteRequest (Status=ACTIVE confirms RFQ created)
After counterparty sends Quote (Status=ACCEPTED confirms quote received)
After requester passes on quote (Status=REJECTED)
When RFQs or quotes expire (Status=EXPIRED)
When RFQs or quotes are cancelled (Status=CANCELED)
Business Context:
Status reports provide transparency into the RFQ workflow. They confirm that requests were processed, quotes were accepted by the platform, and final outcomes (acceptance, rejection, expiration). This enables robust RFQ management and audit trails.

QuoteStatusReport Tags#

TagNameRequiredDescription
649QuoteStatusReqIDNFrom QuoteStatusRequest
131QuoteReqIDNFrom QuoteRequest
117QuoteIDNQuote identifier
693QuoteRespIDNFrom QuoteResponse
297QuoteStatusYStatus code (see below)
48SecurityIDYISIN code
22SecurityIDSourceY4 = ISIN
58TextNAdditional details
36010ReportingPartyLEIYLEI of quote creator

QuoteStatus Values (Tag 297)#

ValueDescriptionWhen Sent
0ACCEPTEDQuote/RFQ accepted
5REJECTEDQuote/RFQ rejected
7EXPIREDQuote/RFQ expired
16ACTIVERFQ active, awaiting quotes
17CANCELEDQuote/RFQ canceled

Example QuoteStatusReport#

8=FIXT.1.1|9=XXX|35=AI|
131=RFQ-123456|297=16|
48=DE000BASF111|22=4|
36010=549300VVUQHJQ56LTY28|
10=XXX|

QuoteRequestReject (35=AG)#

Purpose:
The QuoteRequestReject message allows counterparties to decline an RFQ. It signals that the counterparty will not provide a quote, along with a reason code.
When to Use:
When a counterparty cannot or will not provide a quote
When market conditions are unfavorable for quoting
When the requested instrument is unknown or unavailable
When authorization or credit limits prevent quoting
When declining to participate in the RFQ (PASS)
Business Context:
Not all RFQs result in quotes. Counterparties may decline for various reasons - lack of inventory, unfavorable market conditions, credit concerns, or simply choosing not to participate. QuoteRequestReject provides transparency and allows the requester to seek quotes from other counterparties or adjust the RFQ parameters.

QuoteRequestReject Tags#

TagNameRequiredDescription
131QuoteReqIDYRFQ identifier
1AccountYAccount ID
48SecurityIDYISIN code
22SecurityIDSourceY4 = ISIN
658QuoteRequestRejectReasonYRejection reason
58TextNAdditional details
36010ReportingPartyLEIYLEI of requester
36012CounterpartyLEINLEI of counterparty (if rejecting)

QuoteRequestRejectReason Values (Tag 658)#

ValueDescription
1Unknown Symbol
2Exchange/Security Closed
6Not Authorized to Request Quote
10Pass (Counterparty declines)
99Other

Example (Counterparty Pass)#

8=FIXT.1.1|9=XXX|35=AG|
131=RFQ-123456|
48=DE000BASF111|22=4|1=ACC-001|
658=10|58=Market conditions unfavorable|
36010=549300VVUQHJQ56LTY28|
36012=213800X8XXQXXR1QLX47|
10=XXX|

Quote (35=S)#

Purpose:
The Quote message provides a firm price in response to an RFQ. It represents the counterparty's willingness to trade at the specified price and quantity.
When to Use:
In response to a QuoteRequest from a requester
When willing to provide firm pricing for the requested instrument
When market conditions allow for competitive pricing
As part of market-making or liquidity provision strategies
Business Context:
Quotes are firm commitments to trade. When a counterparty sends a Quote, they're expressing willingness to execute at the quoted price and size. The requester can then decide to accept (Hit/Lift) or decline (Pass) the quote. Quotes include either bid or offer prices depending on the side, along with corresponding quantities.

Quote Tags#

TagNameRequiredDescription
117QuoteIDYUnique quote ID
131QuoteReqIDYRFQ ID from QuoteRequest
1AccountYAccount ID
48SecurityIDYISIN code
22SecurityIDSourceY4 = ISIN
54SideY1=BUY, 2=SELL
132BidPxNBid price (if Side=BUY)
133OfferPxNOffer price (if Side=SELL)
134BidSizeNBid quantity (if Side=BUY)
135OfferSizeNOffer quantity (if Side=SELL)
59TimeInForceN0=DAY, 1=GTC, 6=GTD
126ExpireTimeNRequired if TIF=6
36010ReportingPartyLEINQuote creator's LEI

Example (Sell Quote)#

8=FIXT.1.1|9=XXX|35=S|
117=Q-789012|131=RFQ-123456|
1=ACC-002|48=DE000BASF111|22=4|
54=2|133=1.0860|135=1000000|
59=1|
10=XXX|
Important Notes:
Side (Tag 54) in Quote represents the counterparty's side, which is opposite to the requester's side
If requester wants to BUY (Side=1), counterparty quotes SELL (Side=2) with OfferPx/OfferSize
If requester wants to SELL (Side=2), counterparty quotes BUY (Side=1) with BidPx/BidSize

QuoteResponse (35=AJ)#

Purpose:
The QuoteResponse message is the requester's decision on a received quote. It can either accept the quote (HIT_LIFT), executing a trade, or decline it (PASS).
When to Use:
After receiving a Quote from a counterparty
To accept a favorable quote and execute a trade (Type=HIT_LIFT)
To decline a quote without trading (Type=PASS)
As part of quote comparison when multiple quotes are received
Business Context:
QuoteResponse closes the RFQ loop. After reviewing received quotes, the requester decides whether to trade. Accepting a quote (HIT_LIFT) triggers trade execution and results in ExecutionReports for both parties. Passing on a quote allows the requester to wait for better quotes or abandon the RFQ. The platform enhanced QuoteResponse to include full order details (ClOrdID, Side, Price, Quantity, OrdType) for Hit/Lift scenarios, enabling proper trade matching.

QuoteResponse Tags (All Types)#

TagNameRequiredDescription
693QuoteRespIDYUnique response ID
117QuoteIDYQuote being responded to
694QuoteRespTypeY1=HIT_LIFT, 6=PASS
48SecurityIDYISIN code
22SecurityIDSourceY4 = ISIN
36010ReportingPartyLEIYResponder's LEI
36012CounterpartyLEIYQuote creator's LEI

Additional Tags for Hit/Lift (Type=1)#

TagNameRequiredDescription
11ClOrdIDYClient order ID for resulting trade
54SideY1=BUY, 2=SELL
44PriceYAccepted price
38OrderQtyYAccepted quantity
40OrdTypeY1=MARKET, 2=LIMIT

QuoteRespType Values (Tag 694)#

ValueDescription
1HIT_LIFT (Accept)
6PASS (Reject)

Example (Accept - Hit/Lift)#

8=FIXT.1.1|9=XXX|35=AJ|
693=QR-345678|117=Q-789012|694=1|
48=DE000BASF111|22=4|
11=QA-111222|54=1|44=1.0860|38=1000000|40=2|
36010=549300VVUQHJQ56LTY28|
36012=213800X8XXQXXR1QLX47|
10=XXX|

Example (Pass - Decline)#

8=FIXT.1.1|9=XXX|35=AJ|
693=QR-345679|117=Q-789012|694=6|
48=DE000BASF111|22=4|
36010=549300VVUQHJQ56LTY28|
36012=213800X8XXQXXR1QLX47|
10=XXX|

QuoteCancel (35=Z)#

Purpose:
The QuoteCancel message allows participants to cancel an active quote or RFQ. This provides control over exposure and enables withdrawal from the RFQ process.
When to Use:
To cancel an active RFQ before receiving quotes
To withdraw a quote before the requester accepts
When market conditions change and quote is no longer valid
To manage risk by removing outstanding quotes
Before end of trading day to clear pending quotes/RFQs
Business Context:
Cancellation flexibility is essential for risk management. Market conditions change rapidly, and participants need the ability to withdraw quotes or RFQs that no longer align with their trading strategy or risk limits. The platform supports both quote-specific and RFQ-specific cancellations.

QuoteCancel Tags#

TagNameRequiredDescription
131QuoteReqIDNRFQ ID (for RFQ cancel)
117QuoteIDNQuote ID (for quote cancel)
298QuoteCancelTypeYCancel type (see below)
36010ReportingPartyLEIYCanceller's LEI

QuoteCancelType Values (Tag 298)#

ValueDescription
1Cancel for One or More Securities
4Cancel All Quotes
5Cancel Quote Specified in QuoteID

Example QuoteCancel#

8=FIXT.1.1|9=XXX|35=Z|
117=Q-789012|298=5|
36010=549300VVUQHJQ56LTY28|
10=XXX|
Response: QuoteStatusReport (35=AI) with QuoteStatus=17 (CANCELED)
Modified at 2026-03-09 15:06:12
Previous
Order Management
Next
Message Reference