# How Checkout works Learn how to use Checkout to collect payments on your website. Checkout is a low-code payment integration that creates a customizable form for collecting payments. Checkout’s built-in features allow you to reduce your development time. It supports more than 100 payment methods, including [Link](https://docs.stripe.com/payments/link.md), which lets your customers save their payment method for faster checkout. You can accept payments by embedding Checkout directly into your website, redirecting customers to a Stripe-hosted payment page, or creating a customized checkout page with [Stripe Elements](https://docs.stripe.com/payments/elements.md). Checkout supports payments for both [one-time purchases](https://docs.stripe.com/payments/online-payments.md) and [subscriptions](https://docs.stripe.com/subscriptions.md). You can also customize Checkout and access additional functionality with [Checkout Sessions](https://docs.stripe.com/api/checkout/sessions.md) and the Stripe Dashboard. For a complete list of features, see its [built-in and customizable features](https://docs.stripe.com/payments/checkout/how-checkout-works.md#features). # Embedded form Use the embedded form to build a customizable checkout page. Customers use a customized checkout page on your site to enter payment details and complete their purchase. ![Embedded form with Checkout Sessions API](https://b.stripecdn.com/docs-statics-srv/assets/checkout-form-hover.31c41716c4857e5e01f77978530fc573.png) You can use the embedded form to collect all necessary information during checkout while maintaining control over the look and feel of the UI. You can use this form to collect: - Payment details for more than 100 payment methods - One-click express checkout wallets - Billing address - Shipping address - Shipping options and prices - Tax details - Currency choice - Custom details using custom text fields Embedded forms have the following features: - End-to-end checkout in a single iframe - Built-in returning UIs with saved payment methods and saved address book - A dynamic UI that adjusts to the device type to maintain a consistent checkout flow across web and mobile - UI customization using the [Stripe Appearance API](https://docs.stripe.com/elements/appearance-api.md) - Integrates with Stripe products such as [Adaptive Pricing](https://docs.stripe.com/payments/custom/localize-prices/adaptive-pricing.md), [Stripe Tax](https://stripe.com/tax?utm_campaign=AMER_US_en_Google_Search_Brand_Tax_EXA-14403482849&utm_medium=cpc&utm_source=google&utm_content=711508633409&utm_term=stripe%20tax&utm_matchtype=e&utm_adposition=&utm_device=c&gad_source=1&gad_campaignid=14403482849&gbraid=0AAAAADKNRO5JFcS1TpxBkF6YTjG_vw8o9&gclid=Cj0KCQjw0NPGBhCDARIsAGAzpp3vxr1qEazZGJaEENjzZRZH0OXV39zJYPylsV9FSmxK7dZ_A_X-jPoaAo7XEALw_wcB), and [Billing](https://stripe.com/billing) - Localization with both content translation and a localized product UI (for example, local payment methods and local currency display) - Offers single-step and multi-step layouts ## Single-page layout | **UI for new customers** | **UI for returning customers** | | ----------------------------------------------------------- | ----------------------------------------------------------------- | | ![](https://docs.stripecdn.com/single_page_new_shopper.mp4) | ![](https://docs.stripecdn.com/single_page_returning_shopper.mp4) | ## Multi-step layout | **UI for new customers** | **UI for returning customers** | | ------------------------------------------------------- | ------------------------------------------------------------- | | ![](https://docs.stripecdn.com/compact_new_shopper.mp4) | ![](https://docs.stripecdn.com/compact_returning_shopper.mp4) | ## Checkout lifecycle 1. When a customer is ready to complete their purchase, your application creates a new `Checkout Session`. 2. You initialize the embedded form on your website to show a payment form. 3. Customers enter their payment details and complete the transaction. 4. After the transaction, the [checkout.session.completed](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.completed) webhook event triggers the [order fulfillment process](https://docs.stripe.com/checkout/fulfillment.md). A diagram of an embedded form integration's lifecycle (See full diagram at https://docs.stripe.com/payments/checkout/how-checkout-works) ## See also - [Checkout quickstart](https://docs.stripe.com/checkout/quickstart.md) - [Fulfill your orders](https://docs.stripe.com/checkout/fulfillment.md) - [Collect taxes in Checkout](https://docs.stripe.com/payments/checkout/taxes.md) - [Manage limited inventory with Checkout](https://docs.stripe.com/payments/checkout/managing-limited-inventory.md) - [Automatically convert to local currencies with Adaptive Pricing](https://docs.stripe.com/payments/currencies/localize-prices/adaptive-pricing.md)