# Build an advanced payments integration Learn how to create a custom payments integration using Stripe Elements and the Checkout Sessions API or the Payment Intents API. Use the [Stripe Elements](https://docs.stripe.com/payments/elements.md) user interface with the [Checkout Sessions API](https://docs.stripe.com/api/checkout/sessions.md) or the [Payment Intents API](https://docs.stripe.com/api/payment_intents.md) to create a fully customized payments integration. To understand which API is better for your business, [compare the Checkout Sessions and Payment Intents APIs](https://docs.stripe.com/payments/checkout-sessions-and-payment-intents-comparison.md). ## Build a custom integration with full UI control Use [Stripe Elements](https://docs.stripe.com/payments/elements.md) to start building your own custom integration to accept payments. [Start building your payments integration](https://docs.stripe.com/payments/quickstart-checkout-sessions.md) ## Features and availability |   | [**Checkout Sessions API**](https://docs.stripe.com/payments/accept-a-payment.md?platform=web&ui=embedded-components) | [**Payment Intents API**](https://docs.stripe.com/payments/accept-a-payment.md?platform=web&ui=elements) | | ---------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | | **UI** | [Elements](https://docs.stripe.com/payments/elements.md) | [Elements](https://docs.stripe.com/payments/elements.md) | | **API** | [Checkout Sessions](https://docs.stripe.com/api/checkout/sessions.md) | [PaymentIntents](https://docs.stripe.com/payments/payment-intents.md) | | **Integration effort** | Low coding | Most coding | | **Hosting** | Embed on your site | Embed on your site | | **UI customization** | Extensive customization with [Appearance API](https://docs.stripe.com/elements/appearance-api.md) | Extensive customization with [Appearance API](https://docs.stripe.com/elements/appearance-api.md) | | **PAYMENT METHODS**1 | | [Dynamically display](https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods.md) 40+ payment methods | ✓ Supported | ✓ Supported | | Manage payment methods in the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods) without coding | ✓ Supported | ✓ Supported | | **[Faster checkout with Link](https://docs.stripe.com/payments/link.md)** | ✓ Supported | ✓ Supported | | **[Custom payment methods](https://docs.stripe.com/payments/payment-methods/custom-payment-methods.md)** | - Unsupported | ✓ Supported | 1For detailed support for each payment method, see [learn more about payment methods](https://docs.stripe.com/payments/payment-methods/overview.md). ### Compare payment scenario support See how Stripe supports different payment scenarios by each integration path. |   | [**Checkout Sessions API**](https://docs.stripe.com/payments/accept-a-payment.md?platform=web&ui=embedded-components) | [**Payment Intents API**](https://docs.stripe.com/payments/accept-a-payment.md?platform=web&ui=elements) | | -------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | | [Set up future payments](https://docs.stripe.com/payments/save-and-reuse.md) | ✓ Supported | ✓ Supported | | [Save payment details during payment](https://docs.stripe.com/payments/save-and-reuse.md) | ✓ Supported | ✓ Supported | | [Place a hold on a payment method](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md) | ✓ Supported | ✓ Supported | | [Finalize payments on your server](https://docs.stripe.com/payments/finalize-payments-on-the-server.md) | ✓ Supported | ✓ Supported | | [Multi-step payment flow](https://docs.stripe.com/payments/build-a-two-step-confirmation.md) | - Unsupported | ✓ Supported | | [FLEXIBLE PAYMENT SCENARIOS](https://docs.stripe.com/payments/flexible-payments.md)1 | | [Multicapture](https://docs.stripe.com/payments/multicapture.md) | ✓ Supported | ✓ Supported | | [Overcapture](https://docs.stripe.com/payments/overcapture.md) | ✓ Supported | ✓ Supported | | [Extended authorization](https://docs.stripe.com/payments/extended-authorization.md) | ✓ Supported | ✓ Supported | | [Incremental authorization](https://docs.stripe.com/payments/incremental-authorization.md) | ✓ Supported | ✓ Supported | 1 Only available on [IC+ pricing](https://support.stripe.com/questions/understanding-blended-interchange-pricing). ## Customize checkout [Customize look and feel](https://docs.stripe.com/elements/appearance-api.md): Customize the appearance and behavior of your checkout page. [Manage payment methods](https://docs.stripe.com/payments/advanced/payment-methods/manage.md): Present the most applicable payment methods for each customer and each location. [One-click checkout options](https://docs.stripe.com/elements/express-checkout-element.md): Show multiple one-click payment buttons with a single component. [Send email receipts](https://docs.stripe.com/payments/advanced/receipts.md): Send payment or refund receipts automatically. ## Collect different payment details [Collect additional information](https://docs.stripe.com/payments/advanced/collect-additional-info.md): Collect shipping and other customer info during checkout. [Collect taxes](https://docs.stripe.com/tax/custom.md): Use Stripe Tax APIs to implement tax calculations in your custom integration. [Flexible payment scenarios](https://docs.stripe.com/payments/flexible-payments.md): Support complex payment flows through flexible and customizable acquiring features. ## Choose when you collect payment [Subscriptions](https://docs.stripe.com/billing/subscriptions/build-subscriptions.md?platform=web&ui=elements): Create and manage subscriptions to accept recurring payments. [Set up future payments](https://docs.stripe.com/payments/save-and-reuse.md?platform=web&ui=elements): Save payment details and charge your customers later. [Save payment details during payment](https://docs.stripe.com/payments/save-during-payment.md?platform=web&ui=elements): Save payment details during a payment.