Use this page with AI

Copy this into your coding assistant and add your request.

Read https://openiap.dev/docs/types/ios/subscription-status-ios and https://openiap.dev/llms.txt. Follow the reading instructions, detailed reference, and linked guides relevant to my task before making changes.
Inspect my existing project and reuse its framework and conventions. Ask me for missing product decisions. Implement the requested behavior and run the applicable checks.
Show the working result, the commands and actual test results, and any remaining limitations. Keep your explanation brief.

My request: [describe what customers should be able to do]
See an example request →

SubscriptionStatusIOS

SubscriptionStatusIOS#

Subscription status from StoreKit 2. Use subscriptionStatusIOS(sku) to get detailed subscription state.

iOS only. A trimmed projection of Apple's Product.SubscriptionInfo.Status — the OpenIAP wrapper exposes renewalInfo and state only; transaction from the Apple type is not surfaced (Apple docs).

NameSummary
stateCurrent renewal state (see values below)
renewalInfoRenewal details. Contains: willAutoRenew, autoRenewPreference

Subscription State Values#

The state field indicates the current subscription status:

StateDescriptionUser Access
subscribedActive subscriptionGrant access
expiredSubscription has expiredDeny access
revokedRefunded by AppleDeny access
inGracePeriodBilling failed but grace period activeGrant access (temporary)
inBillingRetryPeriodBilling retry in progressConsider granting access

iOS Expiration Reasons#

When willAutoRenew is false, the expirationReason field in renewalInfo indicates why:

ReasonDescription
VOLUNTARYUser cancelled the subscription
BILLING_ERRORPayment failed (card declined, etc.)
DID_NOT_AGREE_TO_PRICE_INCREASEUser declined a price increase
PRODUCT_NOT_AVAILABLEProduct no longer available for purchase
UNKNOWNUnknown reason