Unsure if this has been reported before, but I'm seeing a specific scenario where Apple is sending back faulty information in App Store Server Notifications.
When users have payment failures that result in the membership expiring, and then reactivate later on with a different subscription, they are given a new originalTransactionId, yet we have three cases where we receive messages about the old originalTransactionId, indicating that after the user recovers their subscription, Apple is resurrecting the old subscription and treating it as if it is active BUT ultimately decides to deactivate it.
Here is a sample screenshot of an impacted user. We only have three month and annual plans.
Timeline:
March 21st:
This user signed up for a 3 Month Plan
June 21st:
This user fails to pay
July 7th:
After our 16 day grace period, this user loses access
July 29th:
This user sees they lost access and repurchase
Augsut 19th:
Their membership is deactivated (long before their 3 Month Subscription is up)
For further verification I've also attached a record of all the payloads we've received from Apple for this user.
Please let me know if you need any more details to fix this bug OR if it has already been fixed! Thank you.
user_webhook_data_sanitized.csv
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
Sort by:
Post
Replies
Boosts
Views
Activity
What is the expected behavior for App Receipts and ASSN v2 notifications when a subscription is set to "Remove from Sale"?
I tried to test this in Sandbox, but the "Remove from Sale" setting in App Store Connect doesn't seem to affect the Sandbox environment.
For existing subscribers, what happens in the receipt? Does auto_renew_status change to 0 and is expiration_intent populated immediately?
Also, which notificationType is sent via ASSN v2?
Topic:
App & System Services
SubTopic:
StoreKit
Tags:
Subscriptions
In-App Purchase
App Store Server Notifications
App Store Receipts
I submitted 2 subscriptions along with my new iOS build, reviewer rejected my build because I didn't mention the EULA terms of use link in my app's metadata (description).
Now I have added the Terms of use link in description and I have the option to resubmit the app for review, but when I scrolll down on the version page I am not able to see the in-app purchase section anymore as they are in rejected state.
When I opened the subscriptions, they showed the "developer action needed' status, I changed the localization description and saved it, now for localization it shows 'Preparing for submission', but the subscription's status still shows 'Developer action needed'.
Now, how am I supposed to reattach these subscriptions back to the same build, as the rejection reason was not the issue in my build, so, I want to resubmit the same build with same subscriptions.
Help me out.
Hello,
I am setting up an auto-renewable subscription for my iOS app in App Store Connect.
I would like to set the monthly subscription price to ¥710 (Japanese yen).
From what I understand, Apple requires us to use predefined price tiers for in-app purchases and subscriptions. However, I’m not sure whether subscriptions allow more flexibility than one-time in-app purchases.
👉 My questions are:
Is it possible to set an arbitrary subscription price such as ¥710, or must I pick the closest price tier from Apple’s official subscription price list?
If arbitrary prices are not allowed, is there an official list of available subscription price points for Japan that I can refer to?
Can we set subscription prices in multiples of 10 yen (e.g., ¥700, ¥710, ¥720), or are we strictly limited to the price points Apple provides?
Thank you in advance for your help!
Topic:
Community
SubTopic:
Apple Developers
Tags:
Subscriptions
StoreKit
App Store Connect
In-App Purchase
Dear Apple Support Team,
We are experiencing an issue with the Offer Code Redemption Sheet in our iOS app. Despite following Apple’s recommended approaches, the redemption sheet does not close automatically after a user successfully redeems a code.
We have implemented both methods as suggested in the documentation:
StoreKit 2 (iOS 16+):
AppStore.presentOfferCodeRedeemSheet(in: scene)
StoreKit 1 (iOS 14–15):
SKPaymentQueue.default().presentCodeRedemptionSheet()
Expected behavior: The sheet should automatically close after a successful code redemption and provide a receipt for verification.
Observed behavior: The sheet remains open even after a code is successfully redeemed, and we do not receive a receipt to validate the redemption.
We would greatly appreciate guidance or any workaround to ensure that:
The redemption sheet closes automatically after redemption.
A valid receipt is delivered for verification.
For your reference, we are testing on:
iOS versions: 16+, 15+
Device models: iPhone 16 and others
Please let us know if additional information, logs, or screen recordings are needed to investigate this issue.
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect API
Tags:
Subscriptions
iPhone
StoreKit Test
StoreKit
I’m implementing subscriptions and running tests, and I noticed a behavior I’d like to confirm.
Plans in the app
Basic — Monthly
Basic — Annual
Premium — Monthly
Premium — Annual
Test environment
Sandbox (where ~1 day ≈ under 1 minute of real time)
steps
Start Basic (Monthly) using an introductory offer (free trial).
Create a crossgrade to Basic (Annual) (scheduled/queued).
After receiving a RENEWAL App Store Server Notification indicating the plan will move from trial to paid Basic (Annual), but before the trial actually expires, upgrade the user to Premium (Monthly).
Observed behavior (Sandbox) & questions
Even though there is still up to ~1 day of trial remaining (≈ under 1 minute in Sandbox), upgrading to Premium (Monthly) immediately ends the trial and activates the paid Premium plan right away.
Will this same behavior occur in Production?
If yes, is this the expected/acceptable behavior when upgrading during an active trial after a pending crossgrade?
Note: If we upgrade to Premium before the RENEWAL notification arrives, the remaining trial time is carried over in our tests.
In this flow, we see a RENEWAL notification for Basic (Annual) (moving from trial → paid), but then the user immediately upgrades to Premium (Monthly) and the trial ends at that moment.
In Production, would the charge for Basic (Annual) be refunded automatically since the user effectively switches to Premium immediately (and Basic Annual does not remain active)?
In Sandbox there’s no real charge, but I want to ensure we won’t see a situation in Production where Basic (Annual) is billed and not refunded, even though the subscription effectively moved to Premium right away.
Thanks in advance!
I’m implementing subscriptions and running tests, and I noticed a behavior I’d like to confirm.
Plans in the app
Basic — Monthly
Basic — Annual
Premium — Monthly
Premium — Annual
Test environment
Sandbox (where ~1 day ≈ under 1 minute of real time)
steps
Start Basic (Monthly) using an introductory offer (free trial).
Create a crossgrade to Basic (Annual) (scheduled/queued).
3.After receiving a RENEWAL App Store Server Notification indicating the plan will move from trial to paid Basic (Annual), but before the trial actually expires, upgrade the user to Premium (Monthly).
Observed behavior (Sandbox) & questions
Even though there is still up to ~1 day of trial remaining (≈ under 1 minute in Sandbox), upgrading to Premium (Monthly) immediately ends the trial and activates the paid Premium plan right away.
Will this same behavior occur in Production?
If yes, is this the expected/acceptable behavior when upgrading during an active trial after a pending crossgrade?
Note: If we upgrade to Premium before the RENEWAL notification arrives, the remaining trial time is carried over in our tests.
In this flow, we see a RENEWAL notification for Basic (Annual) (moving from trial → paid), but then the user immediately upgrades to Premium (Monthly) and the trial ends at that moment.
In Production, would the charge for Basic (Annual) be refunded automatically since the user effectively switches to Premium immediately (and Basic Annual does not remain active)?
In Sandbox there’s no real charge, but I want to ensure we won’t see a situation in Production where Basic (Annual) is billed and not refunded, even though the subscription effectively moved to Premium right away.
Thanks in advance!
Hello everyone,
I’ve been struggling with App Store Review regarding my delivery app, and I’m hoping someone here can shed light on whether my app actually requires In-App Purchase (IAP) under Apple’s guidelines.
Here’s my situation:
My app connects riders with delivery jobs.
We have two rider payment models:
Commission Plan (10%) – Riders don’t pay upfront, but 10% is deducted per completed delivery.
Fixed Subscription Plan – Riders pay a fixed monthly fee in advance, which allows them to keep 100% of their delivery earnings.
The challenge:
Apple Review has rejected my app multiple times, insisting that I must use IAP for these payments. I’ve written back and forth with them several times explaining that:
The commission plan isn’t a digital feature, it’s simply a revenue share from physical delivery work.
The fixed plan is more like a business service fee for using the platform, not for unlocking content or digital features.
Despite this, the Review Team continues to state that my app “requires IAP.”
My questions are:
Based on Apple’s official guidelines, do apps like mine (delivery/logistics with commission/subscription for riders) really fall under IAP rules?
Has anyone here had a similar issue with a marketplace or service-based app?
If this does require IAP, what’s the reasoning — since the payments are tied to real-world services, not digital content?
I’d appreciate advice, shared experiences, or even clarification from someone who has successfully passed review with a similar model.
Thanks in advance!
Topic:
App Store Distribution & Marketing
SubTopic:
App Review
Tags:
Subscriptions
App Review
App Store Connect
In-App Purchase
When submitting an app for review, will any unreviewed auto-renewing subscriptions within the app be reviewed simultaneously?
I own an app that has passed review and offers an auto-renewing subscription A within the app that has also passed review.
To test a new service, I plan to create a new auto-renewing subscription B, which I do not intend to submit for review.
After creating Subscription B, I plan to submit the app for review as part of an app update.
In that case, is there a possibility that Subscription B will also be reviewed?
One of our customers subscribed to a monthly plan on August 16 but the server-to-server notification seems to have been sent on August 18.
What could be the reasons for such a delay between the purchase and the server-to-server notification which are usually sent right after the purchase?
The receipt sent along with the notification seems to confirm that the receipt has only been created 2 days after the purchase. Here is an extract:
{
"environment": "Production",
"receipt": {
"receipt_type": "Production",
"bundle_id": "fr.gaumontvideo.gaumontclassique",
"application_version": "613",
"receipt_creation_date": "2025-08-18 13:00:16 Etc/GMT",
"receipt_creation_date_ms": "1755522016000",
"receipt_creation_date_pst": "2025-08-18 06:00:16 America/Los_Angeles",
"request_date": "2025-08-25 13:08:27 Etc/GMT",
"request_date_ms": "1756127307346",
"request_date_pst": "2025-08-25 06:08:27 America/Los_Angeles",
"original_purchase_date": "2022-05-11 06:14:37 Etc/GMT",
"original_purchase_date_ms": "1652249677000",
"original_purchase_date_pst": "2022-05-10 23:14:37 America/Los_Angeles",
"original_application_version": "265",
"in_app": [
{
"quantity": "1",
"product_id": "fr.gaumontvideo.gaumontclassique.subscription.monthly.apple",
"transaction_id": "270002386706194",
"original_transaction_id": "270002386706194",
"purchase_date": "2025-08-16 08:02:06 Etc/GMT",
"purchase_date_ms": "1755331326000",
"purchase_date_pst": "2025-08-16 01:02:06 America/Los_Angeles",
"original_purchase_date": "2025-08-16 08:02:08 Etc/GMT",
"original_purchase_date_ms": "1755331328000",
"original_purchase_date_pst": "2025-08-16 01:02:08 America/Los_Angeles",
"expires_date": "2025-09-16 08:02:06 Etc/GMT",
"expires_date_ms": "1758009726000",
"expires_date_pst": "2025-09-16 01:02:06 America/Los_Angeles"
}
}
Guideline 3.1.1 - Business - Payments - In-App Purchase, as my app currently allows users to purchase digital content (courses) using an external payment system. I am working to comply with Apple’s requirements by integrating In-App Purchase for all digital content within the app.
My app contains approximately 100,000 individual courses, and I am seeking guidance on how to effectively implement In-App Purchase for such a large number of items. Creating 100,000 separate In-App Purchase products in App Store Connect seems impractical due to the scale and potential limitations. I would like to explore feasible solutions, such as:
Using a subscription model to provide access to all courses.
Creating category-based bundles (e.g., Programming, Design) to group courses.
Implementing a dynamic purchase system where users can select specific courses after a single In-App Purchase transaction, managed server-side.
Could you please advise on the best approach to manage In-App Purchase for 100,000 individual courses? I am happy to provide additional details about my app’s functionality or work with your team to ensure compliance. Please let me know if a consultation or further documentation is needed to proceed.
Looking forward to your guidance.
Best regards,
Shuvajit Maitra
Topic:
App Store Distribution & Marketing
SubTopic:
App Review
Tags:
Subscriptions
App Review
App Store Connect
In-App Purchase
Hi,
This is the first time I'm submitting an app using IAP with auto-renewing subscriptions. Everything keeps getting rejected (specifically, my subscriptions), and instead of telling me what's wrong or what I need to fix, my reviewer just keeps regurgitating generic passages from the rules.
Is there a site/tutorial/whatever that explains how to set these up and submit them? I haven't found anything that looks official/legit, so I'll settle on something recommended by someone who has been through the process.
I would appreciate any help. I have been at this for DAYS and am at my wits end.
Thanks.
If I have a subscription based app that's available on iOS, Android, and the web.I use the appropriate billing systems for each platform (Apple IAP for iOS, Google Play Billing for Android, and my own system for web) What happens when a user subscribes on Android or the web, then logs into the same account on the iOS app? Am I allowed to honor that existing subscription on iOS, or am I required to have them purchase a separate subscription through Apple’s in app purchase system in order to access premium features on the iOS app?
If I have an app available on IOS/Android/Web and offer subscriptions in each (Obviously using apple IAP / Google Play Billing when in those contexts) and a user creates an account on Android / Web and pays for that subscription and then logs in with the same account on the App Store, do I need to charge them again for a new subscription, or can I use their account subscription?
Hi everyone,
After my app was initially rejected, all my IAPs now show the status “Developer Action Needed.” There’s nothing I need to change on them — they were just returned because it was the first submission and the app itself was rejected.
Do I need to do anything with the IAPs before I resubmit, or will they still be attached and reviewed automatically with the next binary? I’ve seen conflicting answers, so I’d like to confirm the correct process.
Thanks,
Cris
Hello,
I’m facing an issue with in-app purchases after my app was approved on the App Store. I’ve created 100 consumable products, all of which have been approved by Apple. The purchases work correctly in both TestFlight and debug mode, but once the app is live on the App Store, I receive an “Invalid Product ID” error.
I reached out to Apple Support, but they directed me to ask this question on the forum instead.
Could someone please help me resolve this issue?
Its been week now, I am losing my customers.
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
Subscriptions
StoreKit
In-App Purchase
Cannot download FCPX that was purchased few yerars ago on Macbook pro with Tahoe OS beta. App do not show on my downloaded apps
I enrolled years ago and abandoned my app project. I'm trying again now to port a web app I already created but I no longer live in the U.S. Like many countries in the global south, Costa Rica does not have physical addresses. My ID here does not have an address on it. We don't have postal services, not like in western countries. Our bank statements don't have addresses on them: because we don't have addresses. My utility bill is in my wife's name and so is my phone and internet. Yet I'm being asked to provide these details I cannot provide. I cannot pay for a developer subscription otherwise because my card is from a bank here, not the U.S. I also need my developer account to be FROM here so that any business org I create is also FROM here. What can I do? They're asking me for:
A photocopy of your valid (not expired) government-issued identification showing the new address
• A recent change-of-address document filed with your local postal service
• A document from your local registration office showing the new address
• A recent utility bill, bank statement, or a letter from a government agency that shows your name and new address
We distribute apps that offer auto-renewing subscriptions.
In order to test a new service, we would like to create a new subscription group and subscription product (hereinafter referred to as “test subscription”) for this app.
If the “In-app purchase statuses” of the test subscription is “Ready to Submit” is the following behavior correct?
・General end users cannot purchase the test subscription.
・Users with SANDBOX Apple accounts can purchase the test subscription.
Hi,
I've been unable to successfully test in the sandbox environment for a StoreKit 2 subscription group and can't seem to find the missing piece.
I am calling the following line of code:
let products = try await Product.products(for: [subscriptionID])
Expected behavior: The product is returned in the products array.
Actual result: The array is empty
I have done the following:
Successfully tested our logic using a storekit configuration file locally in Xcode.
Created the Subscription group in App Store Connect. The subscription product is currently "Waiting for Review", but it is our first so will not be approved without being attached to a distribution build review.
Created a Sandbox user account in App Store Connect -> Users -> Sandbox
Signed into the sandbox user account in Settings -> Developer -> Sandbox Apple Account
Signed the Paid Apps Agreement for our organization
A few debugging notes:
I deleted all apps before installing from Xcode
I've tried both locally and in TestFlight builds
Restarted my device
Verified productID matches the productID in App Store Connect
I'm not sure if I'm missing something, but any help would be appreciated.
Thanks
Topic:
App & System Services
SubTopic:
StoreKit
Tags:
Subscriptions
StoreKit
App Store Connect
In-App Purchase