---
title: billingIssue
framework: storekit
role: symbol
role_heading: Type Property
path: storekit/message/reason-swift.struct/billingissue
---

# billingIssue

A message the App Store sends that informs people of a billing problem and enables them to update billing information.

## Declaration

```swift
static let billingIssue: Message.Reason
```

## Mentioned in

Testing failing subscription renewals and In-App Purchases

## Discussion

Discussion If an auto-renewable subscription fails to renew due to a billing issue, the subscription enters a billing retry state, and the App Store sends a message with the billingIssue reason. When a billing issue is in effect, StoreKit displays a Billing Problem message sheet when your app launches, or when your app asks to display it.

The sheet informs people of the billing issue, and displays an in-app sheet to enable them to correct the issue without leaving your app. Note that people can also resolve billing issues outside of your app by navigating to the manage payments section in Apple Account settings. For more information, see support.apple.com. Apple attempts to renew the subscription during the billing retry period, up to 60 days. During this period, the App Store sends the billingIssue message in the following intervals:  |   |   |   |   |  The App Store stops sending further messages when the user resolves the billing issue, cancels the subscription, or when the billing retry period ends. StoreKit ensures that the sheet appears only if the message is applicable when your app calls display(in:) or DisplayMessageAction. For more information about the billing retry state, see isInBillingRetry in  Product.SubscriptionInfo.RenewalInfo. Test the message in the sandbox environment You can simulate billing issues in the sandbox environment to test how the system presents the billingIssue message in your app, and how your app handles it if you choose to delay or suppress its presentation. For more information, including step-by-step test cases, see Testing failing subscription renewals and In-App Purchases.

## See Also

### Getting the message reasons

- [generic](storekit/message/reason-swift.struct/generic.md)
- [priceIncreaseConsent](storekit/message/reason-swift.struct/priceincreaseconsent.md)
- [winBackOffer](storekit/message/reason-swift.struct/winbackoffer.md)
