> For the complete documentation index, see [llms.txt](https://coindisco.gitbook.io/coindisco/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://coindisco.gitbook.io/coindisco/white-label-api/quote-and-offer-object.md).

# Quote and offer object

Quote responses combine amounts, normalized price information, availability context, and provider metadata.

## Core amount fields

| Field                   | Meaning                                                                         |
| ----------------------- | ------------------------------------------------------------------------------- |
| `currency_amount`       | Buy input or sell payout amount, depending on direction.                        |
| `cryptocurrency_amount` | Buy output or sell input amount.                                                |
| `total_fee`             | Monetary fee value returned for the quote.                                      |
| `profit_rate`           | Effective rate calculated from quote amounts.                                   |
| `true_fee`              | Percentage difference between effective rate and market reference.              |
| `quote_id`              | Provider quote identifier when supplied. Pass it when creating the transaction. |

## True Fee calculation

`profit_rate` is the effective rate implied by the quote amounts, and `true_fee` is its signed distance from the market reference, in percent.

For a buy quote:

```
profit_rate    = total_currency_amount / cryptocurrency_amount
true_fee       = (profit_rate - market_price) / market_price * 100
```

For a sell quote the sign is reversed, because a worse payout sits below the market price rather than above it:

```
profit_rate    = currency_amount / cryptocurrency_amount
true_fee       = (market_price - profit_rate) / market_price * 100
```

In both cases a higher `true_fee` is worse for the user. `true_fee` is `null` when no market reference is available for the pair.

Do not treat `true_fee` as interchangeable with:

* `total_fee`, which is a quoted monetary fee rather than a relative comparison;
* a provider's advertised processing fee;
* `discount_percent`, a provider promotion;
* a network or smart-contract fee, which is reported separately in the quote.

{% hint style="info" %}
`true_fee` is derived from a time-sensitive quote and a live market reference, so it changes when the quote is refreshed. A provider can also adjust the final checkout if the inputs change or the quote expires.
{% endhint %}

See [True Fee](/coindisco/what-makes-coindisco-different/true-fee.md) for the product-level explanation.

## Offer signals

| Field                  | Meaning                                                                          |
| ---------------------- | -------------------------------------------------------------------------------- |
| `is_best_rate`         | Best effective result in the current search.                                     |
| `is_recommended`       | Provider is recommended for comparable region, currency, and method conditions.  |
| `is_best_success_rate` | Provider has the strongest recent success-rate signal for comparable conditions. |
| `has_been_used_before` | Authenticated user previously completed a comparable provider transaction.       |
| `is_kyc_ready`         | Reusable KYC is ready for the authenticated user and provider.                   |
| `nokyc`                | Quote qualifies for the configured simplified-KYC combination and limit.         |

For anonymous White Label requests, user-specific flags such as `has_been_used_before` and `is_kyc_ready` can remain false.

## Provider promotion fields

The nested `service` can include:

* `discount_percent` for an active buy promotion;
* `discount_percent_sell` for an active sell promotion.

An expired promotion is returned as `null`. Display the promotion alongside, not instead of, the actual amount and True Fee.

## Indirect buy fields

When `buy_native` is false, `smart_contract_data` describes the intermediate asset, amount, and smart-contract fee. Preserve this object when creating the selected transaction.

```json
{
  "buy_native": false,
  "smart_contract_data": {
    "middle_cryptocurrency": {
      "id": 10,
      "name": "USD Coin",
      "symbol": "USDC"
    },
    "middle_cryptocurrency_amount": "100.25",
    "fee": "0.15"
  }
}
```
