IAP product type
The store category that decides whether a purchase is spent, owned forever, or renewed over time.
See it
What it is
An IAP product type tells the store what kind of thing is being sold. A consumable can be bought repeatedly, like a coin pack. A non-consumable is a durable one-time unlock. A subscription grants access for a period and may renew automatically. Apple also has non-renewing subscriptions; Google Play models one-time products and subscriptions with its own catalog structure.
Let the entitlement choose the type. If value is spent, use a consumable and record the balance on your server. If access should survive reinstall, use a non-consumable or subscription and implement restore. Recurring service belongs in a subscription with explicit renewal, grace-period, and cancellation behavior.
Gotcha: acknowledgement and consumption are different operations on Google Play. Acknowledge confirms that you granted the purchase; consume makes a one-time product buyable again. Consuming a lifetime unlock by mistake can let the same account pay twice, while treating coin packs as durable purchases prevents legitimate repeat buys.
Ask AI for it
Design the in-app product catalog for these paid features: [paste]. Use StoreKit 2 Product and Google Play Billing ProductDetails. Return one row per product with stable product ID, platform product type, price intent, entitlement duration, repeat-purchase rule, restore behavior, server ledger action, and refund or expiry behavior. For subscriptions, include the Apple subscription group and Google Play base plan and offer mapping. For Android one-time products, state separately when to call acknowledgePurchase and consumeAsync. Flag any feature whose requested type conflicts with its entitlement, and do not invent prices or store identifiers.