Skip to main content

OTC RFQ for Taker

OTC RFQ (Request For Quote) enables takers to request block trade quotes from multiple liquidity providers, evaluate received quotes, and execute trades at the best available price. This workflow is designed for institutional clients who need to trade large sizes with minimal market impact.

RFQ Trading Flow

Step 1 — Request a Quote

Call the request-quote endpoint to create a new quote request. Key parameters include:

  • cl_quote_req_id — Client-assigned quote request ID for tracking
  • firm_quote — Whether quotes should be firm (guaranteed execution) or indicative
  • settlement_arrangementIMMEDIATE for instant settlement
  • duration — How long the quote request remains open (milliseconds)
  • quote_ttl — Time-to-live for received quotes (milliseconds)
  • leg_list — Array of instruments to trade (supports multi-leg combo trades)

The response returns a quote_req_id that identifies this request in subsequent calls.

Step 2 — Monitor Incoming Quotes

As liquidity providers respond to your quote request, you can retrieve quotes via REST polling or WebSocket subscriptions. Each quote includes bid and ask prices, available quantities, and an expiration time.

WebSocket Subscriptions (Recommended): Subscribe to real-time quote updates for lower latency:

  • Quote request status updates
  • Quote updates from makers
  • Deal execution updates

Step 3 — Accept a Quote

Call the request-deal endpoint to execute the trade with the best available quote. Required parameters:

  • deal_type — Set to QUOTE_REQUEST for RFQ flow
  • cl_deal_id — Client-assigned deal ID for tracking
  • quote_id — The ID of the quote you're accepting
  • quote_req_id — The original quote request ID
  • leg_list — Must match the quote's instrument, price, quantity, and side

Quote Request Lifecycle

StatusDescription
NEWQuote request created, not yet sent to makers
ACTIVEQuote request sent to makers, awaiting responses
COMPLETEDQuote accepted and deal executed
REJECTEDQuote request rejected

Quote Lifecycle

StatusDescription
ACTIVEQuote is valid and can be accepted
EXPIREDQuote has exceeded its TTL
CANCELEDMaker canceled the quote
FILLEDQuote was accepted and executed

Deal History

Use the deal history endpoint to retrieve executed trades. Deal statuses:

StatusDescription
ACCEPTEDDeal request accepted by the system.
CONFIRMEDLiquidity provider has executed the deal.
SETTLEDDeal settled and funds transferred.
REJECTEDDeal request rejected (quote expired, insufficient balance, etc.)

Best Practices

  • Use WebSocket subscriptions for production systems to receive real-time quote updates
  • Monitor quote expiration times to avoid accepting stale quotes
  • Track client IDs (cl_quote_req_id, cl_deal_id) for reconciliation and audit purposes