<!--
{
  "availability" : [
    "iOS: 18.0.0 -",
    "iPadOS: 18.0.0 -",
    "macOS: 15.0.0 -",
    "tvOS: 18.0.0 -",
    "visionOS: 2.0.0 -",
    "watchOS: 11.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "StoreKit",
  "identifier" : "/documentation/StoreKit/SubscriptionStoreControlStyleConfiguration/autoRenewPreference",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "StoreKit",
      "SwiftUI"
    ],
    "preciseIdentifier" : "s:17_StoreKit_SwiftUI012SubscriptionA25ControlStyleConfigurationV19autoRenewPreference0aB07ProductVSgvp"
  },
  "title" : "autoRenewPreference"
}
-->

# autoRenewPreference

The auto-renewable subscripton product that renews at the next billing cycle.

```
var autoRenewPreference: Product? { get }
```

## Discussion

Use the [`autoRenewPreference`](/documentation/StoreKit/SubscriptionStoreControlStyleConfiguration/autoRenewPreference) property to identify the subscription that renews in the next billing cycle, if there is one. The property is `nil` if the customer doesn’t have an auto-renewable subscription that renews in the next billing period. This indicates that the customer turned off the auto-renew preference, or that they don’t have a current subscription.

Display the subscription in the auto-renew preference only if it appears in the [`options`](/documentation/StoreKit/SubscriptionStoreControlStyleConfiguration/options) or [`sections`](/documentation/StoreKit/SubscriptionStoreControlStyleConfiguration/sections) arrays. However, disable its [`subscribe()`](/documentation/StoreKit/SubscriptionStoreControlStyleConfiguration/Option/subscribe()) control so the customer doesn’t try to subscribe to it again, to prevent a system dialog that explains that the customer is already subscribed. The following code example shows how to check for the auto-renew preference and disable the subscribe functionality:

```swift
ForEach(configuration.options) { option in 
    Button(option.displayName, action: option.subscribe)
        .disabled(option.id == configuration.autoRenewPreference?.id)
}
```

> Important:
> Don’t use the ``doc://com.apple.storekit/documentation/StoreKit/SubscriptionStoreControlStyleConfiguration/autoRenewPreference`` property to determine whether to grant access to a service. Always check the full transaction information before granting access to a paid service.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)