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

# Going Live

> Acceptance criteria for going live with your integration.

export const Tags = ({items}) => {
  const list = items || [];
  const TAG_STYLES = {
    DEFAULT_STYLE: {
      bg: "#e5e7eb",
      fg: "#374151"
    },
    Global: {
      bg: "#e5e7eb",
      fg: "#374151"
    },
    USA: {
      bg: "#dbeafe",
      fg: "#1e40af"
    },
    "USA-NY": {
      bg: "#dbeafe",
      fg: "#1e40af"
    },
    "USA-WA": {
      bg: "#dbeafe",
      fg: "#1e40af"
    },
    EEA: {
      bg: "#fef3c7",
      fg: "#92400e"
    },
    ROW: {
      bg: "#ede9fe",
      fg: "#5b21b6"
    }
  };
  return <div style={{
    display: "flex",
    flexWrap: "wrap",
    gap: "6px",
    marginTop: "0.25rem",
    marginBottom: "0.75rem"
  }}>
      {list.map(name => {
    const s = TAG_STYLES[name] || TAG_STYLES.DEFAULT_STYLE;
    return <span key={name} style={{
      display: "inline-block",
      backgroundColor: s.bg,
      color: s.fg,
      padding: "2px 10px",
      borderRadius: "9999px",
      fontSize: "0.75rem",
      fontWeight: 600,
      fontFamily: "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",
      lineHeight: "1.5",
      verticalAlign: "middle",
      whiteSpace: "nowrap"
    }}>
            {name}
          </span>;
  })}
    </div>;
};

<Warning>
  All requirements on this page are verified by MoonPay before going live.
</Warning>

## Overview

This page defines the acceptance criteria that apply to MoonPay Platform
integrations. Meeting these requirements is a condition of going live. They
address usability, legal accuracy, and regulatory compliance.

MoonPay may update these criteria at any time. When changes are required,
MoonPay will provide reasonable written notice to allow time for
implementation.

### How to read this page

Each requirement is annotated with a **geo tag** identifying where the
customer must be located for the rule to apply:

<Tags items={["Global", "USA", "USA-NY", "USA-WA", "EEA", "ROW"]} />

### Applicability by payment experience

Use this matrix with the requirements below. **You render** means you are
responsible even when you also render a MoonPay frame.

| Payment experience | Contextual quote summary | Fee breakdown | Payment disclosures |
| - | - | - | - |
| Standalone Apple Pay | You render | Apple Pay sheet | You render |
| Standalone Google Pay | You render | Google Pay sheet | You render |
| Cards | You render | You render | You render |
| Bank transfers | You render | You render | You render |
| Buy button | You render | You render (Apple/Google Pay: sheet) | You render |
| Widget | You render | You render | MoonPay renders |

***

## Universal requirements

### Accuracy

<Tags items={["Global"]} />

All information you present to the customer must be true, accurate, and not
misleading.

### Terms of Use acceptance

<Tags items={["Global"]} />

Applies when you onboard customers through the
[Customer API](/platform/guides/customer-api) or
[guest checkout](/platform/guides/guest-checkout): you present MoonPay's Terms
of Use and Privacy Policy in your own UI and record the customer's acceptance,
as described in [Terms acceptance](/platform/guides/terms-acceptance).
This is verified before go-live, and is distinct from the per-transaction
payment disclosures covered elsewhere on this page.

### Biometric data consent

<Tags items={["Global"]} />

Applies when your [Customer API](/platform/guides/customer-api) integration
captures selfie or identity-document images: you display the biometric
consent disclosure to the customer before submitting any images, as described
in [Biometric consent for selfie and document
images](/platform/guides/terms-acceptance#biometric-consent-for-selfie-and-document-images).
This is verified before go-live.

***

## Quote presentation

<Tags items={["Global"]} />

### Contextual quote summary

For standalone Apple Pay, standalone Google Pay, cards, the buy button, and the
widget, present the current quote on the same confirmation view before the
customer submits payment. You are responsible for this presentation, including for
normal buy-button and widget flows.

The contextual summary must include:

| Value | Source |
| - | - |
| **You Pay** | Response `source.amount` |
| Amount used to buy \[token] | Calculated source principal |
| Exchange rate | `exchangeRate` |
| Total crypto received | `destination.amount` |

Only **You Pay** is an exact label. You may use semantically equivalent labels
for the other three values.

Use the effective [`feeBehavior`](/platform/overview/core-concepts#fee-behavior)
to calculate the source principal with decimal arithmetic in the quote currency:

* For `inclusive`, subtract every present, non-deprecated `fees.*.amount` from
  the response `source.amount`, including `fees.defi.amount` when present.
  Always exclude deprecated `fees.partner.amount` to avoid double counting.
* For `exclusive`, use the request `source.amount` as the principal.

Do not add fees to the response `source.amount`.

### Required line items

For cards, the buy button, and the widget, show these three rows when their
fields are present in a table or row-based fee breakdown on the same
confirmation view before the customer submits payment. Use these exact labels:

| Label | Quote field |
| - | - |
| **Network Fee** | `fees.network.amount` |
| **Ecosystem Fee** | `fees.ecosystem.amount` |
| **MoonPay Fee** | `fees.moonpay.amount` |

Do not add a DeFi Fee row. Do not place the contextual quote-summary values in
this fee breakdown.

### Waived fees

If a fee field is absent, omit its row. If a present fee is zero or waived,
show its row with `$0.00`, or the equivalent zero amount in the quote currency.

### Amount consistency

The **You Pay** amount must exactly match the amount charged. Keep every quote
value you present consistent with the current quote. Any discrepancy
between the quoted total and the final payment will block go-live approval.

### Payment experience exceptions

Standalone Apple Pay and standalone Google Pay do not require you to render a
fee breakdown because their payment sheets present fees. They
still require the contextual quote summary above the Apple Pay or Google Pay
button.

***

## Payment disclosures

### Determine applicable disclosures

Use `paymentDisclosures` on the
[quote response](/api-reference/platform/endpoints/quotes/get#response-data-payment-disclosures)
as the transaction-specific source of truth for the disclosure copy to render.
`customer.country`, `customer.administrativeArea`, and `customer.area` from the
[check](/platform/frames/check) or [connect](/platform/frames/connect) complete
event identify the customer's jurisdiction, but do not select disclosure copy
on their own.
`capabilities.ramps.requirements.paymentDisclosures` on the connection event is
deprecated. Use the quote response instead.

You render quote-driven disclosures for standalone Apple Pay, standalone
Google Pay, and cards. MoonPay renders them in the normal hosted buy-button and
widget UI.

### Disclosures - US (New York and Washington)

<Tags items={["USA-NY", "USA-WA"]} />

For standalone Apple Pay, when `paymentDisclosures` contains
`us-transaction-finality`, display the following exact text directly above the
Apple Pay frame for customers located in **NY or WA**:

<Frame>
  <img className="block dark:hidden" src="https://mintcdn.com/moonpay/Kzio-7fxRExSXZf_/images/platform/compliance/ap-disclosures-light-mode.png?fit=max&auto=format&n=Kzio-7fxRExSXZf_&q=85&s=c7fcc3d70739c5eba94993c3867329a0" alt="Apple Pay with MoonPay Rails" width="2480" height="720" data-path="images/platform/compliance/ap-disclosures-light-mode.png" />

  <img className="hidden dark:block" src="https://mintcdn.com/moonpay/Kzio-7fxRExSXZf_/images/platform/compliance/ap-disclosures-dark-mode.png?fit=max&auto=format&n=Kzio-7fxRExSXZf_&q=85&s=379f16385e1962578c2498cc4704842a" alt="Apple Pay with MoonPay Rails" width="2480" height="720" data-path="images/platform/compliance/ap-disclosures-dark-mode.png" />
</Frame>

<Accordion title="Raw text">
  I agree to MoonPay's <a href="https://www.moonpay.com/legal/terms">Terms of Use</a> and understand that, once executed, this transaction cannot be cancelled, recalled, refunded, or otherwise undone. Fraudulent transactions may result in the loss of funds with no recourse.
</Accordion>

<Accordion title="HTML">
  ```html wrap theme={null}
  I agree to MoonPay's
  <a href="https://www.moonpay.com/legal/terms">Terms of Use</a> and understand
  that, once executed, this transaction cannot be cancelled, recalled, refunded,
  or otherwise undone. Fraudulent transactions may result in the loss of funds
  with no recourse.
  ```
</Accordion>

### Disclosures - EEA

<Tags items={["EEA"]} />

The `paymentDisclosures` array on the quote response identifies which disclosure to render:

* `eea-crypto-asset-risk` — render the **Standard crypto-assets** disclosure below
* `eea-unregulated-stablecoin-risk` — render the **Non-MiCA-compliant stablecoins** disclosure below
* Both present — render both

For customers located in the **EEA**, display the applicable exact text on the
same confirmation view, directly above or below the Apple Pay button, Google
Pay button, or card purchase confirmation, for standalone Apple Pay, standalone
Google Pay, and cards. The copy depends on the crypto asset in the quote.

#### Standard crypto-assets and / or MiCA-compliant stables

<Accordion title="Raw text">
  By continuing, you agree to transact with MoonPay Europe, subject to its <a href="https://www.moonpay.com/legal/terms">Terms of Use</a> and <a href="https://www.moonpay.com/legal/privacy_policy">Privacy Policy</a>. Crypto-assets can be risky and values may decrease quickly. Transfers are irreversible once broadcast to the blockchain. The quoted exchange rate may include a spread. <a href="https://www.moonpay.com/legal">Learn more</a> and <a href="https://dev.moonpay.com/docs/list-of-supported-cryptocurrencies">review the whitepaper</a> (if available).
</Accordion>

<Accordion title="HTML">
  ```html wrap theme={null}
  By continuing, you agree to transact with MoonPay Europe, subject to its
  <a href="https://www.moonpay.com/legal/terms">Terms of Use</a> and
  <a href="https://www.moonpay.com/legal/privacy_policy">Privacy Policy</a>.
  Crypto-assets can be risky and values may decrease quickly. Transfers are
  irreversible once broadcast to the blockchain. The quoted exchange rate may
  include a spread. <a href="https://www.moonpay.com/legal">Learn more</a> and
  <a href="https://dev.moonpay.com/docs/list-of-supported-cryptocurrencies"
    >review the whitepaper</a
  >
  (if available).
  ```
</Accordion>

#### Non-MiCA-compliant stablecoins

Applies when the customer is transacting in a stablecoin that is not
MiCA-compliant (for example USDT, cUSD, DAI, PYUSD).

<Accordion title="Raw text">
  Important: You are about to transact in a stablecoin that is not MiCA-compliant, carries fewer safeguards, and may be difficult to sell. By continuing, you agree to transact with MoonPay Europe subject to its <a href="https://www.moonpay.com/legal/terms">Terms of Use</a> and <a href="https://www.moonpay.com/legal/privacy_policy">Privacy Policy</a>. Transfers are irreversible once broadcast to the blockchain. The quoted exchange rate may include a spread. <a href="https://www.moonpay.com/legal">Learn more</a> and <a href="https://dev.moonpay.com/docs/list-of-supported-cryptocurrencies">review the whitepaper</a> (if available).
</Accordion>

<Accordion title="HTML">
  ```html wrap theme={null}
  Important: You are about to transact in a stablecoin that is not MiCA-compliant,
  carries fewer safeguards, and may be difficult to sell. By continuing, you agree
  to transact with MoonPay Europe subject to its
  <a href="https://www.moonpay.com/legal/terms">Terms of Use</a> and
  <a href="https://www.moonpay.com/legal/privacy_policy">Privacy Policy</a>.
  Transfers are irreversible once broadcast to the blockchain. The quoted exchange
  rate may include a spread.
  <a href="https://www.moonpay.com/legal">Learn more</a> and
  <a href="https://dev.moonpay.com/docs/list-of-supported-cryptocurrencies"
    >review the whitepaper</a
  >
  (if available).
  ```
</Accordion>

### Disclosure rendering rules

<Tags items={["USA-NY", "USA-WA", "EEA"]} />

For disclosures you render, the disclosure must be visible without any
interaction. It must not be hidden behind expandable menus, tooltips, or
secondary screens. The Terms of Use must be a tappable link. Render the full
text without truncation.

***

## Attribution

<Tags items={["Global"]} />

For cards, display **"Powered by MoonPay"** on the Buy screen.

***

## Native Google Pay (Android)

<Tags items={["Global"]} />

Applies when you embed standalone Google Pay in an Android WebView. In a
WebView, Google Pay validates the embedding app's package name and release
signing certificate, so your app — not just MoonPay — must be registered and
published in the [Google Pay & Wallet
Console](https://pay.google.com/business/console) before it can present the
Google Pay sheet in production. An unregistered app fails with `OR_BIBED_11`.

Complete the WebView setup and app registration described in [Android
WebView](/platform/frames/google-pay#android-webview).

***

## Gateway (DeFi tokens)

<Tags items={["USA"]} />

Applies when a customer buys a DeFi token via Gateway. Gateway is available to
customers in the **US, excluding New York and Washington**, and quotes are only
returned in that geography, so these requirements apply wherever a DeFi quote is
available.

A Gateway purchase happens in two steps: the customer buys a stablecoin from
MoonPay, then that stablecoin is swapped for the destination token on a
decentralised exchange (DEX). DeFi tokens are identified by a
[`caip19`](/api-reference/platform/endpoints/quotes/get#identifying-the-destination-token)
destination and are returned by the
[list assets](/api-reference/platform/endpoints/assets/list) endpoint with
`source` set to `defi`. When a quote is for a DeFi token, its
`paymentDisclosures` array contains the `gateway-token` disclosure.

Apart from the overrides below, the card requirements under
[Quote presentation](#quote-presentation) and
[Payment disclosures](#payment-disclosures) apply.

### Fees and slippage

<Tags items={["USA"]} />

In addition to the standard [required line items](#required-line-items), display
these before the customer transacts:

| Line item | Source | Description |
| - | - | - |
| **Swap fee** | `fees.defi` | The fee for swapping the stablecoin into the destination token on the DEX. |
| **Slippage** | `slippageBps` | The maximum price movement tolerated for the swap, in basis points. Show it with the explanation: "Swap will only execute if final price falls within this range." |

The [Apple Pay fee exception](#payment-experience-exceptions) still applies:
with Apple Pay you don't display fees up front, but the total charged must
match the Apple Pay sheet.

### Disclosures - DeFi tokens (Gateway)

<Tags items={["USA"]} />

Display the following exact text directly above or below the payment frame when
the quote's `paymentDisclosures` array contains the `gateway-token` disclosure
(currently version `1`).

<Accordion title="Raw text">
  By proceeding, you agree to two steps under <a href="https://www.moonpay.com/legal/terms">these terms</a>: (1) Buying stablecoin from MoonPay and (2) Swapping stablecoin for your chosen destination asset via a decentralised exchange.
</Accordion>

<Accordion title="HTML">
  ```html wrap theme={null}
  By proceeding, you agree to two steps under
  <a href="https://www.moonpay.com/legal/terms">these terms</a>: (1) Buying
  stablecoin from MoonPay and (2) Swapping stablecoin for your chosen destination
  asset via a decentralised exchange.
  ```
</Accordion>

The standard [disclosure rendering rules](#disclosure-rendering-rules) apply: the
disclosure must be visible without any interaction, must not be hidden behind
expandable menus, tooltips, or secondary screens, the Terms of Use must be a
tappable link, and the full text must be rendered without truncation.
