I built a TestFlight version of my unpublished app. While using it, I wanted to test out the subscription purchase and when I did, I used my real production Apple ID and not a Sandbox test account to purchase the subscription. I was surprised to see that it worked and I was able to use the test subscription in the app. However, I now have no way of canceling it. It has renewed every day at the same time due to the accelerated TestFlight subscription rate (it's a monthly sub). I read that it should stop auto-renewing after the 6th time, but I believe it's been over a week now and it still hasn't cancelled.
I understand that it's not a real purchase, but I would still like to cancel it so I can try it without the purchase again using this account and also use it with a different Sandbox account.
Can someone help me with canceling it? Since the account I used was not a Sandbox account, I can't just clear the purchase history in App Store Connect. Also, I can't go into my personal account settings to remove the subscription since it's not a production one.
Subscriptions
RSS for tagGive users access to content, services, or premium features in your app on an ongoing basis with subscriptions, a type of in-app purchase.
Posts under Subscriptions tag
200 Posts
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Regarding the offer codes in https://developer.apple.com/help/app-store-connect/manage-subscriptions/set-up-offer-codes, I set up some incorrect offer codes by mistake.
Currently, I can only deactivate it but I can't delete it. Is it possible to let me delete the incorrect offer codes due to the below reasons? Thank you.
I can't recreate the offer code due to error message This reference name is or has been used by another offer in this subscription group.
When I use the offer code redemption view in https://developer.apple.com/documentation/SwiftUI/View/offerCodeRedemption(isPresented:onCompletion:), it shows all the deactivated offer codes. I don't want them to be displayed in the page.
Context:
Back on March 4th, we scheduled a price increase for April 16th on one of our monthly subscription plans with several hundred active subscribers, to change the price from $18.99/mo to $19.99/mo and it has sat unedited in App Store Connect since.
Expected:
Based on this documentation (Increase the price of an auto-renewable subscription), I would expect that 27 days prior to the price increase (which would be 4 days ago, on March 20th), that users would start receiving notifications about the price increase in the form of emails to their Apple IDs and push notifications when they open up the app. We also have App Store Server Notifications V2 set up. Therefore, I expected to start receiving PRICE_INCREASE notifications as users either got emails and/or push notifications.
Actual:
We have yet to see any PRICE_INCREASE events come through. Additionally, we have one employee subscribed to this plan on production with a subscription that would renew on April 17th, which would mean that the 21st (3 days ago) was 27 days prior to his subscription renewing. He has checked his email and the app and has still not been notified in any way about the price increase and his subscription manager shows he will renew April 17th at the same price.
Questions:
Is there some other step that needs to happen for the price increase to take place?
Are my expectations wrong about what we should see by this point, or else why might we not have had any indication of customer notifications of the price increase occuring yet?
I coded my mobile app using Cursor and have recently been building and submitting for TestFlight using XCode version 16.1. I am testing using my Iphone via the downloaded build from TestFlight. My onboarding flow goes smoothly, but when I reach the checkout page I receive an error that says "Error Loading Products". When I select "OK" and then try to click one of my available products I receive another error that says "Products Not Available". I am signed out of my main Apple ID and signed into a Sandbox user that is valid. I have all of my application agreements signed and valid. I believe everything is configured properly, but I have been receiving purchase errors for the past week with no progress.
I had one semi-successful attempt where the Apple payment screen appeared, but have not had that since. Even on that attempt, there was a payment failure afterwards as well.
Any help would be greatly appreciated. I would like to get a build submitted for app store review as soon as possible.
I've attached screenshots to this ticket showing the error messages in more detail.
One of our apps has 85% stuck in Billing Retry -- We are so confused. All the users are from the US, and have a one-week free trial.
We had 1,000 subscriptions expire from this issue.
So any help would be so appreciated.
Topic:
App & System Services
SubTopic:
StoreKit
Tags:
Subscriptions
StoreKit
App Store Connect
App Store Server API
Hello everyone,
For example, our app currently has one subscription group in App Store Connect with 5 plans (2 annual, 2 monthly, and 1 quarterly). By default, users can go into Apple Subscriptions in Settings and freely switch between all of these plans.
However, our business requirement is to only allow users to stay on one annual plan and one quarterly plan. We don’t want them to switch to the other plans.
My questions are:
Is there any best practice or recommended approach to restrict subscription switching within the same group?
Would removing the unwanted products from sale be the correct approach, or are there any risks/downsides with this method?
Has anyone faced a similar situation and found a practical solution?
Any guidance or shared experience would be greatly appreciated.
Thanks!
Topic:
App & System Services
SubTopic:
StoreKit
Tags:
Subscriptions
App Store Connect
In-App Purchase
Description of the Issue
We are encountering issues with App Store Server Notifications, where the notification type received does not align with our expectations for subscription changes. Specifically, we receive DID_RENEW notifications in scenarios involving downgrades or intra-tier upgrades, which disrupts our backend subscription management logic and may lead to incorrect user subscription states and billing errors. Below are two reproducible scenarios with associated transaction data.
Scenario 1: Downgrade from Premium Yearly (with 7-Day Trial) to Standard Yearly
Steps to Reproduce:
A user purchases the Premium Yearly subscription with a 7-day free trial (initial transaction ID: 700002116066502).
On the day before the trial ends, the user downgrades to the Standard Yearly subscription via the App Store’s subscription management interface.
Expected Behavior:
We expect to receive a DID_CHANGE_RENEWAL_STATUS or a similar downgrade notification (e.g., DID_CHANGE_RENEWAL_PREF) to indicate the subscription plan has been downgraded, enabling immediate updates to the user’s subscription status.
Actual Behavior:
Upon downgrade, our server receives a DID_RENEW notification instead of a downgrade-specific notification. This causes our system to incorrectly interpret the action as a renewal of the Premium subscription rather than a downgrade to Standard, with no subsequent downgrade confirmation received.
Relevant Transaction Data:
New Transaction ID: 700002122810952
Notification Type: DID_RENEW
Notification UUID: 26de9b0e-5d61-4893-b679-0bd18ae3d208
Original Transaction ID (Trial): 700002116066502
Scenario 2: Intra-Tier Upgrade from Standard Monthly to Standard Yearly
Steps to Reproduce:
A user purchases the Standard Monthly subscription.
On the day before the monthly subscription expires, the user switches to the Standard Yearly subscription via the App Store’s subscription management interface.
Expected Behavior:
The original Monthly subscription expires normally, with a DID_EXPIRE notification received.
Upon expiration, we expect a DID_RENEW or SUBSCRIBED notification for the new Yearly subscription to confirm its activation, allowing seamless transition of the user’s subscription plan.
Actual Behavior:
Immediately after the upgrade, our server receives a DID_RENEW notification for the new Yearly plan.
No further notifications are received, including no DID_EXPIRE for the original Monthly subscription. This leaves our system unable to confirm the expiration of the Monthly plan, potentially resulting in duplicate active subscriptions in our records.
Relevant Transaction Data:
Transaction ID: 70002902074491
Notification Type: DID_RENEW
Notification UUID: 3d35bc2f-e769-4549-bf50-d84d41b10342
Impact
These notification discrepancies disrupt our subscription lifecycle management, potentially causing incorrect user entitlements, over-billing, and a degraded user experience.
Requested Assistance
Please confirm the correct notification types for these scenarios as per Apple’s documentation (e.g., App Store Server Notifications V2).
Provide guidance on handling these edge cases, including any recent changes to notification logic.
If this is a backend issue, please investigate the provided transaction IDs and Notification UUIDs.
Thank you for your prompt assistance. We look forward to your response to help resolve this issue for our users.
问题描述:
我们在处理 App Store 订阅变更通知时发现,服务器接收到的通知类型与预期不符,具体表现为降级或同级升级场景下错误接收到 DID_RENEW 通知。这影响了我们后端订阅管理的逻辑,可能导致用户订阅状态和计费出现偏差。以下是两个可重现的场景及相关交易数据。
场景 1:高级年费(含 7 天试用)降级至标准年费
重现步骤:
用户购买高级年费订阅并开启 7 天免费试用(初始交易 ID:700002116066502)。
在试用期结束前一天,用户通过 App Store 的订阅管理界面降级至标准年费订阅。
预期行为:
我们预期会收到 DID_CHANGE_RENEWAL_STATUS 或类似的降级通知(如 DID_CHANGE_RENEWAL_PREF),以表明订阅计划已降级,从而允许我们立即更新用户订阅状态。
实际行为:
降级后,服务器立即收到 DID_RENEW 通知,而非降级相关通知。这导致系统误认为高级订阅仍在续订,而非降级为标准订阅,且后续未收到任何降级确认通知。
相关交易数据:
新交易 ID:700002122810952
通知类型:DID_RENEW
通知 UUID:26de9b0e-5d61-4893-b679-0bd18ae3d208
原始交易 ID(试用):700002116066502
场景 2:标准月费订阅升级为标准年费订阅
重现步骤:
用户购买标准月费订阅。
在月费订阅到期前一天,用户通过 App Store 的订阅管理界面切换至标准年费订阅。
预期行为:
原月费订阅正常到期,预期收到 DID_EXPIRE 通知。
月费到期后,预期收到新年费订阅的 DID_RENEW 或 SUBSCRIBED 通知,以确认年费订阅开始,方便我们无缝切换用户订阅计划。
实际行为:
升级后,服务器立即收到新年费订阅的 DID_RENEW 通知。
后续未收到任何通知,包括原月费订阅的 DID_EXPIRE 通知。这导致我们无法确认月费订阅的到期状态,可能在记录中出现重复的活跃订阅。
相关交易数据:
交易 ID:70002902074491
通知类型:DID_RENEW
通知 UUID:3d35bc2f-e769-4549-bf50-d84d41b10342
影响:
这些通知异常干扰了我们的订阅生命周期管理,可能导致用户权益错误、潜在的重复计费以及用户体验下降。
请求协助:
请确认根据 Apple 文档(例如 App Store Server Notifications V2)在上述场景中应返回的正确通知类型。
请提供处理此类边缘场景的指导,包括通知逻辑的任何最新变更。
如果这是后端问题,请调查提供的交易 ID 和通知 UUID。
感谢您的及时协助,期待您的回复以帮助我们为用户解决问题。
Hello,
We’re experiencing a blocking production issue with our new in-app subscriptions and would appreciate guidance.
Our latest app version was approved and is live on the App Store, but the new subscriptions we submitted with it are still stuck in “Waiting for Review”. They’ve been in this state for about two months, and purchases in production fail with an error.
I already sent an email, but I haven’t received any response.
Yesterday,I uploaded a new version of our app and was approved. I had hoped that submitting another version might resolve the issue, but unfortunately the subscriptions are still not active.
This is extremely frustrating since users cannot purchase or upgrade. Has anyone experienced this before? What should we do next to get these subscriptions approved?
Thanks in advance.
Topic:
App Store Distribution & Marketing
SubTopic:
App Review
Tags:
Subscriptions
App Review
App Store Connect
In-App Purchase
We are seeing an issue with a potential duplicate charge issue regarding our app.
We have received two transactions with the same originalTransactionId but different transactionIds:
Order A:
TransactionId: [Redacted_TID_1]
OriginalTransactionId: [Redacted_OID_A]
ProductId: weekly_subscription
PurchaseDate: [Redacted_Timestamp_1]
SignedDate: [Redacted_Timestamp_2]
Price: [Redacted_Price] CAD
Order B:
TransactionId: [Redacted_TID_2]
OriginalTransactionId: [Redacted_OID_A]
ProductId: weekly_subscription
PurchaseDate: [Redacted_Timestamp_1]
SignedDate: [Redacted_Timestamp_3]
Price: [Redacted_Price] CAD
Both transactions share the same originalTransactionId, productId, and expiresDate, but the transactionIds are different.
We wanna confirm:
Were customers charged once or twice for this subscription renewal?
If only one charge was made, how should we programmatically determine the “valid” transaction among multiple records with the same originalTransactionId to avoid confusion in our server-side receipt validation?
We appreciate any clarification so we can handle this correctly in our backend.
Hello,
I'm receiving error StoreKit: Failed to get response from platform.
I have user in SandBox, that user is logged on physical device,
I have correct bundleID.
Product is Approved
I tested via StoreKit configuration file and that worked just fine.
also tried to build app and push to test flight, this way same error.
Any recommendations what I can check ?
Thanks
Hello, I have 2 subscription group. Each group have different plans and promotional offer. I was set 1 month free promotional offer in all plans. While I subscribe any plan IAP sheet is not showing 1 month free promotional offer. I already used with new sandbox account. How can I get promotional offer in IAP sheet?
Hello,
I'm trying to understand what happens when a subscribed customer of a subscription A purchases a promotional offer for the same subscription A.
Let's say the product is a yearly subscription priced at $100. When the month 7 starts (6 months remaining in the regular subscription period), I send the user a promotional offer for the same product but priced at $25 for the first year (100$ afterwards) and he accepts the offer.
Is the promotional offer started only at the end of the current year (after the 6 remaining months) or is it started immediately and he gets a pro-rata refund for the 6 remaining months?
Thanks.
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
Subscriptions
App Store
App Store Connect
We are experiencing a critical issue where StoreKit 2 is returning empty products when using Product.products(for:), specifically on devices running iOS 18.4.
This issue does not occur on iOS 18.3 or earlier.
Steps:
Created a subscription product (e.g. "upm1") in App Store Connect
Confirmed the product is active, localised, and part of a valid subscription group
Call the following Swift code using StoreKit 2:
Task {
do {
let products = try await Product.products(for: ["upm1"])
print(products)
} catch {
print("Error: (error)")
}
}
4. Result: products is an empty list.
This regression is blocking subscription testing on iOS 18.4.
Kindly someone please advise on a potential fix or workaround.
Hello,
We are working on integrating billing into our dating app, targeted at the Russian market. Our main requirement is to support subscriptions with automatic renewal and cancellation.
We understand that, according to App Store Review Guideline, all digital subscriptions should use Apple In-App Purchase (IAP). However, we are unsure how this applies in Russia, where some local regulations may limit the use of non-Russian payment processors, and where not all Russian bank cards are accepted by Apple.
Our question is:
-For iOS apps in Russia, is it strictly required to use Apple IAP for subscriptions?
-Are there any approved exceptions allowing integration with local processors such as Robokassa or YooKassa?
-How are other developers currently handling subscriptions for the Russian market?
We want to ensure full compliance and avoid any risk of rejection or removal.
Thank you in advance for any clarification.
Best regards,
Dan
We are developing an app which has an In App Purchase for subscription, we have the application in tesflight, and the subscription is done through apple developers account in the app store, now we are trying to cancel the subscription, we just keep getting an error message in app store stating "your request is temporarily unable to be processed".
we need to cancel this subscription for us to test our application properly.
any help on this would be appreciated.
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
Subscriptions
In-App Purchase
Hello,
Our auto-renewable subscription products are currently showing as “In Review” in App Store Connect. However, they are not visible in the “In-App Purchases” section of the app version submission, so we cannot confirm or re-attach them to this app version. At the same time, we cannot delete or edit these products while they are in this state.
This has left us in a situation where:
The IAPs are stuck in “In Review” status,
We cannot re-submit or re-attach them,
And your review team cannot complete testing because the subscriptions are not yet approved.
According to Apple’s own documentation, IAPs that are released with an app version only move from In Review to Approved when the app itself is approved. This means they must be reviewed together.
Could you please:
Confirm that our IAPs are correctly attached to this app version and will be reviewed together, or
Reset their status back to “Ready to Submit” so that we can re-attach them properly to this app version?
We want to make sure we are not stuck in a loop where the IAPs cannot be approved until the app is approved, but the app cannot be approved because the IAPs are stuck.
Thank you for your help in resolving this situation.
Best regards,
I'm trying to create an offer code for one of my app's subscriptions, and the button just isn't there.
https://developer.apple.com/help/app-store-connect/manage-subscriptions/set-up-offer-codes
Wondering if this is because the app was just launched today, or if there's something I'm missing.
Hello,
Our app gets rejected for the reason that the reviewer cannot purchase the subscription with the message,
"Guideline 2.1 - Performance - App Completeness
We found that your in-app purchase products exhibited one or more bugs which create a poor user experience.
Specifically, we were unable to purchase Auto-Renewable Subscriptions. The app launched back to the rendering when we tap on the "Get started""
When we test this with our sandbox accounts in test flight version, we can see the subscribe pop up showing and purchase successfully. But turns out they cannot. Unfortunately we cannot see the reason why and even after requesting further explanation regarding how to move along, we are not getting any explanations.
Our subscription products are submitted in the first time with the app and they are in "In review" state for more than a week.
We requested phone calls and wrote messages to reviewers many times but unfortunately there's no help yet.
login sandbox account at setting > app store > sandbox account.
download my app from testflight
purchase subscription is fine.
stop renew subscription.
after subscription expired, delete app, then download from testflight again.
tried to restore purchase, the result count always zero
We’ve been approved for the Advanced Commerce API and are setting up the generic product identifiers per the guide:
https://developer.apple.com/documentation/advancedcommerceapi/setting-up-your-project-for-advanced-commerce#Set-up-generic-product-identifiers
We have multiple auto-renewable subscriptions (for simplicity: Product 1, Product 2, etc.). We created a new subscription group for Advanced Commerce and are about to add the subscription(s) inside that group.
Should we create one auto-renewable subscription (generic, e.g. subscription.ac) to represent all of our subscriptions, or one generic per product family (e.g., product1.ac, product2.ac, …)? If the answer depends on whether subscribers can hold multiple products simultaneously, please advise which structure supports that (e.g., separate groups).
Reporting identifiers / segmentation: In Sales and Trends and Payments & Financial Reports, which identifier(s) will appear after migration: the legacy StoreKit product_id, the new generic product id, and/or the SKU? If we use a single generic subscription for all products, what’s Apple’s recommended way to segment revenue by product (Product 1 vs. Product 2)? If SKUs don’t surface in these reports, should we prefer multiple generics/groups to preserve report-level segmentation?
Topic:
App & System Services
SubTopic:
StoreKit
Tags:
Subscriptions
In-App Purchase
Advanced Commerce API