> For a complete page index, fetch https://docs.transak.com/llms.txt

# How to Display Quote Disclaimers

## Overview

Regulators in the US, the EEA and the UK require users to see certain notices before they buy or sell crypto. If you build your own checkout with the White-label API, you must show them in your UI.

Every [Get Quote API](/api/whitelabel/lookup/get-quote) response includes a `termsIds` array that lists the disclaimers for that quote. For each ID, show the text from this guide on the screen listed in [Terms IDs](#terms-ids).

| Users         | Terms IDs                                                                                                                                                                                                       | Why                                                                                                                                                                                                                                                                                                                                      |
| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **US users**  | [`TRANSAK_TERMS_OF_SERVICE`](#transak-terms-of-service), [`COINME_USER_AGREEMENT`](#coinme-user-agreement), [`US_TERMS_RETURNING`](#returning-us-users), [`ZEROHASH_USER_AGREEMENT`](#zero-hash-user-agreement) | Each US order is executed by Transak, Coinme or Zero Hash, and the user must agree to that provider's terms. A quote returns only one or two of these IDs, never all of them: the provider's terms on the user's first Transak or Coinme order and on every Zero Hash order, and `US_TERMS_RETURNING` on later Transak or Coinme orders. |
| **EEA users** | [`MICA_EEA_BUY`](#mica-buy-disclaimer), [`MICA_EEA_SELL`](#mica-sell-disclaimer)                                                                                                                                | Under MiCA, the user must see that the exchange rate is an estimate before they pay.                                                                                                                                                                                                                                                     |
| **UK users**  | [`GB_INVESTMENT_RISK_WARNING`](#uk-investment-risk-warning)                                                                                                                                                     | Under FCA rules, the user must see a risk warning before they invest.                                                                                                                                                                                                                                                                    |

Transak decides which IDs to return for each quote based on:

* **User's KYC country:** the disclaimers depend on the country from the user's KYC. If you call Get Quote without user authentication headers, `termsIds` is always empty.
* **Order type:** for EEA users, buy quotes return [`MICA_EEA_BUY`](#mica-buy-disclaimer) and sell quotes return [`MICA_EEA_SELL`](#mica-sell-disclaimer).
* **Order history (Transak and Coinme):** on the user's first order with the provider, the quote returns its full terms ([`TRANSAK_TERMS_OF_SERVICE`](#transak-terms-of-service) or [`COINME_USER_AGREEMENT`](#coinme-user-agreement)). On later orders, it returns a shorter confirmation, [`US_TERMS_RETURNING`](#returning-us-users). Transak keeps track of this, so you only need to show what `termsIds` returns.
* **Zero Hash orders:** [`ZEROHASH_USER_AGREEMENT`](#zero-hash-user-agreement) has no shorter version. The quote returns it on every order, so always show the full agreement.

The fiat currency of the quote does not decide which disclaimers are returned. An EEA user paying in USD still gets [`MICA_EEA_BUY`](#mica-buy-disclaimer), and a EUR quote for a user outside the EEA gets no MiCA disclaimer.

**Always show what termsIds returns:** Show exactly the disclaimers in `termsIds`. Do not choose disclaimers yourself from the user’s country, currency or payment method.

## How it works?

#### Call the Get Quote API with the user's details

Call the [Get Quote API](/api/whitelabel/lookup/get-quote) with the headers for your authentication method:

| Authentication method            | Headers to pass                                                                           |
| -------------------------------- | ----------------------------------------------------------------------------------------- |
| **Transak Auth**                 | `authorization`: the user's access token                                                  |
| **Partner Auth (Auth Reliance)** | `x-access-token`: your partner access token `x-user-identifier`: the user's email address |

What `termsIds` returns depends on whether the user is logged in:

| User state        | `termsIds`                             | What to do                                                                      |
| ----------------- | -------------------------------------- | ------------------------------------------------------------------------------- |
| **Not logged in** | Empty array                            | Show no disclaimer.                                                             |
| **Logged in**     | Disclaimers for the user's KYC country | Get a new quote with the authentication headers above, and show its `termsIds`. |

#### Read the termsIds from the response

The response contains a `termsIds` array with the disclaimers that apply to this quote:

```json
{
  "data": {
    "termsIds": ["ZEROHASH_USER_AGREEMENT"],
    "quoteId": "097a4e42-553d-4162-834f-b02006cf0dd7",
    "fiatCurrency": "USD",
    "cryptoCurrency": "USDC",
    "network": "ethereum",
    ...
  }
}
```

`termsIds` is always present, and is an empty array when nothing applies. The IDs can change when the user changes the crypto asset, network, payment method or amount, so read `termsIds` from every quote you fetch.

#### Show the disclaimer for each ID

For each ID in `termsIds`, show the matching disclaimer on the screen listed in [Terms IDs](#terms-ids).

* Show the full text. Do not shorten it, collapse it, or hide part of it behind a "See more" link.
* Keep all links clickable, and open them in a new tab.
* Use the button label listed for the disclaimer. The first-order texts say "By clicking “Agree and Confirm Order,”", so the button must read **Agree and Confirm order**.
* If `termsIds` contains more than one ID, show every disclaimer, in the order returned.
* Keep each disclaimer visible until the user places the order.

#### Place the order

Once the user has seen the disclaimers and pressed the button, create the order with the `quoteId` from the same quote.

**Required for go-live:** Transak reviews your checkout before go-live. A checkout that does not show every disclaimer returned in `termsIds` will not be approved.

## Terms IDs

These are the Terms IDs that the Get Quote API can return in `termsIds`, with the screen where each disclaimer is shown.

| Terms ID                                                    | Screen                    | Disclaimer                                                | Sample |
| ----------------------------------------------------------- | ------------------------- | --------------------------------------------------------- | ------ |
| [`TRANSAK_TERMS_OF_SERVICE`](#transak-terms-of-service)     | Order confirmation screen | [Transak Terms of Service](#transak-terms-of-service)     |        |
| [`COINME_USER_AGREEMENT`](#coinme-user-agreement)           | Order confirmation screen | [Coinme User Agreement](#coinme-user-agreement)           |        |
| [`US_TERMS_RETURNING`](#returning-us-users)                 | Order confirmation screen | [Returning US Users](#returning-us-users)                 |        |
| [`ZEROHASH_USER_AGREEMENT`](#zero-hash-user-agreement)      | Order confirmation screen | [Zero Hash User Agreement](#zero-hash-user-agreement)     |        |
| [`MICA_EEA_BUY`](#mica-buy-disclaimer)                      | Quote screen              | [MiCA Buy Disclaimer](#mica-buy-disclaimer)               |        |
| [`MICA_EEA_BUY`](#mica-buy-disclaimer)                      | Order confirmation screen | [MiCA Buy Disclaimer](#mica-buy-disclaimer)               |        |
| [`MICA_EEA_SELL`](#mica-sell-disclaimer)                    | Quote screen              | [MiCA Sell Disclaimer](#mica-sell-disclaimer)             |        |
| [`MICA_EEA_SELL`](#mica-sell-disclaimer)                    | Order confirmation screen | [MiCA Sell Disclaimer](#mica-sell-disclaimer)             |        |
| [`GB_INVESTMENT_RISK_WARNING`](#uk-investment-risk-warning) | Quote screen              | [UK Investment Risk Warning](#uk-investment-risk-warning) |        |
| [`GB_INVESTMENT_RISK_WARNING`](#uk-investment-risk-warning) | Order confirmation screen | [UK Investment Risk Warning](#uk-investment-risk-warning) |        |

Click a Terms ID to jump to its disclaimer. Each one lists its type, screen and button, with a **Preview** tab that shows how the text renders and an **HTML** tab you can copy into your app.

---

## US Disclaimers

* **Transak and Coinme:** on the user's first order with the provider, `termsIds` returns its terms (`TRANSAK_TERMS_OF_SERVICE` or `COINME_USER_AGREEMENT`), with an **Agree and Confirm order** button. Once the user has agreed, later orders return `US_TERMS_RETURNING` instead, with a **Confirm order** button. Show whichever ID the quote returns; you don't need to track which users have agreed.
* **Zero Hash:** `ZEROHASH_USER_AGREEMENT` is returned on every order, with the same text.

### Transak Terms of Service

Returned as `TRANSAK_TERMS_OF_SERVICE`. Show this on the user's first Transak order, with an **Agree and Confirm order** button.

| Type of disclaimer                                   | Screen and position                         | Button                      |
| ---------------------------------------------------- | ------------------------------------------- | --------------------------- |
| The user agrees to the terms by pressing the button. | Order confirmation screen, above the button | **Agree and Confirm order** |

#### Preview

By clicking “Agree and Confirm Order,” I confirm I have read, understand, and agree to Transak’s
[Terms of Service](https://transak.com/terms-of-service-us),
[Regulatory Disclosures](https://transak.com/compliance),
[Privacy Policy](https://transak.com/privacy-policy), and
[US Privacy Notice](https://transak.com/privacy-notice-us).

#### HTML

```html
<div>
  <p>
    By clicking “Agree and Confirm Order,” I confirm I have read, understand, and agree to Transak’s <a href="https://transak.com/terms-of-service-us" target="_blank">Terms of Service</a>, <a href="https://transak.com/compliance" target="_blank">Regulatory Disclosures</a>, <a href="https://transak.com/privacy-policy" target="_blank">Privacy Policy</a>, and <a href="https://transak.com/privacy-notice-us" target="_blank">US Privacy Notice</a>.
  </p>
</div>
```

### Coinme User Agreement

Returned as `COINME_USER_AGREEMENT`. Show this on the user's first Coinme order, with an **Agree and Confirm order** button.

| Type of disclaimer                                   | Screen and position                         | Button                      |
| ---------------------------------------------------- | ------------------------------------------- | --------------------------- |
| The user agrees to the terms by pressing the button. | Order confirmation screen, above the button | **Agree and Confirm order** |

#### Preview

Your transactions are executed by Coinme Inc. a
[licensed money transmitter](https://help.coinme.com/en/articles/9039706-licensing).

By clicking “Agree and Confirm Order,” I confirm I have read, understand, and agree to Coinme’s
[Terms of Service](https://help.coinme.com/en/articles/9039676-terms-of-service),
[Privacy Policy](https://help.coinme.com/en/articles/9039704-privacy-policy), and
[Disclosures](https://help.coinme.com/en/articles/10535881-disclosures), and to Transak’s
[Terms of Service](https://transak.com/terms-of-service-us),
[Privacy Policy](https://transak.com/privacy-policy), and
[US Privacy Notice](https://transak.com/privacy-notice-us).

#### HTML

```html
<div>
  <p>
    Your transactions are executed by Coinme Inc. a <a href="https://help.coinme.com/en/articles/9039706-licensing" target="_blank">licensed money transmitter</a>.
  </p>
  <p>
    By clicking “Agree and Confirm Order,” I confirm I have read, understand, and agree to Coinme’s <a href="https://help.coinme.com/en/articles/9039676-terms-of-service" target="_blank">Terms of Service</a>, <a href="https://help.coinme.com/en/articles/9039704-privacy-policy" target="_blank">Privacy Policy</a>, and <a href="https://help.coinme.com/en/articles/10535881-disclosures" target="_blank">Disclosures</a>, and to Transak’s <a href="https://transak.com/terms-of-service-us" target="_blank">Terms of Service</a>, <a href="https://transak.com/privacy-policy" target="_blank">Privacy Policy</a>, and <a href="https://transak.com/privacy-notice-us" target="_blank">US Privacy Notice</a>.
  </p>
</div>
```

### Returning US Users

Returned as `US_TERMS_RETURNING` on later Transak and Coinme orders, once the user has agreed to that provider's terms. Show it with a **Confirm order** button.

| Type of disclaimer                                               | Screen and position                         | Button            |
| ---------------------------------------------------------------- | ------------------------------------------- | ----------------- |
| The user only needs to see the text. There is nothing to accept. | Order confirmation screen, above the button | **Confirm order** |

#### Preview

You cannot cancel or reverse this order once confirmed. Check the destination address; funds sent to a wrong address cannot be recovered.

#### HTML

```html
<div>
  <p>
    You cannot cancel or reverse this order once confirmed. Check the destination address; funds sent to a wrong address cannot be recovered.
  </p>
</div>
```

### Zero Hash User Agreement

Returned as `ZEROHASH_USER_AGREEMENT`. Show this on every Zero Hash order, with a **Confirm order** button.

| Type of disclaimer                                   | Screen and position                         | Button            |
| ---------------------------------------------------- | ------------------------------------------- | ----------------- |
| The user agrees to the terms by pressing the button. | Order confirmation screen, above the button | **Confirm order** |

#### Preview

I have read, understand, and agree to the: (1)
[zerohash and zerohash Liquidity Services User Agreement](https://www.zerohash.com/transak);
(2)
[zerohash Regulatory Disclosures](https://docs.zerohash.com/page/us-licenses-and-disclosures);
and (3)
[zerohash Privacy Notice](https://docs.zerohash.com/page/privacy-policy).

I further consent to zerohash sharing my data or information with Transak. The data or information shared may include, without limitation, the personal information I provide to zerohash during the application and onboarding process. I understand that I may review how zerohash utilizes or shares my data in the Privacy Notice referenced above, and that I may contact zerohash at [privacy@zerohash.com](mailto:privacy@zerohash.com) if I have any questions or wish to amend my consent.

I also understand that the value of any cryptocurrency, including digital assets pegged to fiat currency, commodities, or any other asset, are not guaranteed and may go to zero at any time and without warning. Orders may not be canceled or reversed once submitted by you. If a withdrawal request is being made, you are requesting an on-chain transaction that is not reversible or recallable. You are responsible for reviewing the recipient address and ensuring it is the correct address for the selected asset for withdrawal. The estimated network fee is an approximation and the actual network fee applied on a withdrawal may differ. Fraudulent transactions may result in the loss of money with no recourse.

#### HTML

```html
<div>
  <p>
    I have read, understand, and agree to the: (1)
    <a href="https://www.zerohash.com/transak" target="_blank">zerohash and zerohash Liquidity Services User Agreement</a>;
    (2)
    <a href="https://docs.zerohash.com/page/us-licenses-and-disclosures" target="_blank">zerohash Regulatory Disclosures</a>;
    and (3)
    <a href="https://docs.zerohash.com/page/privacy-policy" target="_blank">zerohash Privacy Notice</a>.
  </p>
  <p>
    I further consent to zerohash sharing my data or information with Transak. The data or information shared may include, without limitation, the personal information I provide to zerohash during the application and onboarding process. I understand that I may review how zerohash utilizes or shares my data in the Privacy Notice referenced above, and that I may contact zerohash at privacy@zerohash.com if I have any questions or wish to amend my consent.
  </p>
  <p>
    I also understand that the value of any cryptocurrency, including digital assets pegged to fiat currency, commodities, or any other asset, are not guaranteed and may go to zero at any time and without warning. Orders may not be canceled or reversed once submitted by you. If a withdrawal request is being made, you are requesting an on-chain transaction that is not reversible or recallable. You are responsible for reviewing the recipient address and ensuring it is the correct address for the selected asset for withdrawal. The estimated network fee is an approximation and the actual network fee applied on a withdrawal may differ. Fraudulent transactions may result in the loss of money with no recourse.
  </p>
</div>
```

---

## EEA Disclaimers (MiCA)

Show these on both the quote screen and the order confirmation screen, above the button, where the user sees them without scrolling. Do not place them inside their own scrolling area.

### MiCA Buy Disclaimer

Returned as `MICA_EEA_BUY`.

| Type of disclaimer                                               | Screen and position                         | Button    |
| ---------------------------------------------------------------- | ------------------------------------------- | --------- |
| The user only needs to see the text. There is nothing to accept. | Quote screen, above the button              | No change |
| The user only needs to see the text. There is nothing to accept. | Order confirmation screen, above the button | No change |

#### Preview

The exchange rate is an estimate and may change. You may receive more or less crypto. Your order and exchange rate become final when we receive your payment.

#### HTML

```html
<p>
  The exchange rate is an estimate and may change. You may receive more or less crypto. Your order and exchange rate become final when we receive your payment.
</p>
```

### MiCA Sell Disclaimer

Returned as `MICA_EEA_SELL`.

| Type of disclaimer                                               | Screen and position                         | Button    |
| ---------------------------------------------------------------- | ------------------------------------------- | --------- |
| The user only needs to see the text. There is nothing to accept. | Quote screen, above the button              | No change |
| The user only needs to see the text. There is nothing to accept. | Order confirmation screen, above the button | No change |

#### Preview

The exchange rate is an estimate and may change. You may receive more or less money. Your order and exchange rate become final when we receive your crypto.

#### HTML

```html
<p>
  The exchange rate is an estimate and may change. You may receive more or less money. Your order and exchange rate become final when we receive your crypto.
</p>
```

---

## UK Disclaimer

### UK Investment Risk Warning

Returned as `GB_INVESTMENT_RISK_WARNING`. Show it as a banner at the top of the quote screen and the order confirmation screen. The user does not need to accept it.

| Type of disclaimer                                               | Screen and position                               | Button    |
| ---------------------------------------------------------------- | ------------------------------------------------- | --------- |
| The user only needs to see the text. There is nothing to accept. | Quote screen, as a banner at the top              | No change |
| The user only needs to see the text. There is nothing to accept. | Order confirmation screen, as a banner at the top | No change |

#### Preview

Don’t invest unless you’re prepared to lose all the money you invest. This is a high-risk investment and you should not expect to be protected if something goes wrong.
[Take 2 mins to learn more](https://transak.com/crypto-risk-summary)

#### HTML

```html
<p>
  Don’t invest unless you’re prepared to lose all the money you invest. This is a high-risk investment and you should not expect to be protected if something goes wrong. <a href="https://transak.com/crypto-risk-summary" target="_blank">Take 2 mins to learn more</a>
</p>
```