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

# Cancel RFQ

> Cancel an open request for quote

Cancels an open RFQ before it expires or is filled. Only the original `requesterAddress` may cancel. Once cancelled, the RFQ transitions to `CANCELLED` and no further quotes or acceptances are accepted.

## Authentication

Requires an instance API key with the `trading` service enabled.

## Idempotency

This endpoint accepts an optional `Idempotency-Key` header. Reusing a key with a different body returns `IDEMPOTENCY_MISMATCH`.

## Path Parameters

<ParamField path="id" type="string" required>
  The RFQ identifier. Max 100 characters.
</ParamField>

## Request Body

<ParamField body="requesterAddress" type="string" required>
  EVM address of the requester. Must match the RFQ's original `requesterAddress`. Format `0x[a-fA-F0-9]{40}`.
</ParamField>

<RequestExample>
  ```json theme={null}
  {
    "requesterAddress": "0x1111111111111111111111111111111111111111"
  }
  ```
</RequestExample>

<ResponseExample>
  ```json theme={null}
  {
    "success": true,
    "data": {
      "id": "rfq_abc123",
      "status": "CANCELLED",
      "cancelledAt": "2025-01-15T10:30:06.000Z"
    },
    "metadata": {
      "requestId": "550e8400-e29b-41d4-a716-446655440000",
      "timestamp": "2025-01-15T10:30:06.000Z",
      "instanceId": "inst_abc"
    }
  }
  ```
</ResponseExample>

## Error Codes

| Code                   | Status | Description                                          |
| ---------------------- | ------ | ---------------------------------------------------- |
| `NOT_FOUND`            | 404    | No RFQ found with this ID in your instance           |
| `FORBIDDEN`            | 403    | The caller is not the RFQ requester                  |
| `RFQ_EXPIRED`          | 410    | The RFQ has already expired                          |
| `IDEMPOTENCY_MISMATCH` | 409    | Idempotency key reused with a different request body |
| `INVALID_PARAM`        | 400    | Invalid RFQ identifier                               |
