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 trackingfirm_quote— Whether quotes should be firm (guaranteed execution) or indicativesettlement_arrangement—IMMEDIATEfor instant settlementduration— 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 toQUOTE_REQUESTfor RFQ flowcl_deal_id— Client-assigned deal ID for trackingquote_id— The ID of the quote you're acceptingquote_req_id— The original quote request IDleg_list— Must match the quote's instrument, price, quantity, and side
Quote Request Lifecycle
| Status | Description |
|---|---|
NEW | Quote request created, not yet sent to makers |
ACTIVE | Quote request sent to makers, awaiting responses |
COMPLETED | Quote accepted and deal executed |
REJECTED | Quote request rejected |
Quote Lifecycle
| Status | Description |
|---|---|
ACTIVE | Quote is valid and can be accepted |
EXPIRED | Quote has exceeded its TTL |
CANCELED | Maker canceled the quote |
FILLED | Quote was accepted and executed |
Deal History
Use the deal history endpoint to retrieve executed trades. Deal statuses:
| Status | Description |
|---|---|
ACCEPTED | Deal request accepted by the system. |
CONFIRMED | Liquidity provider has executed the deal. |
SETTLED | Deal settled and funds transferred. |
REJECTED | Deal 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