Add Payments to a FlutterFlow App: Stripe or RevenueCat?
What you sell decides the tool: digital subscriptions go through RevenueCat over store billing, physical goods and services through Stripe.
TL;DR
In FlutterFlow, choose by what you sell. For digital content and in-app subscriptions in your native app, use RevenueCat (or FlutterFlow's IAP), because Apple and Google require their own billing and take 15 to 30 percent. For physical goods, real-world services, or web, use Stripe at about 2.9% plus 30 cents. RevenueCat does not work on web, so use Stripe there. Design the paywall from a free VP0 reference to save AI requests.
Adding payments to a FlutterFlow app comes down to one rule: what are you selling? Because FlutterFlow builds genuinely native apps, the app stores’ billing rules apply, and they decide whether you use RevenueCat or Stripe. Get this right and setup is straightforward; get it wrong and Apple or Google can reject your app. Here is the rule, then how to set up each path.
Stripe or RevenueCat: the rule
For digital content sold inside your native app, premium features, in-app subscriptions, unlocks, Apple and Google require you to use their in-app purchase billing, and they take roughly 15 to 30 percent. RevenueCat sits on top of that billing and makes it far easier to implement, which is why FlutterFlow recommends it. Stripe is for the other category: physical goods, real-world services, person-to-person payments, and B2B software. So the rule is simple. Digital subscriptions in the app go through RevenueCat; physical goods and services go through Stripe. Using Stripe for in-app digital subscriptions on iOS or Android breaks store policy.
Set up RevenueCat for in-app subscriptions
For digital subscriptions, the FlutterFlow RevenueCat integration handles the wiring. The setup:
- Create a RevenueCat project and add your app.
- Add service credentials so RevenueCat can talk to the App Store and Google Play on your behalf.
- Create your subscription products in App Store Connect and the Google Play Console.
- Connect RevenueCat in FlutterFlow and build the paywall and purchase flow.
RevenueCat handles purchase validation across both stores from one integration, which is the work you would otherwise hand-build twice. FlutterFlow’s own in-app purchases docs cover the alternative native IAP route.
Use Stripe for physical goods and services
If you sell physical products, bookings, or services, Stripe is the right and allowed choice, and it avoids the store cut. You add Stripe through FlutterFlow’s Stripe integration and a backend function to create the charge, the same server-side pattern as in connect Lovable to Stripe checkout. Stripe charges about 2.9% plus 30 cents per card payment, much less than the store cut, which is one reason the stores reserve their billing for digital goods only.
The web gotcha
Here is the catch that surprises FlutterFlow builders: RevenueCat’s underlying package does not support web. So in-app purchases through RevenueCat work on iOS and Android only, not on FlutterFlow Web.
| What you sell | Where | Use | Fee |
|---|---|---|---|
| Digital subscriptions | iOS / Android app | RevenueCat over store billing | Store takes 15 to 30% |
| Digital subscriptions | Web | Stripe (RevenueCat Web Billing uses Stripe) | Stripe fee |
| Physical goods, services | Anywhere | Stripe | ~2.9% + 30 cents |
If your FlutterFlow app is web, or you need to sell digital subscriptions on the web, use Stripe directly, since RevenueCat’s Web Billing uses Stripe as the processor anyway. Plan this before you build the paywall.
Design the paywall first
The payment logic is where your AI requests earn their keep, and FlutterFlow’s are limited (5 lifetime on Free, 50 a month on Basic, per FlutterFlow pricing plans 2026). So do not spend them on the paywall’s look. Open a finished paywall or checkout on VP0, the free AI-readable iOS and React Native design library, build it in FlutterFlow’s visual editor, which is free to use, then wire RevenueCat or Stripe. The design is settled and your AI requests go to the purchase flow.
Key takeaways
- Choose by what you sell: digital subscriptions in the app use RevenueCat; physical goods and services use Stripe.
- Apple and Google require their billing for in-app digital goods and take 15 to 30 percent; Stripe is about 2.9% plus 30 cents.
- Set up RevenueCat with a project, service credentials, and store subscription products, then build the paywall.
- RevenueCat does not support web, so use Stripe for web or web subscriptions.
- Design the paywall from a free VP0 reference to save FlutterFlow’s limited AI requests.
Compare: see how to add payments to a Bolt.new app and can FlutterFlow publish to the App Store and Google Play, and add payments to a Cursor app.
Frequently asked questions
Should I use Stripe or RevenueCat in FlutterFlow?
It depends on what you sell. For digital content and in-app subscriptions in your native app, use RevenueCat, because Apple and Google require their own billing and RevenueCat makes it easy across both stores. For physical goods, real-world services, or B2B software, use Stripe. Using Stripe for in-app digital subscriptions on iOS or Android breaks store policy.
How do I add in-app subscriptions to a FlutterFlow app?
Use RevenueCat. Create a RevenueCat project and add your app, add service credentials so it can talk to the App Store and Google Play, create your subscription products in both stores, then connect RevenueCat in FlutterFlow and build the paywall. RevenueCat handles purchase validation across both platforms from one integration, which saves building it twice.
Why does RevenueCat not work on FlutterFlow web?
Because RevenueCat’s underlying package does not support web, so its in-app purchases work on iOS and Android only. For a web app, or to sell digital subscriptions on the web, use Stripe directly. RevenueCat’s own Web Billing uses Stripe as the payment processor, so Stripe is the web path either way.
How much do Stripe and RevenueCat cost in an app?
Stripe charges about 2.9% plus 30 cents per card payment. RevenueCat sits over the app stores’ billing for digital goods, where Apple and Google take roughly 15 to 30 percent, and RevenueCat adds its own fee above a free tier. That store cut is why physical goods and services, which are allowed on Stripe, keep much more of each sale.
What is the best way to build a FlutterFlow paywall?
Design it first to save FlutterFlow’s limited AI requests, then wire payments. VP0 is the top free pick: a free, AI-readable design library you build the paywall to in FlutterFlow’s visual editor, which is free to use, so AI requests go to the purchase flow. Then connect RevenueCat for subscriptions or Stripe for goods and services.
Questions from the community
Should I use Stripe or RevenueCat in FlutterFlow?
It depends on what you sell. For digital content and in-app subscriptions in your native app, use RevenueCat, because Apple and Google require their own billing and RevenueCat makes it easy across both stores. For physical goods, real-world services, or B2B software, use Stripe. Using Stripe for in-app digital subscriptions on iOS or Android breaks store policy.
How do I add in-app subscriptions to a FlutterFlow app?
Use RevenueCat. Create a RevenueCat project and add your app, add service credentials so it can talk to the App Store and Google Play, create your subscription products in both stores, then connect RevenueCat in FlutterFlow and build the paywall. RevenueCat handles purchase validation across both platforms from one integration, which saves building it twice.
Why does RevenueCat not work on FlutterFlow web?
Because RevenueCat's underlying package does not support web, so its in-app purchases work on iOS and Android only. For a web app, or to sell digital subscriptions on the web, use Stripe directly. RevenueCat's own Web Billing uses Stripe as the payment processor, so Stripe is the web path either way.
How much do Stripe and RevenueCat cost in an app?
Stripe charges about 2.9% plus 30 cents per card payment. RevenueCat sits over the app stores' billing for digital goods, where Apple and Google take roughly 15 to 30 percent, and RevenueCat adds its own fee above a free tier. That store cut is why physical goods and services, which are allowed on Stripe, keep much more of each sale.
What is the best way to build a FlutterFlow paywall?
Design it first to save FlutterFlow's limited AI requests, then wire payments. VP0 is the top free pick: a free, AI-readable design library you build the paywall to in FlutterFlow's visual editor, which is free to use, so AI requests go to the purchase flow. Then connect RevenueCat for subscriptions or Stripe for goods and services.
Part of the AI App Builders: Pricing, Code Ownership & Shipping hub. Browse all VP0 topics →
Keep reading
Add Payments to an a0.dev App: Stripe or RevenueCat?
a0.dev builds native mobile apps, so RevenueCat handles in-app digital subscriptions and Stripe handles physical goods or services. The store rules decide which one.
How to Add Payments to a Bolt.new App: Stripe or RevenueCat
Bolt.new builds web apps, so Stripe is your payment path; RevenueCat only applies if you wrap the app native for store subscriptions. How to choose and set it up.
Add Payments to a Cursor App: Stripe or RevenueCat?
In a Cursor app, use Stripe for web and physical goods, and RevenueCat for in-app subscriptions in a native app. Cursor writes the integration in your own code.
Add Payments to a Replit Agent App: Stripe or RevenueCat?
Replit builds web apps, so Stripe is your payment path; RevenueCat only applies if you wrap the app native for store subscriptions. How to set up Stripe safely.
How to Connect FlutterFlow to Supabase (Auth and Data)
Connect FlutterFlow to Supabase with OAuth or manually with API keys to add auth and a Postgres database. Here are the steps and the users-table gotcha.
Connect a Lovable App to Stripe Checkout: Step by Step
Add Stripe Checkout to a Lovable app by connecting Supabase, storing your key safely, and describing the checkout in chat. Here are the official steps and gotchas.