# Embedded Components onramp Learn about the Embedded Components onramp. Build an onramp flow native to your app or website with components that provide authentication and secure data collection, tailored to your design. [Get started](https://docs.stripe.com/crypto/onramp/embedded-components-integration-guide.md) ## Customer flow 1. A customer visits your app or website and wants to convert fiat to crypto or purchase crypto. 1. Your app prompts them to onboard by signing up or logging in to [Link](https://docs.stripe.com/payments/link.md). 1. They sign up or log into Link without leaving your app or website. 1. They grant your app permission to use their saved payment methods and wallets. If they’re missing required data (such as KYC information, payment methods, or wallets) they complete account configuration in your app or website. 1. They purchase or convert crypto in a CryptoOnramp session. Returning customers have the option for one-click checkout. ## Features | | | | | **Merchant of record** | When you use the onramp, Stripe acts as your merchant of record. A merchant of record is the legal entity responsible for facilitating the sale of products to a user. | | **The Stripe checkout infrastructure** | - Pre-populate transaction parameters (wallets, source and destination currencies, source and destination amounts, supported networks) - Every session status change generates a webhook - Returning users can check out faster with [Link](https://docs.stripe.com/payments/link.md), the Stripe consumer account infrastructure | | **Customization** | - Add real-time quotes, automated KYC, and multi-chain support with minimal coding - Implement using an embeddable widget, customizable to your brand | | **Disputes management** | No platform fraud liability, Stripe handles all disputes. | | **Payment methods** | Credit, debit, Apple Pay, Google Pay, and ACH (US only). All of these payment methods are eligible for instant crypto delivery after KYC completion. | | **Currencies** | Available currencies are subject to change for integration options in private preview. - USDC (Solana) - USDC (Base) - USDC (Sui) - USDC.e (Tempo) - USDC (Ethereum) - USDB (Solana) - USDsui (Sui) - USDC (Arbitrum) - USDT (Ethereum) - Phantom Cash (Solana) | | **Geographic availability** | US and EU countries Not available in the state of New York. | ## Integration overview Choose how you want to get started with your integration, using one of the following: - **[Quickstart](https://docs.stripe.com/crypto/onramp/embedded-components-quickstart.md?client=react)**: Provides minimal code that you can run to see the full flow and explore the integration. - **[Integration guide](https://docs.stripe.com/crypto/onramp/embedded-components-integration-guide.md)**: Provides step-by-step instructions for Web (JavaScript and React), React Native, Android, and iOS apps. ### Install the SDK Install one of our Embedded Components Onramp SDK for [Javascript](https://www.npmjs.com/package/@stripe/crypto), [React Native](https://www.npmjs.com/package/@stripe/stripe-react-native), [iOS](https://cocoapods.org/pods/Stripe), or [Android](https://github.com/stripe/stripe-android/releases). You can customize the appearance (for example, colors and theme) so the minimal Stripe UI matches your app or website. ### Authentication A [Link](https://link.com/) account is required to proceed with the onramp purchase flow. Your client checks for an existing Link account and registers the user if none exists. After sign-up or sign-in, your back end creates a `LinkAuthIntent` with onramp OAuth scopes, and the client completes the consent flow. Your back end then calls the Stripe API to get an access token for all subsequent API requests. ### Identity The user must complete account setup before an onramp transaction. Your back end uses the Stripe APIs to check whether KYC and identity verification are complete. When something is missing, your client uses the SDK to collect KYC information, confirm existing KYC, and complete identity verification before checkout. ### Payment The user needs at least one registered wallet and one payment token. You can design the flow in either of these ways: let the user choose which registered wallet to deposit to (for example, use the Stripe API to show a list of wallets), or abstract the wallet choice and always use a specific wallet (for example, the user’s primary or only wallet) so the user never sees or selects a destination. For checkout, your backend creates a [CryptoOnrampSession](https://docs.stripe.com/api/crypto/onramp_sessions/create.md) with amount, currencies, network, and wallet, then returns the session to the client. Your backend calls the Stripe API to confirm and fulfill. When fulfilled, the client receives the session status and blockchain transaction ID. ## Next steps - [Sign up to join the private preview](https://docs.stripe.com/crypto/onramp.md#sign-up) - [Embedded Components onramp quickstart](https://docs.stripe.com/crypto/onramp/embedded-components-quickstart.md) - [Integrate the Embedded Components onramp](https://docs.stripe.com/crypto/onramp/embedded-components-integration-guide.md) - Try our sample apps: [iOS](https://github.com/stripe/stripe-ios/tree/master/Example/CryptoOnramp%20Example) and [Android](https://github.com/stripe/stripe-android/tree/master/crypto-onramp-example)