GET STARTED

Dashboard setup.

Everything you configure in the RevFox panel before your app makes its first purchase, in the order you need it.

01

Projects and members

A project holds one product's apps, store items, customers, webhooks and charts. An iOS app and an Android app that sell the same subscription belong in the same project, so a customer who buys on one platform is entitled on both.

  1. Sign in to the panel and create a project from the project switcher.
  2. Use a separate project for products whose data must stay apart.
  3. Invite teammates under Members.
RoleCan
readView customers, events, charts and configuration. Secrets such as webhook signing secrets stay hidden.
writeAlso change apps, products, webhooks and project settings, grant benefits and run imports.
02

Apps and store credentials

Add one app per store listing under Apps → New app. Each app gets its own public API key, which the SDK uses.

App Store app

  • App Bundle ID must match the app's bundle identifier. Transactions signed for another bundle are rejected.
  • In-App Purchase key is required. RevFox uses it to call the App Store Server API for transaction history, subscription status and refunds. Create one.
  • App Store Connect API key is optional. It lets RevFox import your products and prices. Create one.
  • Apple commission estimate sets the dates your app was in the App Store Small Business Program, so revenue uses a 15% commission instead of 30%.

Play Store app

  • Google Play package name must match the app's application ID.
  • Service account credentials are the JSON key of a Google Cloud service account with access to the app in Play Console. Create one.
Credential hygiene

Give store accounts only the permissions RevFox needs, and keep their keys out of source control. Keys are stored in your RevFox database, so protect database backups the same way.

03

Store notifications

Stores report renewals, cancellations, billing problems and refunds to RevFox as they happen. RevFox also asks the stores directly, so a missed notification is caught later, but notifications make changes show up within seconds.

App Store Server Notifications

  1. Open the App Store app in RevFox and copy its Notification URL. It has the form https://<api host>/app-store-server-notifications/<id>.
  2. In App Store Connect, open the app, then App Information → App Store Server Notifications.
  3. Paste the URL as both the production and the sandbox URL, and choose Version 2.

The app page shows when the last notification arrived. RevFox accepts only notifications signed by Apple.

Google Play real-time developer notifications

  1. Enable the Cloud Pub/Sub API in the Google Cloud project of your service account.
  2. On the Play app's page in RevFox, under Google Play Pub/Sub, pick an existing topic or let RevFox create one, and connect it. RevFox creates a subscription and pulls messages from it.
  3. In Play Console, open Monetize with Play → Monetization setup, paste the topic name under real-time developer notifications, and send a test notification.

Track new purchases from store notifications

This switch on each app decides what happens when a store reports a purchase RevFox has never seen. Off, the default, it waits until your app or an import reports the purchase, so it is recorded under the right customer. On, it is recorded straight away under a placeholder customer that your app claims later. See placeholder customers.

04

Products, packages and benefits

Three layers turn store product IDs into something your app can reason about.

LayerWhat it isExample
Store itemA product as the store knows it, per app. Import them from the store or add them by ID.pro_monthly, pro:monthly
PackageA group of store items your paywall shows together. The SDK fetches a package by its identifier and gets each platform's products.default with monthly and yearly
BenefitWhat a store item unlocks. Your app checks benefits, never product IDs.pro
  1. Under Products → Store items, import or add the App Store and Play product IDs.
  2. Under Products → Benefits, create a benefit and attach the store items that grant it.
  3. Under Products → Packages, create a package and add the store items your paywall offers.

Play subscriptions are sold per base plan, so their store items are named productId:basePlanId. One-time products keep their plain ID.

A package can be changed at any time. The next time the app fetches it, it shows the new products, without an app update.

05

API keys

The API keys page has two kinds of keys.

KeyLooks likeUsed bySecret?
SDK API keyapps_… or play_…The SDK in your app. One per app.No. It ships inside the app.
Secret API keysk_…Your own backend, for the server API.Yes. Shown once, stored only as a hash.

The page also shows the API server URL to give the SDK, taken from api_url in the server's config.

06

Integrations

IntegrationWhat it does
WebhooksSends subscription events to your backend. See Webhooks.
AnalyticsSends the same events to Amplitude or Mixpanel, with revenue.
Apple Search AdsRecords the campaign, ad group and keyword that brought each iOS install. Needs the SDK's AdServices token collection.
App Store historyReads the notifications Apple kept for an app, to recover purchases made before RevFox. Runs only when you click Sync now.
MigrationImports customers and purchases from another platform. See Migration.
Data exportsDownloads transactions and customers as CSV.
07

Customers and charts

Customers lists everyone RevFox knows, filtered by active subscription, expired or never subscribed. A customer's page shows their benefits, purchases, attributes, aliases and full event history, with each webhook delivery. From there you can grant or revoke a promotional benefit, or delete the customer.

Charts covers revenue, MRR, active subscriptions, active customers, new customers, trial conversion, churn, refunds, lifetime value and a revenue prediction. Turn on the sandbox toggle to see test purchases; leave it off for production numbers.

Dashboard ready?

Add the SDK to your app.

iOS SDK