← Part of RevenueCat

Paywall and subscriptions

Design a paywall, plug in RevenueCat and sell subscriptions for real on the App Store and Google Play.

Want your app to make money? Bloxks builds the whole monetization loop: a paywall designed for your app, subscriptions managed by RevenueCat on the App Store and Google Play, and a setup that follows the stores’ rules from day one.

This page walks you all the way to your first real sale: what Bloxks does for you, the few settings only you can make (Apple and Google require them from the account owner), and how to fix the classic problems.

A paywall designed for your app

Ask Bloxks for a paywall and it designs one that matches your app: same style, same tone, with the structure that converts (hero, benefits, plans, social proof). You preview it live in the builder and iterate like any other screen:

  • "Put the annual plan first and highlight the discount."
  • "Add three short testimonials above the button."

The builder preview never charges anything: no money moves until your app is installed from TestFlight or Google Play. Step by step: Create a paywall, then Test purchases.

What Bloxks does for you

Connect RevenueCat with the Connect RevenueCat button (not a pasted key: only that connection lets Bloxks create everything), then describe your prices in the chat. When you publish, Bloxks:

  • creates the RevenueCat project and its iPhone and Android apps, and puts the right keys in your app;
  • on the App Store: creates the subscription group, each subscription with its name and description, its price in every country, its availability and its free trial, then sends the subscriptions for review together with your app;
  • on Google Play: creates the subscriptions, their plans with prices converted for every country and their free trial, as soon as your first Android build is on the internal testing track, and gives RevenueCat the Google Play access it needs to validate purchases (the service account file of your Google Play connection);
  • in RevenueCat: creates the products, the premium access (entitlement) and the offer shown by your paywall, for both stores;
  • in your app: shows the real price and duration, a Restore purchases button, and the links to your terms and privacy policy, as Apple requires. The review in the App Store tab checks that the Restore button is really there before you publish.

Follow it from the builder

Once your app has plans, the Paywall tab shows a Last mile list: the settings below, with their direct links. The two that Bloxks can check (the Apple purchase key, RevenueCat’s access to Google Play) are ticked on their own once they are done.

Try a purchase in the builder (Test mode)

No need to publish to check your paywall: in the Paywall tab, switch Purchase mode to Test. Purchases in the builder’s web preview then go through RevenueCat’s Test Store, really unlock premium and show up in your RevenueCat dashboard, without an Apple account or a single cent. Step by step with screenshots: Test purchases.

Before your first sale: iPhone

Two required one-time settings, plus one recommended. Allow 15 minutes.

  1. Sign the paid apps agreement. In App Store Connect, open Business, accept the Paid Apps agreement, then fill in your bank account and tax forms (the whole Apple setup: Set up your Apple account). Only the account holder can do it. Until its status is Active, no subscription loads, not even in testing, and no error message says why. Apple can take up to 24 hours to activate it.
  2. Give RevenueCat the in-app purchase key. In App Store Connect, open Users and Access, then Integrations, then In-App Purchase, and generate a key. Download the .p8 file (Apple lets you download it only once) and copy the Issuer ID. In RevenueCat, open your project’s App Store app and upload them under In-app purchase key configuration. Without it, RevenueCat cannot validate your users’ purchases. This is not the Admin key you gave Bloxks: it is a second key, dedicated to purchases. Step by step with screenshots: Apple in-app purchase key.
  3. Recommended: turn on Apple notifications. Subscriptions work without them, but with them RevenueCat learns about renewals, cancellations and refunds right away. They are required if you sell a lifetime purchase, so refunds remove access. In RevenueCat, in the same App Store app, under Apple Server to Server notification settings, click Apply in App Store Connect. If the button is not available, copy the URL shown there. Then, in App Store Connect, open your app, then App Information, then App Store Server Notifications, and paste it as the Production URL and the Sandbox URL, choosing Version 2.

Apple also wants a link to your terms of use in the App Store listing: Bloxks adds it at the end of your description when you publish.

Before your first sale: Android

Four one-time settings. Allow 20 minutes, plus Google’s delay.

  1. Create your payments profile. In Play Console, open Settings, then Payments profile, and create it with your bank details. Without it, Google refuses paid products.
  2. Enable two Google APIs. Bloxks already gives RevenueCat your service account file when you publish. For RevenueCat to use it, in your Google Cloud project (the one of your Google Play connection), also enable the Google Play Developer Reporting API and the Cloud Pub/Sub API. Google can take up to 36 hours to accept the credentials: an "invalid credentials" message in RevenueCat on the first day is normal. The whole Google journey, with screenshots: Set up your Google Play account.
  3. Turn on real-time notifications. Once the credentials are accepted, still in the RevenueCat Play Store app, create the topic under Google developer notifications and copy its ID. In Play Console, open your app, then Monetize with Play, then Monetization setup: paste the topic, enable real-time notifications and pick Subscriptions, voided purchases, and all one-time products.
  4. Add yourself as a tester. In Play Console, Settings, then License testing: add the Google address of your phone, pick the list you just created, and save. Then open your testing track’s opt-in URL on the phone: without it, no product loads. Full checklist: Test purchases on Android.

Your free trials are created on Android too, for new subscribers only. If Google refuses one, Bloxks tells you at the end of publishing: add the Free trial offer yourself in Play Console, on the subscription’s base plan.

Test for real before you launch

  • iPhone: install your app from TestFlight. Purchases go through Apple’s test mode and cost nothing.
  • Android: install your app from the internal testing track, with the Google address you declared as a license tester. The payment sheet must say "Test card, always approves" — if it shows a real card, stop and check Test purchases on Android.
  • Buy a plan, close the app, reopen it: premium access must still be there. Then try Restore purchases.
  • In RevenueCat, the purchase shows up in the customer list within a few seconds.

If it doesn’t work

  • The paywall shows no plans (iPhone): the paid apps agreement is almost always the cause. Check that it is Active in Business.
  • No plans right after release: Apple and Google can take up to 24 hours to make new products available in every country. Wait before changing anything.
  • A user paid but has no premium access (iPhone): RevenueCat is missing the in-app purchase key, or it is invalid. Follow Apple in-app purchase key.
  • Purchases work in TestFlight but fail at Apple review: the subscriptions were not sent with the version. Publish again from Bloxks: it attaches them automatically.
  • "Invalid credentials" in RevenueCat (Android): wait 36 hours. If it persists, check that the service account has the Administrator permission in Play Console.
  • Android publishing stops on "RevenueCat Android key": your app sells plans, and Bloxks refuses to ship an Android build that could not show them. Connect RevenueCat with the Connect RevenueCat button (not a pasted key), then publish again.
  • Purchases on Android fail with no message: check that you installed the app from Google Play (not from a file) and that your Gmail address is a license tester.

Good to know