Skip to main content

revnix_flutter 1.8.0 copy "revnix_flutter: ^1.8.0" to clipboard
revnix_flutter: ^1.8.0 copied to clipboard

Revnix subscriptions and entitlements for Flutter: offline-resilient entitlement checks, placements, and StoreKit 2 / Play Billing purchase registration.

Revnix

Subscriptions, Paywalls and Attribution
for Your Flutter App

pub version license platforms

Website • Docs • API Reference

Revnix: subscriptions, paywalls and attribution for mobile apps

Revnix SDK makes in-app subscriptions, paywalls and attribution for Flutter fast and easy. One plugin buys through StoreKit 2 and Google Play Billing, validates the receipt on the server and unlocks the entitlement. No separate IAP plugin.

Table of Contents #

Why Revnix? #

  • Purchases in one call. purchase() opens the App Store or Google Play sheet, validates the receipt on the server and grants the entitlement. No IAP plugin, no server code.
  • Entitlements that work offline. Entitlement checks are cached on device, so a user who paid stays unlocked without a network.
  • Remote paywalls. Design paywalls in the dashboard, pick from 250 templates and ship copy, prices and layout changes without an app release.
  • A/B tests and holdouts. Split a placement between variants, measure revenue per user with credible intervals and ship the winner from the dashboard.
  • Attribution and deep links. Install attribution, deferred deep links, Apple Search Ads, Google Ads and MMP forwarding, all from the same plugin.
  • Integrations. Send subscription events to analytics, attribution and messaging tools, or to your own server through signed webhooks.
  • Real-time analytics. Revenue, MRR, LTV, ROAS, cohorts and funnels for iOS and Android, filtered by store, product, channel and campaign.

Getting Started #

flutter pub add revnix_flutter

The native Swift and Kotlin SDKs ship inside the plugin and compile with your app. There is nothing else to add on iOS or Android.

Read the installation guide and configuration reference to set up the plugin.

Quick start #

import 'package:revnix_flutter/revnix_flutter.dart';

// 1. Configure once at app start
final revnix = await RevnixClient.configure(
  apiKey: 'rvx_pk_live_…',
  baseUrl: 'https://<your-deployment>.convex.site',
);
await revnix.retryPendingPurchases();
await revnix.registerInstall();

// 2. Buy: opens the store sheet, validates the receipt, grants the entitlement
final result = await revnix.purchase('pro.monthly');
if (result != null) await revnix.waitForEntitlements(result.seq);

// 3. Check access anywhere
if (await revnix.isEntitled('pro')) {
  // unlocked
}

Your API key and deployment URL are in the dashboard under Settings. See API keys.

Purchases and entitlements without server code #

Revnix handles the hard parts of subscriptions in a small, developer-friendly plugin.

  • purchase(productId) runs the whole flow: store sheet, server-side receipt validation, entitlement, transaction finish. restore() brings purchases back on a new device.
  • Renewals, refunds, upgrades and purchases on other devices are picked up from the stores and reflected in the entitlement on their own.
  • Entitlements and placements are cached on device, so paid users stay unlocked offline. isEntitled() never throws and fails closed.
  • Failed registrations are queued durably; retryPendingPurchases() drains the queue on the next launch.
  • Typed errors: purchase_blocked, product_not_found, store_error and more, each a RevnixException with isRetryable. See Make purchases.
  • Already using in_app_purchase? Keep it and call registerPurchase() instead.

Paywalls that update without app releases #

Revnix paywall builder: element tree, background library and a live iPhone preview

With the Revnix paywall builder you design the paywall in the dashboard and render it in your app.

  • Pure Flutter renderer: RevnixPaywall draws the published design with Flutter's own widgets, kept in lockstep with the dashboard preview. No WebView, no extra dependency.
  • 250 templates: pick a layout, theme and accent, then edit copy, packages and badges.
  • Update without redeploying: change prices, copy or layout any time; the next resolvePlacement() picks it up.
  • Implicit placements: app_launch, session_start, paywall_decline and three more fire without a resolve call.
  • Localized: 43 languages for the built-in strings, plus per-locale copy of your own. RevnixClient.setLocale() overrides the device language.

Learn more in Show paywalls and Placements.

A/B tests with a built-in holdout #

Revnix A/B test results with a winner and credible intervals

  • Split a placement's traffic between offering and paywall variants. Conversions, trials, revenue per user and MRR are calculated per variant.
  • Add a holdout variant that shows no paywall at all, to measure what the paywall is really worth.
  • Bayesian results with 95% credible intervals and a sample-size planner, so you know when to stop.
  • Target a test at an audience with setAttributes(). Ship the winner from the dashboard; the plugin needs no change.

Learn more in A/B tests.

Revnix MRR by country, last 90 days

  • Install attribution from Revnix links, with per-link click lookback windows. getAttribution() and onAttribution expose the verdict. See Attribution.
  • Deferred deep links resolve on first launch through onDeferredDeepLink, so a user who installs from a campaign lands on the right screen. See Deferred deep links.
  • Apple Search Ads and Google Ads attribution, with App Tracking Transparency via requestTrackingAuthorization(). See Apple Search Ads and Google Ads.
  • MMP forwarding to AppsFlyer and Adjust with setAttribution(), ad revenue logging with logAdRevenue() and uninstall measurement with setPushToken(). See MMP attribution, Ad revenue and Uninstall measurement.
  • SKAdNetwork conversion values with updateSkanConversionValue(). See SKAdNetwork.
  • Fraud prevention: anonymous-IP and click-injection checks keep paid channels honest. See Fraud prevention.

Real-time analytics for your Flutter app #

Revnix overview: active subscriptions, revenue and MRR over 90 days

  • Revenue, MRR, ARR, ARPU, LTV and ROAS, updated from the ledger as purchases arrive.
  • Cohorts, retention, funnels and predicted LTV. See Analytics.
  • Filter and group by store, product, country, channel, campaign and A/B test variant.
  • Custom events with track(). Saved reports, alerts and a REST API for your own dashboards. See Reports and REST API.

Requirements #

Requirement Minimum
Flutter 3.32 (Dart 3.8)
iOS 16.0
Android API 24 (Android 7.0)
JDK (Android build) 17

The plugin is mobile only. Web, desktop and stores other than the App Store and Google Play are not supported.

Documentation #

Revnix also ships SDKs for React Native, iOS, Android, Capacitor and Unity.

Migrating from another SDK #

Moving from Adapty or RevenueCat? Revnix imports your customers and purchase history, and the SDK calls map one to one.

Support #

  • Email support@revnix.io with questions, bugs or feature requests.
  • Check the status page for incidents.
  • Want to work on the plugin itself? Clone with git clone --recurse-submodules: the native SDKs live in ios/revnix_flutter/Revnix and android/revnix-kotlin and are never edited from here.

License #

Revnix SDK is available under the MIT license. See LICENSE for details.

0
likes
0
points
573
downloads

Publisher

verified publisherrevnix.io

Weekly Downloads

Revnix subscriptions and entitlements for Flutter: offline-resilient entitlement checks, placements, and StoreKit 2 / Play Billing purchase registration.

Homepage
Repository (GitHub)
View/report issues

Topics

#subscriptions #in-app-purchase #paywall #storekit #billing

License

unknown (license)

Dependencies

flutter

More

Packages that depend on revnix_flutter

Packages that implement revnix_flutter