ProductSubscription

ProductSubscription#

Represents a subscription product available for purchase. Extends the base Product type with subscription-specific fields like pricing phases, introductory offers, and billing periods.

Cross-platform subscription product shape. iOS: derived from Product with subscription populated (Apple docs). Android: derived from ProductDetails with subscriptionOfferDetails (Google docs).

Common Fields#

Inherits every field from Product common fields (id, title, description, displayName, displayPrice, currency, price, debugDescription), plus the subscription-only override and standardized subscription offer array below.

NameTypeSummary
type"subs"Always "subs" for subscription products (overrides the parent type discriminator).
subscriptionOffersSubscriptionOffer[]Cross-platform offer list. Populated from StoreKit 2 promotional offers on iOS and from Play Billing offer details on Android.

Platform-Specific Fields#

ProductSubscriptionIOS#

Additional fields available on iOS subscriptions:

NameSummary
introductoryPriceIOSFormatted introductory price (e.g., "$0.99")
introductoryPriceAsAmountIOSNumeric introductory price value
introductoryPricePaymentModeIOSPayment mode for intro offer (FreeTrial, PayAsYouGo, PayUpFront)
introductoryPriceNumberOfPeriodsIOSNumber of periods for intro pricing
introductoryPriceSubscriptionPeriodIOSPeriod unit for intro pricing (Day, Week, Month, Year)
subscriptionPeriodNumberIOSNumber of units in a subscription period
subscriptionPeriodUnitIOSPeriod unit (Day, Week, Month, Year)
subscriptionGroupIdIOSApp Store subscription group identifier used by isEligibleForIntroOfferIOS
pricingTermsIOSStoreKit 26.4 billing plan choices for this subscription. Each term includes billing price, billing period, monthly or up-front plan type, commitment info, and plan-specific subscription offers. See SubscriptionPricingTermsIOS.
typeIOSDetailed product type — for subscriptions this is almost always auto-renewable-subscription (or non-renewing-subscription).
displayNameIOSiOS-specific display name
isFamilyShareableIOSWhether the subscription supports Family Sharing
jsonRepresentationIOSRaw StoreKit 2 JWS payload