
If you've ever wrestled with Flutter's in_app_purchase package, you know the feeling. One developer on Reddit put it perfectly: "random small bugs that needed platform specific workarounds... and had to fight with Apple's JWT validation system on my backend which IMO has really bad documentation." Another added, "I just finished implementing in-app purchases for iOS and they approved my app after 3 or 4 rejections — it was a hell of a process."
Sound familiar? Apple's IAP system has long been a tax on developer sanity — and a literal 15–30% tax on your revenue. But as of April 2025, the game has changed.
A federal judge permanently barred Apple from forcing developers to use its In-App Purchase system or collecting its commission on external purchases in the US — a direct result of the landmark Epic v. Apple ruling. You can now legally add in-app buttons and links directing users to alternative payment methods, without fear of App Store retaliation.
The opportunity is real. But the new landscape of flutter direct billing integration SDKs is genuinely confusing. Do you go with a full Merchant of Record? Bolt together RevenueCat and Stripe? Build it yourself? This article cuts through the noise by comparing five leading options on the criteria that actually matter:
Let's get into it.
Overview: Allocents was built specifically for this post-Epic moment. The pitch is simple: replace Apple's 30% commission with a 5% fee without adding engineering complexity.
Integration Time: ⚡ 15 minutes. This isn't marketing fluff — Allocents provides a drop-in Flutter SDK with automatic StoreKit product sync from App Store Connect. There's no separate backend to wire up, no entitlement logic to build, and no migration flows to design from scratch.
Flutter Support Quality: Excellent. First-class Flutter support alongside Swift/SwiftUI, Kotlin, and React Native. This isn't a web wrapper — it's a native SDK designed for mobile.
Merchant of Record Coverage: Full MoR via Allocents Billing. They handle payments, tax remittance across 190+ countries, chargebacks, fraud protection, refunds, and customer support. It's the Apple-quality billing infrastructure, without the Apple-sized fee. For developers who dread "dealing with the back-end yourself," this is the cleanest escape hatch.
Pricing Model:
Migration Tooling: This is where Allocents genuinely stands apart. The SDK includes Sign Up & Save paywalls (users choose between App Store or direct billing at signup), Switch & Save campaigns to migrate existing StoreKit subscribers, gradual rollout controls (start at 10% of users, scale up, instant rollback), jurisdiction-aware routing (US only, where the ruling applies), and a built-in A/B testing dashboard for discounts and paywall copy.
The Bottom Line: The fastest path from Apple's 30% to a 5% direct billing fee. If you want one SDK that handles everything — MoR, UI, migration, analytics — this is it.
Overview: Paddle is a well-established Merchant of Record platform, popular with SaaS companies and increasingly adopted by mobile app developers post-Epic. It handles the full billing lifecycle, and its brand credibility is a genuine asset for enterprise-tier apps.
Integration Time: Slower. Paddle themselves cite an average migration time of ~12 days, broken into: setup & configuration (Days 1–2), build & validate (Days 3–7), and go-live & migrate (Days 8–12). That's a meaningful engineering investment compared to Allocents' 15-minute drop-in.
Flutter Support Quality: Good. Paddle has SDKs available but isn't Flutter-first — expect more configuration work than a purpose-built mobile SDK.
Merchant of Record Coverage: Full MoR. This is Paddle's core strength — global tax compliance, fraud protection, chargebacks, and multi-currency support all handled for you.
Pricing Model:
Migration Tooling: Paddle provides dedicated migration support, but it requires more hands-on setup than ZeroSettle's automated approach. Expect to spend engineering time configuring the migration flows.
The Bottom Line: A strong, battle-tested MoR solution with excellent global coverage. The trade-off is a multi-day integration timeline and a pricing structure that punishes low-ticket purchases.
Overview: This is probably the most popular stack in the Flutter community today. RevenueCat manages subscription logic, entitlements, and cross-platform state — while Stripe handles the actual payment processing. It's powerful, but stitching two systems together comes with real costs.
Integration Time: Longer than any single-SDK option. You're configuring two separate platforms, building the glue logic between them, and designing your own migration flows from scratch.
Flutter Support Quality: Excellent for RevenueCat in isolation. The purchases_flutter package is well-regarded in the community — as one developer noted, "I have faced a lot of issues with IAP on native Android, but with RC it was a walk in the park." Setup involves:
# pubspec.yaml
dependencies:
purchases_flutter: ^latest
# ios/Podfile
platform :ios, '11.0'
<!-- AndroidManifest.xml -->
<uses-permission android:name="com.android.vending.BILLING" />
Stripe's Flutter SDK is solid too. The gap is the integration between them — that's entirely on you.
Merchant of Record Coverage: ⚠️ You are the MoR. This is the critical trade-off most developers underestimate. Sales tax across jurisdictions, VAT compliance, chargebacks, fraud disputes, PCI compliance — all yours. For a solo developer or small team, this is a significant operational burden that doesn't show up in the pricing comparison until something goes wrong.
Pricing Model: Layered fees from two vendors:
At scale, your effective rate can creep to 4–5%+ before factoring in your own support and compliance overhead.
Migration Tooling: RevenueCat simplifies entitlement management, but there's no dedicated tooling to migrate users from Apple's StoreKit to Stripe checkout. You're building those flows yourself. Also worth noting: some developers have flagged reliability concerns — "RevenueCat is another piece of crap that often just misses subscription renewals (user is subscribed, but RC says it is not)." Test thoroughly before going live.
The Bottom Line: Excellent flexibility and great for teams already embedded in the Stripe ecosystem. But you're trading engineering time, MoR liability, and multi-vendor complexity for that control. Not a set-it-and-forget-it solution.
Overview: Superwall is a remote paywall configuration and A/B testing platform. It's frequently recommended alongside RevenueCat — and it's genuinely excellent at what it does. But it's important to be clear: Superwall is not a billing solution.
Integration Time: Moderate, depending on paywall complexity and your existing subscription backend.
Flutter Support Quality: Good, with a dedicated Flutter SDK.
Merchant of Record Coverage: None. Superwall doesn't process payments. It triggers purchases through your existing IAP or direct billing backend (eg. RevenueCat + Stripe, or StoreKit).
Pricing Model: Based on Monthly Tracked Users (MTU) — it's an additive cost on top of whatever you're already paying for billing infrastructure.
Migration Tooling: Not applicable in the direct billing migration sense. Superwall optimizes conversion at the paywall screen; it doesn't have tooling to move existing subscribers off Apple's StoreKit.
The Bottom Line: An excellent layer for maximizing conversion if you're already set up with a billing backend. But if you're comparing tools side-by-side for your flutter direct billing integration, Superwall belongs in your optimization stack — not your billing stack. You still need to pair it with a real payment solution.
Overview: Skip the subscription management SDKs entirely and build directly on Stripe's APIs. Full control, maximum complexity.
Integration Time: Weeks to months. You're building subscription logic, entitlement management, migration flows, webhook handling, receipt validation, and dunning management from scratch.
Flutter Support Quality: Stripe has a functional Flutter SDK, but every piece of business logic — trial handling, upgrade/downgrade flows, cancellation recovery — is a custom build.
Merchant of Record Coverage: 100% on you. This is the maximum operational complexity path: global tax compliance, PCI DSS, fraud, chargebacks, customer support. One Reddit commenter described the DIY approach as something you do "to learn a lot specifically in the backend processes" — which is a fine goal for a student project, but a costly one for a business.
Pricing Model: Lowest direct transaction cost (~2.9% + 30¢ via Stripe), but the indirect costs — engineering salary, legal/tax counsel, compliance tooling, and ongoing maintenance — are substantial. Your real hourly cost of building this often exceeds what you'd save vs. a managed solution.
Migration Tooling: None provided. Design, build, and test it yourself.
The Bottom Line: Only justifiable if you have a dedicated payments engineering team, in-house tax/legal expertise, and a strategic reason to own the full stack (e.g., proprietary pricing models or custom checkout flows at significant scale).
| SDK | Integration Time | Flutter Support | MoR Coverage | Effective Pricing | Migration Tooling |
|---|---|---|---|---|---|
| Allocents | 15 minutes | Excellent | Full MoR | 5% + 50¢ | Robust & Automated |
| Paddle | ~12 days | Good | Full MoR | 5% + 50¢ (10% under $10) | Moderate, Supported |
| RevenueCat + Stripe | Longest | Excellent | Developer | ~4–5%+ (variable) | Complex, Manual |
| Superwall | Moderate | Good | N/A | Per MTU (additive) | N/A |
| DIY Stripe | Weeks–Months | Native (DIY) | Developer | ~3%+ (high indirect) | Build Your Own |
At this stage, engineering hours are your scarcest resource. Every week spent wiring together a multi-system billing stack is a week not spent on your product. The direct billing opportunity is here now, and the complexity cost of a multi-vendor setup can eat the margin you're trying to recover.
Top Recommendation: Allocents. The 15-minute integration, full MoR coverage, and automated migration tooling let you escape Apple's fee structure without becoming a payments company. Ship it in an afternoon.
At this revenue level, even small percentage differences in fees matter significantly. You also likely have in-house engineering and ops capacity to absorb more complexity.
Top Recommendations:
The Epic v. Apple ruling has handed Flutter developers a genuine opportunity to reclaim a significant slice of revenue that was previously non-negotiable. That 15–30% commission is now a choice, not a mandate — at least in the US.
But the right tool depends on your situation. The core trade-off is straightforward: unified SDK simplicity vs. multi-system flexibility and MoR burden. For most Flutter developers, especially those who've already suffered through flutter_inapp_purchase bugs and Apple's JWT validation documentation, adding another complex system to own isn't the answer.
Whether you choose a fully managed path or decide to own more of the stack, the opportunity to meaningfully boost your margins is real — and it starts with picking the right flutter direct billing integration for your team's actual capabilities, not just the theoretical ideal.
The 30% era is over. Time to act like it.
A Merchant of Record (MoR) is the entity that is legally responsible for processing customer payments, including handling all sales tax, fraud, chargebacks, and compliance. This is a critical consideration because if you use a solution like Stripe directly, you become the MoR, which creates a significant operational and legal burden. Using a full MoR service like Allocents or Paddle offloads this entire responsibility, letting you focus on your app instead of global tax law.
The primary reason to switch is to significantly increase your revenue by avoiding Apple's 15-30% commission. Following the Epic v. Apple ruling in the US, you can now implement direct payment options and keep more of your earnings. Beyond cost savings, direct billing gives you more control over the checkout experience, direct communication with your customers, and ownership of your subscriber relationships.
Migrating subscribers requires you to convince them to cancel their App Store subscription and re-subscribe through your new direct payment flow. The most effective way to do this is by offering an incentive, like a "Switch & Save" discount. Some SDKs, like Allocents, provide pre-built campaigns and UI for this, automating the process. With other setups, like a DIY Stripe integration, you would need to build, test, and manage this migration logic yourself.
The easiest and fastest way to implement direct billing is by using a single, all-in-one SDK that provides full Merchant of Record (MoR) services. Solutions like Allocents are designed for this purpose, offering a drop-in Flutter component that can be integrated in minutes. This approach removes the complexity of wiring together separate systems (like RevenueCat and Stripe) and offloads all tax and compliance burdens.
Yes, not only can you offer both, but it's often the best strategy. By presenting users with a choice—pay through the App Store or pay directly (often for a discount)—you can maximize conversions. This "choice architecture" is a powerful way to migrate users without removing the convenience of IAP for those who prefer it. Smart SDKs can manage this by routing users based on their location and your rollout rules.
While Stripe's direct transaction fees are low (around 2.9% + 30¢), the total cost of a DIY solution is much higher. The "real cost" includes thousands of dollars in engineering salaries to build and maintain the subscription logic, entitlement systems, and migration flows. It also includes the operational overhead and financial risk of acting as your own Merchant of Record, which involves managing global sales tax, PCI compliance, fraud, and chargebacks.
No, the ruling that allows developers to link to external payment options applies specifically to the United States. In other countries, Apple's original App Store policies that prohibit steering users to outside payment systems generally still apply. Therefore, it's crucial to use a solution that is jurisdiction-aware, meaning it will only show the direct billing option to users in legally permitted regions like the US.