Skip to content
Create account or Sign in
The Stripe Docs logo
/
Ask AI
Create accountSign in
Get started
Payments
Revenue
Platforms and marketplaces
Money management
Developer resources
APIs & SDKsHelp
Overview
About Stripe payments
Upgrade your integration
Payments analytics
Online payments
OverviewFind your use caseUse Managed Payments
Use Payment Links
Use a prebuilt checkout page
Build a custom integration with Elements
Build an in-app integration
    Overview
    Payment Sheet
    Payment Element
    Address Element
    Payment Method Messaging Element
    Link out for in-app purchases
    Manage payment methods in settings
    Migrate to Confirmation Tokens
    US and Canadian cards
In-person payments
Terminal
Payment methods
Add payment methods
Manage payment methods
Faster checkout with Link
Payment scenarios
Handle multiple currencies
Custom payment flows
Flexible acquiring
Orchestration
Beyond payments
Incorporate your company
Crypto
Agentic commerce
Financial Connections
Climate
Understand fraud
Radar fraud protection
Manage disputes
Verify identities
United States
English (United States)
HomePaymentsBuild an in-app integration

Build an in-app payments integration

Use Stripe’s In-app Payments to build a customized payments integration and checkout flows for your iOS, Android, and React Native apps. This overview helps you plan your integration.

US apps selling digital goods

Android apps in the US that sell digital goods can now process payments in-app using Stripe. If you sell digital goods on iOS, see how to implement an app-to-web flow using Stripe Checkout in Sell in-app digital goods and subscriptions.

With Stripe In-App Payments, you can:

  1. Dynamically display 40+ payment methods, including Apple Pay, Google Pay, and Link, as well as saved payment methods.
  2. Collect payment information like credit card numbers and billing details.
  3. Complete the payment, handling authentication like 3DS2 or redirecting to a banking app.

Choose a UI

Choose from three different UI integrations depending on your preferred UX and design needs.

Payment SheetFlow ControllerPayment Element
Integration effort
Low code
Some code
Some code
Display payment methodsIn a sheetIn a sheetIn an embeddable view
Collect payment detailsIn a sheetIn a sheetIn a sheet
Complete paymentIn a sheetYou control when to confirm in your UIYou control when to confirm in your UI
Layout flexibilityFixed sheet presentationFixed sheet for selection, flexible confirmationEmbed payment methods anywhere in your app
A payment flow showing a cart screen with a Buy button that presents Payment Sheet to complete the payment
Stripe In-app Payments Showcase QR Code

This integration displays payment methods, collects payment information, and completes payment all in a single prebuilt sheet. We recommend using this UI to take payments in your app for most users.

You can customize more than 50 aspects of the appearance, including colors and fonts, with the Appearance API guide.

Try the demo: Scan the QR code with your iOS device or use this link to try an interactive demo.

Best for…

  • Adding in‑app payments quickly with minimal code.
  • A checkout where the customer taps a single “Buy” button and completes payment in one step.

Consider another option for…

  • Collecting a payment method first and confirming payment separately in your own UI. To do this, use Flow Controller.
  • Embedding payment methods directly into your own screens instead of a sheet. To do this, use Payment Element.

Choose an API

Stripe’s In-App Payments integration uses either PaymentIntents or SetupIntents.

Accept a payment

⠀
APIPaymentIntent

Description

Collect payment and charge the customer immediately.

Our UI displays a “Save my info” checkbox, allowing customers to save their payment method for future checkouts. Learn more about saved payment methods.

Supported payment methodsBoth single-use and reusable
Examples
  • Buying a product or service in a single transaction (for example, e-commerce checkout)
  • Paying for a ride or food delivery at the time of order
Integration guideAccept a payment with Payment Sheet

Set up a payment method

⠀
APISetupIntent
DescriptionCollect and save a payment method for future payments without charging the customer.
Supported payment methodsReusable payment methods only
Examples
  • Signing up for an app and saving a payment method during onboarding
  • Setting up a payment method at the start of a subscription with a free trial period
  • Collecting payment details for crowdfunding campaigns (charge only if goal is met)
  • Storing payment information before activating a utility or service
Integration guideSet up a payment method with Payment Sheet

Accept and set up a payment

⠀
APIPaymentIntent with setup_future_usage

Description

Charge the customer now and save their payment method for future use by configuring your PaymentIntent to save the payment method.

You can require all payment methods to be saved by configuring setup_future_usage. Using setup_future_usage disables one-time payment methods, like most BNPLs. To support both one-time and reusable payment methods, configure future usage on specific payment methods, such as payment_method_options[card][setup_future_usage] to save cards.

Supported payment methodsBoth single-use and reusable
Examples
  • Signing users up for a subscription that includes an upfront payment (for example, charging the first month immediately)
  • Charging for an initial purchase while also saving the payment method for incidentals or add-on purchases
Integration guideAccept and set up a payment with Payment Sheet

Saved payment methods

Stripe’s In-App Payments supports saving, displaying, and managing saved card, US Bank account, and SEPA Debit payment methods. Consent collection is handled automatically, ensuring global compliance.

Payment Sheet saved payment methods

Access saved payment methods in Payment Sheet

The CustomerSessions API provides additional control over:

  • When to show or hide the save consent box
  • When to show or hide the saved payment methods
  • Allowing buyers to remove saved payment methods
  • Preventing buyers from removing the last saved payment method

Features and availability

  • UI

    In-app Payments

  • UI customization

    Extensive, using the Appearance API

  • Payment methods 1

    • 100+
    • Dynamic payment methods
    • Faster checkout with Link
    • Apple Pay, Google Pay, and Amazon Pay
    • Custom payment methods
  • SDK support

    iOS, Android, and React Native

  • One-time and recurring payments

    Yes

  • Fraud protection

    Yes

  • Global payments

    Yes

1Wallet payment methods require registering your domain.

Was this page helpful?
YesNo
  • Need help? Contact Support.
  • Check out our changelog.
  • Questions? Contact Sales.
  • LLM? Read llms.txt.
  • Powered by Markdoc