Following court rulings in 2025, both Apple and Google updated their app store policies for US developers, creating new ways to process payments outside of traditional in-app purchase systems. On iOS, Apple now allows developers to link from their apps to external websites to sell digital goods and services, opening the door to web-based checkout experiences that can reduce purchasing fees by up to 90%, offer greater flexibility over pricing and promotions, support additional payment methods, and give businesses a more direct relationship with their customers. On Android, Google’s updated Play Store policies allow developers to either link out to a web checkout or process payments directly inside their apps using Stripe’s native payment sheet, giving iOS and Android distinct integration paths that this guide covers.
While the legal landscape continues to evolve—in particular, a December 2025 appeals court decision left open the possibility that Apple may eventually charge a fee on purchases completed through external links, with the amount still to be determined—many developers are already moving quickly to take advantage of these new options while monitoring further updates.
To capitalize on this opportunity, app developers tell us that they’re exploring how to quickly move to a web-based checkout for iOS apps while maintaining customer conversion—even when redirecting customers outside the app.
Stripe can help. Stripe is a fully integrated suite of financial and payments products that allows you to manage the entire revenue lifecycle in one place. You can process payments, create customizable web-based checkout flows, launch new pricing models, automate global tax compliance, and access unified reporting.
Over the last year, Stripe has helped dozens of apps start processing external payments, with many reporting double-digit savings on payment processing fees. In this guide, we’ve distilled what we’ve learned to help you create your own seamless payments experience across your app and the web. These best practices will help you:
- Redirect purchases from in-app to the web in a compliant way
- Create a consistent user experience when redirecting between your app and the web
- Build a high-converting checkout
- Test which strategies work best for your customers
- Manage post-purchase activities such as taxes, refunds, and disputes
We’ll also cover how Stripe Checkout for app-to-web payments incorporates the best practices highlighted in this guide.
Note: Apps selling physical goods and services (ecommerce, delivery, food and beverage apps, etc.) can use any third-party payment system in their app. To process payments with Stripe, see our in-app payment solutions.
Note: Apps selling physical goods and services—such as ecommerce, delivery, food and beverage apps, etc.—can use any third-party payment system in their app. To process payments with Stripe, see our in-app payment solutions.
Best practices for creating an optimized web-based checkout
When creating a web-based checkout experience for your app payments, it’s important to balance conversion, user experience, and platform compliance. The right approach will depend on whether you’re building for iOS or Android, since the available payment flows now differ between the two platforms.
Redirect checkout from in-app to the web in a compliant way
- For iOS apps, developers should send customers from the app to an external browser to complete their purchase. Using in-app WebView for this flow is unlikely to pass App Store review, so redirecting to the customer’s default browser is the safer path for maintaining compliance.
- Confirm whether your app is distributed through Apple’s US storefront. Apple’s updated guidelines currently apply only to apps downloaded from the “United States storefront,” so use StoreKit’s "Storefront" property to determine which storefront applies to your app. If your app is distributed through a different storefront, these permissions may not be available.
Android developers: Choose the integration path that fits your app
Google Play policy changes give Android developers more flexibility than iOS. As of October 2025, US developers have two primary options:
Option 1: Native in-app payment
For most Android apps, this is the recommended approach. You can integrate Stripe’s in-app payment sheet directly into your app, allowing customers to complete purchases without leaving the app or opening a browser. This typically delivers the best user experience and supports Stripe payment methods such as digital wallets and Link, a digital wallet built by Stripe.Option 2: Web checkout redirect
You can also direct customers to a Stripe-hosted or custom web checkout page. This option can work well if you want to maintain a single checkout codebase across iOS and Android, support more customized promotional flows, or use Stripe Managed Payments as your merchant of record.
Unlike iOS, Android can also support payment flows in an in-app WebView, which might be useful for certain promotional code flows or Managed Payments experiences. However, developers distributing through Google Play who use external payment links must enroll in Google’s external content links program. Review Google’s Play Console policy page for the latest requirements and deadlines.
Use a prebuilt solution to simplify compliance
In addition to following Apple and Google’s platform rules, your checkout flow must also meet broader legal, banking, and card network requirements. These can include security obligations such as PCI compliance, privacy regulations such as GDPR and CCPA, and customer disclosures required by banks and card networks.
Using a prebuilt payment solution can make this easier. Your payment provider should help you navigate those requirements while giving you the flexibility to build a checkout experience that’s both compliant and optimized for conversion.
Create a consistent user experience when redirecting between your app and the web
- Keep product selection within your app: Let customers choose products in the app, then redirect them to the web only to complete payment. This preserves the familiar in-app experience and avoids sending customers through a traditional web cart, which can hurt conversion.
- Redirect to the web only at the time of payment: Limiting the redirect to the final step keeps your checkout flow consistent and simplifies any testing you might want to run on your checkout page, since you would be changing only one part of the flow.
- Preserve authentication during redirects: If a customer is signed in on your app, they should remain signed in when they land on the web checkout page. For a smooth experience, implement a third-party authentication service—such as Sign in with Apple or Firebase Authentication—that generates short-lived tokens your app can pass via URL parameters. Without this, asking customers to log in again on the web creates unnecessary friction.
- Return customers to your app automatically after checkout: Use universal links to bring customers back to your app once payment is complete. Universal links work best on Safari; on Chrome, they open in the browser instead of sending the customer back to the app automatically. To make the return path more reliable, include a clear button on the first post-checkout page that deep links back to your app. In addition, always include the payment outcome in the return link, so your app can show the appropriate success or failure state.
- Make the redirect feel intentional: Customers might be surprised when your app redirects to a browser instead of opening Apple Pay in the app. To reduce confusion, consider adding a redirect icon or message in your app before the handoff, and prominently place your app logo, name, and a product image on your web checkout page. Visual continuity helps reassure customers that they are still completing the same purchase.
Early adopters of external checkout saw widely variable results, and in many cases the difference came down to the quality of the redirect experience. Implementations with unnecessary friction—such as extra confirmation screens, missing Apple Pay, or outdated payment forms—tended to underperform. In contrast, a well-built app-to-web checkout can match or exceed in-app conversion for high-intent customers.
Build a high-converting checkout
Once customers reach the web, the checkout experience should feel familiar, fast, and optimized for conversion.
- Design your web checkout to feel cohesive with your app: Rather than designing a responsive web page with generic web forms, build a web page that visually aligns with your app experience. You can match the background color, fonts, and CTA colors of your apps.
- Lead with Apple Pay on the web-based checkout: Customers are used to paying with Apple Pay in your app, so prominently highlight that same payment method on the web to help increase conversion.
- Surface saved and popular payment methods on the web-based checkout: One advantage of a web-based checkout is the ability to offer more payment options. If a customer doesn’t use Apple Pay, displaying saved payment methods, such as cards on file and other popular options—like Cash App Pay, Link, or buy now, pay later—can help improve conversion rates.
- Consider building for landscape on the web: If your app supports landscape orientation, help maintain a consistent customer experience by also ensuring your web-based checkout can support landscape.
- Include promotional codes and upsells on the web: Even if customers select their products in your app, the web checkout is a great place to offer additional value. By redirecting to the web, you can now allow customers to enter promotional codes or upgrade to a higher subscription tier during checkout. These small enhancements can increase conversion and average order value.
- Make the value of web checkout clear: If your web pricing differs from in-app pricing, make the savings explicit in your button copy and on the checkout page itself. In practice, specific value messaging such as “Save 25% on the web” tends to perform better than generic language like “Buy on our website.” Display the final price in the customer’s local currency and, where permitted, show a comparison to the in-app price. Price transparency builds trust and drives conversion.
Note for Android developers using Stripe’s native in-app payment flow: If you are integrating Stripe’s in-app payment element directly in your Android app, the browser-redirect guidance in this section does not apply. In that case, follow the best practices for your in-app integration guide instead.
Design best practices: Button layout and checkout design
Moving payments to the web can reduce fees, but conversion depends on how smoothly you guide customers from the app to checkout. This section covers how to design the in-app button that initiates the flow, the preredirect transition screen, and the web checkout page itself, with layouts and principles that reduce friction and protect conversion.
Choosing a button layout
How you present the option to pay on the web depends on your pricing strategy and whether web checkout is the only purchase path or one option alongside in-app purchase. In practice, three layouts tend to work well:
Layout 1: Web checkout as the primary call to action
Best for apps moving entirely to web checkout for US customers. Place a prominent CTA button in your paywall or pricing screen that clearly states the destination and price. Effective button copy includes phrases like: “Subscribe on [yourdomain.com]” or “Get Premium — $7.99/month.” Avoid vague labels like “More options” or “Continue,” which don’t set clear expectations that the customer is leaving the app to complete payment.
Layout 2: Web checkout alongside in-app purchase
Best for apps that want to offer both web checkout and native in-app purchase. You can present web checkout as a secondary option beneath the native IAP button, or give both options equal visual weight if that better fits your pricing strategy. In either case, lead with the customer outcome. Straightforward language like “Buy now” tends to perform better than technical phrasing like “External purchase option.”
Layout 3: Web checkout as an upgrade path
Best for apps that want to offer annual or premium plans on the web while keeping monthly plans available through in-app purchase. Surface annual or discounted plans as the web-based option. This layout often performs well because it anchors the web checkout path to a clear value difference, rather than simply asking customers to choose between two payment methods.
Example layouts:
Web checkout page design
Once the customer is in the browser, the goal is to help them complete the purchase as quickly as possible. Mobile customers are on a smaller screen and in a new context, so the checkout experience should prioritize speed, clarity, and trust. Five principles consistently improve mobile checkout conversion:
- Lead with wallets. On mobile, wallet buttons placed above the card form often outperform form-first layouts. Customers who have just left a native app expect a fast, one-tap checkout experience.
- Show your brand. Include your app logo and product visuals at the top of the checkout page. Customers should feel like they are still in your ecosystem, not on a generic payment page.
- Prefill what you know. If the customer is authenticated in your app, pass their email address into the checkout session when possible. Removing even one required field can meaningfully improve completion rates.
- Keep the purchase summary visible. Make sure the product name, price, and billing cadence are easy to see near the payment form, so customers can quickly confirm what they’re buying.
- Make the return path explicit. After a successful payment, automatically redirect customers back to your app.
Measuring the funnel: Track click-through rate and conversion rate separately. Click-through rate measures how many customers tap from the paywall to the checkout link, while checkout conversion rate measures how many customers complete payment after the checkout page loads. A low click-through rate typically points to issues with button placement or copy needs work. A low checkout conversion rate typically indicates that the web checkout experience itself needs improvement. These are distinct problems, and they usually require different fixes.
Test which strategies work best for your customers
- Test with new customers first: Start by A/B testing your web-based checkout with new customers, redirecting a portion of them to an external web page while you monitor key business metrics. Once you’re happy with performance, consider prompting existing customers to purchase on the web.
- Choose the right payment strategy: With Apple’s updated guidelines, you’re no longer required to offer Apple’s IAP system. Developers have seen success with different strategies:
- Offer both IAP and web checkout: Some developers offer both options, sometimes offering a discount for choosing the web to encourage cost-effective transactions.
- Web-only checkout: Other developers remove IAP entirely and only accept payments through the web for maximum savings on fees.
- Offer both IAP and web checkout: Some developers offer both options, sometimes offering a discount for choosing the web to encourage cost-effective transactions.
- Plan for existing subscriptions: Apple does not allow exporting of IAP payment data, so you can’t automatically migrate active subscriptions to third-party providers such as Stripe. To transition customers, consider prompting them to resubscribe via your web checkout after their current in-app subscription ends, rather than offering a renewal option in-app.
For Android developers, a third, hybrid model is also available: Integrate Stripe’s in-app payment element as the primary payment path, while keeping Google Play Billing as a fallback feature for customers who prefer it. This approach gives Android customers a seamless, native Stripe experience while preserving flexibility during the transition.
When testing, prioritize high-intent cohorts in your initial rollout, such as customers purchasing annual plans, returning customers, and customers who have already started the purchase flow. Web checkout tends to perform most competitively with these groups relative to in-app purchase, and the per-transaction fee savings are often most meaningful to them.
Manage your customer journey post-purchase
- Offer subscription management on the web: If you sell subscriptions, give customers a way to manage them outside the app. A common approach is to show the customer’s current subscription tier in the app and include a button that links to a web-based subscription management portal. Ideally, that portal should allow customers to update their payment method, cancel their subscription, or upgrade to a different plan. This improves the customer experience and also reduces support requests. If you are using Stripe’s in-app payment element directly in your Android app, post-purchase subscription management works more like a traditional web subscription. You can manage the full subscription lifecycle through Stripe Billing and the Stripe customer portal.
- Prepare for taxes, disputes, and refunds: When using Apple’s IAP system, Apple is the merchant of record, handling taxes, refunds, and disputes. When you transition to web-based payments, your business becomes the merchant of record and assumes these responsibilities, or you can use a payment provider that also operates as the merchant of record for your business. Look for a payment provider that can manage the following on your behalf:
- Global tax compliance: Calculating, collecting, and remitting the correct taxes across multiple jurisdictions
- Fraud management: Implementing systems to detect and prevent fraudulent transactions
- Dispute resolution: Responding to and managing customer disputes and chargebacks
- Financial liabilities: Taking on legal and financial responsibilities for every transaction
- Customer support: Handling payment-related inquiries and refund requests
- Global tax compliance: Calculating, collecting, and remitting the correct taxes across multiple jurisdictions
If your company already manages web payments, you might have these systems in place. If not, consider a solution such as Stripe Managed Payments, which acts as your merchant of record.
How Stripe can help you take advantage of this opportunity
Implementing all these best practices can be daunting, especially if you need to replace the comprehensive infrastructure Apple previously provided. Stripe offers a holistic solution that helps you make the transition to web-based payments quickly and with confidence:
- Stripe Checkout for app-to-web payments: A prebuilt, highly customizable payment page designed for accepting app-to-web payments.
- Stripe Managed Payments: Our merchant of record solution uses Link to manage all of the complexity involved in operating as the merchant of record. Stripe handles the behind-the-scenes intricacies—such as global tax compliance, dispute management, fraud prevention, and customer support—for you, maintaining the operational simplicity you’re accustomed to.
- Stripe Billing: Manage and bill customers however you want. Stripe supports recurring, usage-based billing and negotiated contracts to automate your revenue management workflows. Stripe also supports online subscription management with a dedicated customer portal.
Here’s more detail on each of these solutions.
Stripe Checkout for app-to-web payments
With Checkout, you can create a seamless and trusted checkout experience that feels native to your app while gaining greater flexibility, control, and payment method coverage on the web. Stripe Checkout for app-to-web payments is a prebuilt, highly customizable payment page designed specifically for mobile apps. It helps you implement best practices right away and handles many of the best practices covered in this guide.
Stripe Checkout features a mobile-optimized UI tailored for app customers, along with secure authentication and redirect handling to ensure a smooth flow from your app to the web. It also includes built-in support for promo codes and subscription upgrades, enabling more flexible and conversion-friendly purchasing options.
With support for more than 75 global payment methods—including Apple Pay, Link, and Cash App Pay—Checkout allows you to meet customer preferences across geographies. Returning customers benefit from saved payment methods, which speed up the checkout process and boost repeat conversions.
Stripe Checkout also enables global privacy, security, and network compliance, and it automatically manages cart state, authentication, and redirects. It supports both one-time and subscription billing models, and it comes with a prebuilt billing portal—allowing customers to manage their subscriptions on the web.
All of this is backed by Stripe’s powerful billing and tax engines, giving you global tax compliance and reliable recurring billing that are ready to use. With Checkout, you can start accepting web payments in just a few days—without having to build everything from scratch.
Link out of app for one-time payments
Link out of app for recurring or subscription payments
Stripe Managed Payments
Selling digital products such as SaaS, software, content, or downloads through web payments offers more flexibility and control. But it also introduces new responsibilities that were previously handled by Apple, such as tax compliance and customer support.
Stripe Managed Payments is a merchant of record solution that handles these complexities for you, so you can simplify your operations while expanding your reach.
A merchant of record is the legal entity responsible for selling products to customers. When you use Managed Payments, Stripe becomes the merchant of record on your behalf—taking on the key responsibilities associated with digital sales. This includes:
- Global tax compliance (VAT, GST, sales tax), including calculation, collection, and remittance
- Fraud prevention and risk management
- Dispute and chargeback handling
- Customer support and subscription management
Stripe Managed Payments supports your customers with a Link-branded customer portal. If your customers use Link, they can view their purchase history, manage payment methods, and update or cancel subscriptions. Additionally, Managed Payments includes transaction-level customer support through Link. By handling these complex tasks, Stripe allows you to retain the operational simplicity provided through in-app purchases, while giving you the flexibility and control of web-based payments.
For businesses that want to offload the operational burden of selling digital products globally, Managed Payments is the fastest path forward. It enables you to go to market quickly without building intricate backend systems, while offering a seamless app-to-web checkout experience. With built-in compliance for global tax regulations, you can focus on growing your business without needing to become your own merchant of record.
Stripe Billing
Now that you can collect payments through an external website, you have the ability to fully control pricing. Stripe Billing allows you to easily customize pricing models such as subscriptions, usage-based, pay-as-you-go, or one-time charges to match your business needs.
If you do not use Managed Payments but are using Billing, your customers can easily manage their subscriptions on the web using Stripe’s customer portal. This portal lets customers self-manage their payment details, view invoices, and update subscriptions—all in one convenient place. If you use Managed Payments, a comprehensive subscription management experience is automatically included as part of the service.
You can also give customers a discounted introductory rate, so they can try your product without paying full price, or you can give subscribers a discount if they upgrade from a monthly plan to an annual one. Stripe Billing also helps you maximize revenue and reduce churn with AI-powered Smart Retries and recovery workflow automations. Stripe recovery tools helped businesses recover $8.2 billion in failed payments in 2025.
Other benefits of using Stripe
Offer a fast checkout with Link
With Link, you can maintain a fast, frictionless payments experience by autofilling customers’ payment information—enabling them to check out in seconds. In fact, customers using Link check out three times faster than non-Link customers.
Reduce processing cost with Instant Bank Payments
In addition to a faster checkout, you can also save on payment processing with Instant Bank Payments through Link. With Instant Bank Payments, your customers can check out with Link and pay with their US bank account in just a few clicks. Payments are then confirmed instantly, and they settle in two business days—just like card payments—with Stripe guaranteeing the risk of bank-initiated returns.
Instantly transfer funds to your bank account or debit card
Access to cash is a challenge for all businesses, but it can be particularly hard for app developers who have to wait at least 30 days to access their earnings. This lack of cash flow can limit your ability to scale your app, making it harder to invest in new marketing campaigns or features. Stripe’s Instant Payouts solves this challenge by allowing you to transfer funds to an eligible debit card or bank account within minutes of a transaction. You can request an instant payout any day or time, including weekends and holidays, and funds typically arrive in the associated bank account within 30 minutes.
For more information about how Stripe can help you create a web-based checkout, read our guide or contact our sales team. To start accepting payments right away, sign up for an account.