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)
renewalInfoVerified RenewalInfoIOS for this product, including jsonRepresentation; null when StoreKit cannot verify it

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
unknownA state this SDK version does not recognizeCheck entitlement on your server

iOS Expiration Reasons#

After a subscription expires, expirationReason in renewalInfo holds StoreKit's raw reason value as a string. Keep values you do not recognize.

ValueReason
"1"The user turned off auto-renew
"2"Billing error (card declined, etc.)
"3"The user did not agree to a price increase
"4"The product was no longer available
"5"Unknown reason