> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cdp.coinbase.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Prime FIX 5.0 RFQ

> Request, receive, and accept spot RFQ quotes through the Coinbase Prime FIX 5.0 API.

Prime FIX 5.0 supports the complete request-for-quote (RFQ) flow for enabled spot accounts:

1. Send a `QuoteRequest (R)`.
2. Receive a `Quote (S)` or a rejection through `QuoteAcknowledgement (b)`.
3. Accept the quote with `NewOrderSingle (D)` before it expires.

<Info>RFQ messages support `SecurityType=SPOT` only. Quote requests must use a positive limit price and Fill or Kill time in force.</Info>

## QuoteRequest (R)

Send a QuoteRequest to request an executable quote. Provide exactly one of `OrderQty` or `CashOrderQty`.

| Tag  | Name                  | Data Type | Req | Description                                                                                                                                    |
| :--- | :-------------------- | :-------- | :-- | :--------------------------------------------------------------------------------------------------------------------------------------------- |
| 1    | Account               | String    | Y   | Portfolio identifier                                                                                                                           |
| 131  | QuoteReqID            | String    | Y   | Unique client identifier for the quote request                                                                                                 |
| 55   | Symbol                | String    | Y   | Spot product identifier, such as `BTC-USD`                                                                                                     |
| 167  | SecurityType          | String    | Y   | Must be `SPOT`                                                                                                                                 |
| 54   | Side                  | Char      | Y   | `1` = Buy<br />`2` = Sell                                                                                                                      |
| 40   | OrdType               | Char      | Y   | Must be `2` = Limit                                                                                                                            |
| 59   | TimeInForce           | Char      | Y   | Must be `4` = Fill or Kill (FOK)                                                                                                               |
| 38   | OrderQty              | Qty       | C   | Positive quantity in base units. Required when CashOrderQty is not provided.                                                                   |
| 152  | CashOrderQty          | Qty       | C   | Positive quantity in quote units. Required when OrderQty is not provided. Availability is account-dependent.                                   |
| 44   | Price                 | Price     | Y   | Positive limit price                                                                                                                           |
| 120  | SettlCurrency         | Currency  | N   | Settlement currency. Echoed on the Quote or QuoteAcknowledgement when provided.                                                                |
| 8090 | QuoteRequestGoodForMs | Int       | N   | Requested RFQ auction duration in milliseconds; maximum 30,000 ms, inclusive of the 250 ms LP quote window. Availability is account-dependent. |

If both quantity fields are present, or if Price or the selected quantity is not positive, Prime rejects the request.

## Quote (S)

Prime sends a Quote when the request succeeds. For a buy request, the response contains OfferPx and OfferSize. For a sell request, it contains BidPx and BidSize.

| Tag | Name           | Data Type    | Req | Description                                         |
| :-- | :------------- | :----------- | :-- | :-------------------------------------------------- |
| 117 | QuoteID        | String       | Y   | Coinbase identifier for the quote                   |
| 131 | QuoteReqID     | String       | Y   | QuoteReqID from the QuoteRequest                    |
| 1   | Account        | String       | Y   | Portfolio identifier                                |
| 55  | Symbol         | String       | Y   | Spot product identifier                             |
| 167 | SecurityType   | String       | Y   | `SPOT`                                              |
| 132 | BidPx          | Price        | C   | Quoted price for a sell request                     |
| 134 | BidSize        | Qty          | C   | Quoted size for a sell request                      |
| 133 | OfferPx        | Price        | C   | Quoted price for a buy request                      |
| 135 | OfferSize      | Qty          | C   | Quoted size for a buy request                       |
| 62  | ValidUntilTime | UTCTimestamp | Y   | Time at which the quote expires                     |
| 120 | SettlCurrency  | Currency     | N   | Settlement currency from the request, when provided |

## QuoteAcknowledgement (b)

Prime sends a QuoteAcknowledgement when the quote workflow rejects a valid QuoteRequest. Invalid or unsupported FIX fields are rejected at the session or business-message layer instead.

| Tag | Name              | Data Type | Req | Description                                                          |
| :-- | :---------------- | :-------- | :-- | :------------------------------------------------------------------- |
| 131 | QuoteReqID        | String    | Y   | QuoteReqID from the QuoteRequest                                     |
| 117 | QuoteID           | String    | N   | Coinbase quote identifier, when one was assigned                     |
| 1   | Account           | String    | Y   | Portfolio identifier                                                 |
| 55  | Symbol            | String    | Y   | Spot product identifier                                              |
| 167 | SecurityType      | String    | Y   | `SPOT`                                                               |
| 297 | QuoteAckStatus    | Int       | Y   | `5` = Rejected                                                       |
| 300 | QuoteRejectReason | Int       | Y   | See [QuoteRejectReason (300)](./code-sets.mdx#quoterejectreason-300) |
| 120 | SettlCurrency     | Currency  | N   | Settlement currency from the request, when provided                  |
| 58  | Text              | String    | N   | Human-readable rejection details                                     |

## Accept a quote

Send a `NewOrderSingle (D)` before ValidUntilTime. Include the standard [NewOrderSingle fields](./order-entry.mdx#newordersingle-d) and these RFQ-specific values:

| Tag | Name         | Data Type | Req | Description                 |
| :-- | :----------- | :-------- | :-- | :-------------------------- |
| 40  | OrdType      | Char      | Y   | `D` = Previously Quoted     |
| 44  | Price        | Price     | Y   | Price returned in the Quote |
| 59  | TimeInForce  | Char      | Y   | `4` = Fill or Kill (FOK)    |
| 117 | QuoteID      | String    | Y   | QuoteID from the Quote      |
| 167 | SecurityType | String    | Y   | `SPOT`                      |

Prime returns order status changes, fills, or rejections through [ExecutionReport (8)](./order-entry.mdx#executionreport-8).
