In-App Purchases

Implement in-app purchases and subscriptions across iOS, Android, and Flutter with RevenueCat, paywalls, receipt validation, and subscription analytics.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "In-App Purchases" with this command: npx skills add ivangdavila/in-app-purchases

When to Use

User needs to implement in-app purchases, subscriptions, paywalls, or monetization flows. Agent handles native APIs (StoreKit 2, Google Play Billing), cross-platform SDKs (RevenueCat, Adapty, Qonversion), paywall design, server verification, and subscription analytics.

Quick Reference

TopicFile
iOS StoreKit 2storekit.md
Android Billinggoogle-play.md
Flutter packagesflutter.md
RevenueCat SDKrevenuecat.md
Platform comparisonplatforms.md
Server verificationserver.md
Paywall designpaywalls.md
Subscription metricsanalytics.md
Testing & sandboxtesting.md

Core Rules

1. Choose Your Architecture

ApproachWhen to UseTradeoff
Native onlySingle platform, full controlMore code, no cross-platform sync
RevenueCat/AdaptyCross-platform, fast launch1-2% fee, dependency
HybridNative + own backendFull control, more work

2. Platform SDKs (Managed)

PlatformPricingBest For
RevenueCatFree <$2.5k MTR, then 1%Most apps, best docs
AdaptyFree <$10k MTR, then 0.6%Cost-conscious, A/B paywalls
QonversionFree <$10k MTR, then 3%Simple setup
SuperwallPaywall-focusedPaywall A/B only
GlassfyFree <$10k, then 0.5%Budget option

3. Product Types

TypeiOSAndroidUse Case
ConsumableCredits, coins, lives
Non-consumableUnlock feature forever
Auto-renewableSubscriptions
Non-renewingSeason pass, time-limited

4. Server Verification is Non-Negotiable

Never trust client-side validation alone:

  • iOS: App Store Server API with JWS verification
  • Android: Google Play Developer API
  • RevenueCat: Webhooks + REST API

5. Handle All Transaction States

StateAction
PurchasedVerify → grant → finish
PendingWait, show pending UI
FailedShow error, don't grant
DeferredWait for parental approval
RefundedRevoke immediately
Grace periodLimited access, prompt payment
Billing retryMaintain access during retry

6. Subscription Lifecycle Events

Must handle all of these (native or via webhooks):

  • INITIAL_PURCHASE → grant access
  • RENEWAL → extend access
  • CANCELLATION → mark will-expire
  • EXPIRATION → revoke access
  • BILLING_ISSUE → prompt to update payment
  • GRACE_PERIOD → limited access window
  • PRICE_INCREASE → consent required (iOS)
  • REFUND → revoke + flag user
  • UPGRADE/DOWNGRADE → prorate

7. Restore Purchases Always

Required by App Store guidelines:

  • Prominent restore button
  • Works for logged-out users
  • Handles family sharing (iOS)
  • Cross-device sync

8. Paywall Best Practices

See paywalls.md for detailed patterns:

  • Show value before price
  • Anchor pricing (3 options, highlight middle)
  • Free trial prominent
  • Social proof if available
  • A/B test everything

9. Testing Strategy

EnvironmentiOSAndroid
Dev/DebugStoreKit Config fileLicense testers
SandboxSandbox accountsInternal testing
ProductionReal accountsProduction

Sandbox subscription times:

  • 1 week → 3 minutes
  • 1 month → 5 minutes
  • 1 year → 1 hour

10. App Store Guidelines

  • No external payment links (anti-steering)
  • Must use IAP for digital goods
  • Physical goods/services can use Stripe
  • Reader apps have exceptions
  • 15-30% commission applies

Common Traps

  • Testing with real money → use sandbox/test accounts
  • Not finishing transactions → auto-refund (Android 3 days)
  • Hardcoding prices → always fetch from store (regional pricing)
  • Missing transaction observer → lose purchases made outside app
  • No server verification → trivially bypassable
  • Ignoring grace period → users churn when they could recover
  • Poor paywall UX → kills conversion regardless of price
  • Not tracking metrics → can't optimize what you don't measure
  • Forgetting restore button → App Store rejection
  • Not handling family sharing → confused users

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

test_skill

import json import tkinter as tk from tkinter import messagebox, simpledialog

Archived SourceRecently Updated
General

magister.net

Fetch schedule, grades, and infractions from https://magister.net 🇳🇱 portal

Registry SourceRecently Updated
1400ghuron
General

Official Doc

公文写作助手。通知、报告、请示、批复、会议纪要、工作总结、格式检查、语气检查、模板库。Official document writer for notices, reports, requests, meeting minutes with format check, tone check, template l...

Registry SourceRecently Updated
2392ckchzh
General

Douyin Creator

抖音内容创作与运营助手。抖音运营、抖音涨粉、短视频创作、抖音标题、抖音标签、抖音SEO、抖音账号运营、抖音数据分析、抖音选题、抖音脚本、抖音文案、抖音评论区运营、抖音人设定位、抖音发布时间、DOU+投放、抖音流量、短视频运营、视频创意、直播脚本、话题标签策略、合拍翻拍创意、抖音变现、带货星图、Douyin con...

Registry SourceRecently Updated