Quote Methods
The maker quote actions are WebSocket request/response methods on the same authenticated connection that carries your streams. Requests and responses use the standard envelope documented in Message Format:
Code
All three methods require an authenticated connection. The account identity on every call is the authenticated account — there is no account parameter.
Each method also requires a specific trading capability on your session: rfq.submit_quote and rfq.confirm_quote require place_orders, while rfq.withdraw_quote requires cancel_orders. A call from a session missing the required capability is rejected with -1004 (403). A key implication: a session scoped to place_orders but not cancel_orders can submit and confirm, but its rfq.withdraw_quote calls will fail with -1004.
rfq.submit_quote
Submit a quote on an open combo request-for-quote auction, discovered on the requestForQuote stream.
Quotes are immutable and limited to one per account per RFQ — they cannot be revised, and withdrawing does not free the slot. The quoting window is sealed: submission and withdrawal are not delivered to the requester or other makers while the auction is open. After close, the requester receives only the selected quote, keyed by quoteId and never attributed to your account; losing quotes remain undisclosed.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
rfqId | string | Yes | The request-for-quote to quote on, as broadcast on the requestForQuote stream. |
price | string | Yes | Single-sided bid per contract. Must be strictly between 0 and 1 and lie on the venue price tick; the default tick is 0.001. |
quantity | string | Yes | Maximum quantity this quote covers, in whole contracts. It must cover the complete request for the quote to be eligible at close. |
validUntil | integer | No | Close-time eligibility deadline as a Unix timestamp (ms). If supplied, it must be in the future. The quote remains eligible when validUntil >= w; a value before w expires it at close. If omitted, the service sets it to w. It is not checked after winner selection. |
Example
Code
Response:
Code
Keep the returned quoteId: acceptances on the requestForQuote@account stream and the withdraw/confirm methods are keyed by it.
At close, quote validity is evaluated against w, not the later time at which close processing happens. Eligible quotes are ranked by lowest price and then earliest submission. The venue checks maker collateral freshly in that order and falls through to the next candidate when necessary. A requester limit price, when present, is enforced during selection but is not exposed on the maker discovery stream.
Errors
| Code | Status | Meaning |
|---|---|---|
-1002 | 401 | Unauthorized — authentication required. |
-1013 | 400 | Invalid parameters — check rfqId, price, quantity, or validUntil. |
-2010 | 400 | Quote rejected — RFQ not found or no longer open, price off the tick grid, or a quote from this account already exists. |
rfq.withdraw_quote
Withdraw your own quote while the auction is still open and strictly before w. Withdrawal is final for that RFQ: a withdrawn quote is excluded from winner selection, cannot be reinstated, and does not free the one-quote-per-account slot.
The withdrawal is not delivered to the requester or other makers.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
rfqId | string | Yes | The request-for-quote the quote was submitted on. |
quoteId | string | Yes | The quote to withdraw, as returned by rfq.submit_quote. |
Example
Code
Response:
Code
Errors
| Code | Status | Meaning |
|---|---|---|
-1002 | 401 | Unauthorized — authentication required. |
-1013 | 400 | Invalid parameters — check rfqId and quoteId. |
-2010 | 400 | Withdraw rejected — RFQ or quote not found, not owned by this account, or the auction already closed. |
rfq.confirm_quote
The winning maker's last-look. When the requester accepts your quote, an ACCEPTED delivery arrives on the requestForQuote@account stream. The 1-second deadline begins when the RFQ enters CONFIRMING, so respond immediately:
confirm: true— authorize execution and proceed to settlement.confirm: false— decline and fail the RFQ.
An omitted confirm is rejected; it is never treated as an implicit decline.
Both confirmation and explicit decline must complete strictly before the deadline. If neither does, the RFQ fails automatically.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
rfqId | string | Yes | The request-for-quote awaiting your confirmation. |
quoteId | string | Yes | Your winning quote, as delivered on the requestForQuote@account stream. |
confirm | boolean | Yes | true confirms the trade and proceeds to settlement; false declines and fails the request-for-quote. |
Example
Code
Response:
Code
Errors
| Code | Status | Meaning |
|---|---|---|
-1002 | 401 | Unauthorized — authentication required. |
-1013 | 400 | Invalid parameters — check rfqId, quoteId, and confirm. |
-2010 | 400 | Confirm rejected — RFQ not awaiting this account's confirmation, or the quote is not the recorded winner. |
Shared error behavior
-1004(403) — missing required capability (place_ordersfor submit/confirm,cancel_ordersfor withdraw).-1003(429) — rate limited. Standard request-weight limits apply; see the Introduction.-1101(503) — the combo RFQ service is temporarily unavailable. Safe to retry with backoff.-1000(500) — internal error.
See also
- WebSocket Streams — the discovery and delivery streams these methods pair with.
- Maker Integration — the full workflow.
- Message Format — request/response envelope and general error codes.