---
api: 'Revolut X Crypto Exchange REST API'
---

# Accept RFQ quote

Accept a previously requested RFQ quote and place the RFQ order.

:::note[Availability]
RFQ trading is available to UK customers with passed KYC/KYB.
Additionally, UK retail clients must be categorised as High Net Worth investors.
:::

Pass the `signature` token from the [Request RFQ quote](https://developer.revolut.com/docs/api/revolut-x-crypto-exchange#request-rfq-quote) response.
The quote's terms (pair, side, size, and price) are taken from the signed token — they cannot be modified.

The signed token is bound to your account.
Treat it as single-use: once the downstream order has been submitted, retrying it does not create a second order.
If acceptance fails before submission, request a new quote rather than relying on replay.
- Tokens that are invalid or tampered with are rejected with `400`.
- Tokens that have expired are rejected with `422`.
- Tokens issued to a different account are rejected with `403`.

If immediate execution or the fincrime decision rejects the order, the endpoint returns `status: rejected` with a `reason`.
Insufficient balance and other processing failures are returned as HTTP errors instead.

#### Rate limits

| Limit | Total tokens | Refresh rate | Token cost rule |
| :--- | ---: | :--- | :--- |
| **Per-second limit** | 5 | 5 tokens / second | 1 token / request |

For retry guidance, see the `429 Rate Limit Exceeded` response below. The `Retry-After` header specifies the delay in milliseconds.

#### Required API key permissions

To call this endpoint, your API key must have the following permissions (scopes):

| Permission | Mapped scope | Audience |
| :--- | :--- | :--- |
| Trade | `rest.otc.trade` | Users |
| Trade | `agent.otc.trade` | Agentic clients |

For more information, see the guides: [RFQ trading](https://developer.revolut.com/docs/guides/crypto-exchange/rfq-trading/introduction-to-rfq-trading).

## Endpoint

POST `/1.0/otc/orders`

## Parameters

### header parameters

- `X-Revx-Timestamp` (integer, required)
  Current timestamp in Unix epoch milliseconds. 
  Used to prevent replay attacks and construct the signature.
  Provided with other authentication headers.

- `X-Revx-Signature` (string, required)
  The Ed25519 signature of the request. 
  Provided with other authentication headers.
  
  :::tip
  See the [Authenticate requests](https://developer.revolut.com/docs/guides/crypto-exchange/get-started/authenticate-requests) guide for details on how to generate this.
  :::

## Request body

The signed quote token to accept.

### Attributes

- `signature` (string)
    The `signature` token from the quote response.

## Returns

### 200

OK

The placed RFQ order.

#### Response attributes

- `data` (object)
    The placed RFQ order.
  - `data.transaction_id` (string)
      The unique identifier of the RFQ order returned by the flow. This is not necessarily the final ledger transaction ID; settlement may continue asynchronously.
  - `data.status` (enum)
      The immediate execution status of the RFQ order. Subsequent settlement and finalization may continue asynchronously.
      Possible enum values:

      - `filled`
      - `rejected`
  - `data.reason` (string, optional)
      Why the order was rejected. Present only when `status` is `rejected`.
- `metadata` (object)
    Metadata about the response.
  - `metadata.timestamp` (integer)
      The time the data was captured in Unix epoch milliseconds.

## Error responses

| HTTP status code | Description |
| --- | --- |
| 400 | Bad request  In addition to the standard error responses (like a malformed request), a `400` is returned when the quote token is invalid or tampered with. |
| 401 | Unauthorized |
| 403 | Forbidden  In addition to the standard error responses (like missing API key permissions), a `403` is returned when the quote was issued to a different account. |
| 422 | Unprocessable entity  In addition to the standard error responses (like a validation error), a `422` is returned when the quote has expired or does not exist. |
| 429 | Rate Limit Exceeded |
| 5XX | Server Error |
