# Send In-App Purchases to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "in-app-purchases",
    "name": "In-App Purchases",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/ivangdavila/in-app-purchases",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/in-app-purchases",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/in-app-purchases",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=in-app-purchases",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md",
      "analytics.md",
      "flutter.md",
      "google-play.md",
      "paywalls.md",
      "platforms.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/in-app-purchases"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/in-app-purchases",
    "downloadUrl": "https://openagent3.xyz/downloads/in-app-purchases",
    "agentUrl": "https://openagent3.xyz/skills/in-app-purchases/agent",
    "manifestUrl": "https://openagent3.xyz/skills/in-app-purchases/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/in-app-purchases/agent.md"
  }
}
```
## Documentation

### 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

TopicFileiOS StoreKit 2storekit.mdAndroid Billinggoogle-play.mdFlutter packagesflutter.mdRevenueCat SDKrevenuecat.mdPlatform comparisonplatforms.mdServer verificationserver.mdPaywall designpaywalls.mdSubscription metricsanalytics.mdTesting & sandboxtesting.md

### 1. Choose Your Architecture

ApproachWhen to UseTradeoffNative onlySingle platform, full controlMore code, no cross-platform syncRevenueCat/AdaptyCross-platform, fast launch1-2% fee, dependencyHybridNative + own backendFull control, more work

### 2. Platform SDKs (Managed)

PlatformPricingBest ForRevenueCatFree <$2.5k MTR, then 1%Most apps, best docsAdaptyFree <$10k MTR, then 0.6%Cost-conscious, A/B paywallsQonversionFree <$10k MTR, then 3%Simple setupSuperwallPaywall-focusedPaywall A/B onlyGlassfyFree <$10k, then 0.5%Budget option

### 3. Product Types

TypeiOSAndroidUse CaseConsumable✅✅Credits, coins, livesNon-consumable✅✅Unlock feature foreverAuto-renewable✅✅SubscriptionsNon-renewing✅❌Season 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

StateActionPurchasedVerify → grant → finishPendingWait, show pending UIFailedShow error, don't grantDeferredWait for parental approvalRefundedRevoke immediatelyGrace periodLimited access, prompt paymentBilling 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

EnvironmentiOSAndroidDev/DebugStoreKit Config fileLicense testersSandboxSandbox accountsInternal testingProductionReal 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
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: ivangdavila
- Version: 1.0.0
## Source health
- Status: healthy
- Source download looks usable.
- Yavira can redirect you to the upstream package for this source.
- Health scope: source
- Reason: direct_download_ok
- Checked at: 2026-04-30T16:55:25.780Z
- Expires at: 2026-05-07T16:55:25.780Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/in-app-purchases)
- [Send to Agent page](https://openagent3.xyz/skills/in-app-purchases/agent)
- [JSON manifest](https://openagent3.xyz/skills/in-app-purchases/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/in-app-purchases/agent.md)
- [Download page](https://openagent3.xyz/downloads/in-app-purchases)