revenuecat-purchase-flow

Implement RevenueCat purchase and restore flows across mobile platforms.

58|5|Updated Feb 2, 2026
One-click install
npx skills add https://github.com/RevenueCat/ai-toolkit --skill revenuecat-purchase-flow
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: revenuecat-purchase-flow
Source: https://github.com/RevenueCat/ai-toolkit/tree/main/revenuecat/skills/revenuecat-purchase-flow
Command: npx skills add https://github.com/RevenueCat/ai-toolkit --skill revenuecat-purchase-flow

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

The revenuecat-purchase-flow skill solves the complexity of completing RevenueCat purchases and restoring entitlements across mobile platforms without breaking access-gating or error handling.

Core Features & Use Cases

  • Cross-platform purchase flow: Fetch the current offering’s packages, purchase the selected package, and confirm entitlement via returned customer info/listeners.
  • Correct cancellation handling: Treat user cancellation as a non-error path on iOS, Android, Kotlin Multiplatform, Flutter, and React Native (no alert; no stuck loading state).
  • Restore as a user action: Provide a restore path via restorePurchases() that syncs receipts and updates UI through entitlement gating, not inside the purchase callback.
  • Guardrails for purchase UX: Recommend disabling buy buttons during in-flight purchases to avoid double-charging.
  • Platform-specific implementation guidance: Uses platform files to implement offerings fetch, purchase, restore, and UI wiring patterns for each supported stack.

Quick Start

Use this skill to implement the RevenueCat purchase and restore logic for your iOS, Android, Kotlin Multiplatform, Flutter, or React Native app by selecting the correct platform file after detecting your project from the working directory.

Frequently Asked Questions about revenuecat-purchase-flow

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I implement a cross-platform RevenueCat purchase flow for in-app subscriptions?

To implement a cross-platform RevenueCat purchase flow, fetch the current offering's packages, initiate the package purchase, and verify entitlements via customer info updates or listeners on iOS, Android, Flutter, or React Native.

Why does a user cancellation show as a purchase error in my React Native paywall?

User cancellation during a purchase should be treated as a non-error path, not a real failure. Correct cancellation handling avoids showing alerts or stuck loading states on iOS, Android, Flutter, and React Native by distinguishing cancellation from actual errors.

How do I restore previous subscription entitlements without unlocking content in the purchase callback?

To restore previous entitlements, provide a restore path using restorePurchases() that syncs receipts and updates UI through entitlement gating, rather than unlocking content directly inside the purchase callback.

Does this RevenueCat purchase flow support Kotlin Multiplatform, Flutter, and React Native?

Yes, the RevenueCat purchase flow supports Kotlin Multiplatform, Flutter, and React Native, using platform-specific files to implement offerings fetch, purchase, restore, and UI wiring patterns for each supported stack.

What is the best way to prevent double-charging when users tap the subscribe button multiple times?

The best way to prevent double-charging during in-app purchases is to disable buy buttons during in-flight transactions, ensuring multiple taps do not trigger duplicate subscription purchases.

How do I verify subscription access after a successful in-app purchase on iOS and Android?

To verify subscription access after a successful in-app purchase, avoid unlocking content in the purchase callback and instead confirm entitlements through returned customer info updates and listeners on iOS and Android.