MOBILE

Web Billing for iOS Apps: The Complete 2026 Guide

iOS apps are abandoning IAP to avoid Apple’s 30% cut. Here’s how web billing works, what it costs, and how to recover failed payments on Stripe.
7 minutes
June 8, 2026

When Fortnite returned to the U.S. App Store on May 20, 2025, it wasn't a reconciliation. Judge Yvonne Gonzalez Rogers had ruled three weeks earlier that Apple willfully violated a court injunction, and Apple had run out of ways to stall. 

That ruling changed the economics of every subscription app on iOS. U.S. developers can now include buttons and links inside their apps that send users to a web checkout, complete a purchase through Stripe, and skip Apple's 15%–30% commission entirely. That's not a loophole. It's the law.

This is the biggest monetization shift in mobile since the App Store launched. Here's exactly what changed, how to set it up, and the failed payment recovery risk that almost nobody's covering.

What the Epic vs. Apple Ruling Actually Changed for App Developers

In April 2025, U.S. District Judge Yvonne Gonzalez Rogers found Apple had deliberately undermined her 2021 injunction. Apple's response had been to allow a single external link while still charging a 27% commission on linked-out purchases and showing pop-up "scare screens" to discourage users from leaving the App Store. The court called this a "cover-up."

The ruling stripped all of it. Apple was barred from charging commission on external purchases, barred from UX friction designed to deter web payments, and required to allow in-app buttons directing users to off-app checkout. The December 2025 Ninth Circuit ruling partially modified this, saying Apple may eventually collect some commission, but the amount must be set by the district court. As of May 2026, the case is heading to the Supreme Court, and external link rules remain in effect.

What Was Forbidden Before and What's Now Allowed

Before the ruling, developers couldn't include any link, button, or promotional copy directing users to a cheaper option outside the app. Now they can:

  • In-app buttons or links pointing to an external web checkout
  • Promotional copy comparing web pricing to in-app pricing
  • Email or push messaging encouraging users to subscribe on the web

Most apps still need to offer IAP alongside external options. Only reader apps like Spotify and Kindle can go web-only.

How Apple's New External Purchase Link Entitlement Works

Apple now requires a single neutral disclosure when users tap an external payment link: "You're about to go to an external website. Apple isn't responsible for the privacy or security of purchases made on the web." Users click through to your Stripe checkout. No scare screens.

IAP vs. Web Billing: A Side-by-Side Cost and Control Comparison

The core economics are straightforward. Apple's IAP takes 30% per transaction (15% if you're under $1M ARR). Stripe charges approximately 2.9% plus 30 cents. On a $9.99/month subscription, that gap is $2.70 per payment. At 100,000 subscribers, that's $270,000 a month that could be going to your business instead.

Apple's 15%–30% Fee vs. Stripe's ~2.9% + 30 Cents

Apple IAP Stripe Web Billing
Commission rate 15%–30% ~2.9% + 30¢
Revenue on $9.99/month $6.99–$8.49 ~$9.40
Tax handling Apple manages it You or Stripe Tax
Customer data ownership Limited Full
Failed payment recovery Apple handles retries You own it

What You Give Up When You Leave the App Store Billing Rails

IAP isn't just a payment processor. It's a managed billing stack. Moving to Stripe means you're now responsible for tax compliance across every jurisdiction, fraud prevention and chargebacks, failed payment recovery, and subscription management. Stripe handles most of this natively, but you need to build the infrastructure before you migrate subscribers.

How to Set Up Stripe Billing for a Web-to-App Funnel Step by Step

What You Need Before You Build (Stripe Account, Web Checkout, Deep Link)

Before writing any code, confirm you have:

  1. A Stripe account with Billing enabled and webhooks configured
  2. A hosted checkout page using Stripe Checkout or Elements on your own domain
  3. A deep link returning the user to your app after payment completes
  4. A backend server to create Stripe checkout sessions and receive webhooks
  5. A user identifier (email or UUID) linking the Stripe customer to the iOS app account

Critical: Apple won't let you export existing IAP subscriber payment data, so you can't silently migrate active subscribers. Prompt them to resubscribe through web checkout when their in-app term ends.

How to Match a Web Subscriber to Their iOS App Account

Pass a unique app account token as a URL parameter when the user taps the external link. Store that token as Stripe customer metadata when the checkout session is created, listen for the checkout.session.completed webhook, match the token to the user in your database, and grant the entitlement. The user returns to the app via deep link with access already unlocked.

The Biggest Risk No One Talks About: Failed Payments on Web Billing

Most web billing guides skip this. When a subscriber's Apple ID payment fails, Apple manages the retry and often the recovery. You don't own that process, but it runs.

When you move to Stripe, you own it completely.

Why Web Billing Has a Higher Failed Payment Rate Than IAP

Industry data puts the monthly failed payment rate for B2C subscriptions at 7%–10%. On web billing, it can run higher for two reasons:

  • Credit card data ages faster. IAP is tied to the user's Apple ID, which uses Apple's Account Updater. Stripe has its own Account Updater, but coverage isn't identical.
  • Manual card entry introduces errors. Mistyped card numbers, wrong expiration dates, and billing address mismatches produce declines that don't exist in a one-tap IAP flow.

Moving to web billing without a recovery strategy in place can erode some of the margin you're gaining from lower Stripe fees.

What Happens to Your iOS App Subscriber When Their Stripe Payment Fails

Stripe's Smart Retries will attempt the charge again at machine-learning-determined intervals. If those fail, dunning emails go out asking the subscriber to update their card.

Here's the problem. Your iOS app subscriber doesn't think of themselves as a "web billing subscriber." When they get a payment failure email from Stripe, many ignore it and quietly lose access. That's involuntary churn: the customer never intended to cancel, but they're gone. Stripe's own data shows recovered subscribers continue paying for an average of seven more months after recovery.

How Redux Recovers Failed Payments Silently in the Background

Redux Payments sits on top of your Stripe account and monitors bank health signals to identify the exact window when a retry is most likely to succeed, timed to issuing bank availability. The subscriber never sees a failure notification.

This matters more on web billing than IAP because you're now carrying the full recovery burden yourself. Redux is built specifically for B2C subscription businesses on Stripe, where each lost subscriber represents months of LTV. Learn more about the Redux AI Recovery Engine and how it layers on your existing Stripe setup without replacing it.

FAQ: Web Billing for iOS Apps

What is web billing for iOS apps and how does it differ from IAP?

Web billing means collecting subscription payments through Stripe on your own website instead of through Apple's In-App Purchase system, trading a 15%–30% commission for ~2.9% + 30 cents while taking on responsibility for taxes, fraud, and payment recovery yourself.

Can iOS apps legally charge users on the web instead of through the App Store?

Yes, for U.S. users following the April 2025 Epic vs. Apple ruling, though most apps must still offer IAP alongside the web option.

What payment processor should iOS apps use for web billing?

Stripe is the standard choice, with native subscription billing, webhook-based entitlement syncing, Smart Retries, and Stripe Tax built in.

How do failed payments work differently on web billing vs. in-app purchases?

With IAP, Apple manages retries and Account Updater card refreshes automatically. With Stripe web billing, you own the entire recovery process, and failure rates tend to run higher because credit card data ages faster and manual entry errors don't exist in a one-tap Apple Pay flow.

How do I recover a failed subscription payment for a mobile app using Stripe?

Stripe offers Smart Retries, which provides a baseline level of recovery. But Smart Retries is broad by nature, since it has to work across Stripe's large B2B customer base. Redux is specialized for B2C, retrying on paydays to catch insufficient-funds declines and offering frictionless card update flows.

Does moving to web billing affect my app's App Store approval?

No, as long as external payment links follow Apple's placement rules, include the neutral disclosure message, and your app still offers IAP unless it qualifies as a reader app.

Will Apple eventually charge a commission on web billing purchases?

Possibly: the December 2025 Ninth Circuit ruling said Apple may collect some commission, but the amount must be set by the district court, and current no-commission rules remain active while the Supreme Court reviews the case.

See What You're Losing Before You Move Billing to the Web

The margin math on web billing is compelling. But the failed payment risk on Stripe compounds quietly, especially when you're migrating a subscriber base that previously relied on Apple's recovery infrastructure.

Run your free churn audit with Redux Payments before you migrate. You'll see your current failed payment rate, your recovery gap against Stripe's baseline, and estimated revenue at risk. That number tells you exactly what recovery infrastructure you need on day one.

AUTHOR
Philip Pages
CEO, Redux Payments

Stop Losing Customers To Failed Payments

Recent blog & articles