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"
}
}
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
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
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?
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 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?
Cannot download FCPX that was purchased few yerars ago on Macbook pro with Tahoe OS beta. App do not show on my downloaded apps
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.
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 are considering a price change for the auto-renewing subscriptions we currently offer in a Production environment and have made system modifications to our servers.
We would like to implement a price change for purchases made through our SANDBOX Apple account in order to test if our system is capable of handling the price change.
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
We are implementing a report of all cancelled subscribers to our mobile App called SweetLifeSaver. We would like to identify the subscription date and the cancellation date for all such users. How do we get this information?
Our app is currently live on the App Store as a universal app (iPhone + iPad) and supports a subscription model — meaning users with an active subscription can access the app on both devices.
We recently redesigned the iPhone UI and would like to push an iPhone-only update, without affecting the existing iPad experience (which remains unchanged). The goal is to prevent iPad users from receiving the new update, while iPhone users get the latest UI enhancements.
Questions:
Is it possible to release an update that targets only iPhone devices while keeping the current version available for iPad?
If yes, what are the proper deployment or App Store Connect configurations required to achieve this?
Any guidance or clarification would be greatly appreciated.
Thanks in advance!
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
Subscriptions
App Review
Universal Apps
App Store Connect
Hi,
I am trying to do some purchase on sandbox envirnment and facing this error from last 2 days. Any idea what is wrmong here
<SKPaymentQueue: 0x158ac1030>: Payment completed with error: Error Domain=ASDErrorDomain Code=500 "(null)" UserInfo={client-environment-type=Sandbox, storefront-country-code=IND, NSUnderlyingError=0x15ae9c0c0 {Error Domain=AMSErrorDomain Code=305 "Purchase Failed Server canceled the purchase" UserInfo={AMSFailureReason=Server canceled the purchase, AMSURL=https://sandbox.itunes.apple.com/WebObjects/MZBuy.woa/wa/inAppBuy?guid=00008030-0004388026C2802E, AMSDescription=Purchase Failed, AMSStatusCode=200, AMSServerPayload={
"cancel-purchase-batch" = 1;
customerMessage = "Unable to process your request.";
dialog = {
defaultButton = ok;
explanation = "Please try again later.\n\n[Environment: Sandbox]";
initialCheckboxValue = 1;
isFree = 1;
"m-allowed" = 0;
message = "Unable to process your request.";
okButtonString = OK;
};
failureType = "";
"m-allowed" = 0;
metrics = {
actionUrl = "sandbox.itunes.apple.com/WebObjects/MZBuy.woa/wa/inAppBuy";
asnState = 0;
dialogId = "MZCommerce.SystemError";
eventType = dialog;
message = "Unable to process your re";
mtEventTime = "2025-08-06 06:56:30 Etc/GMT";
mtTopic = "xp_its_main";
options = (
OK
);
};
pings = (
);
}, NSDebugDescription=Purchase Failed Server canceled the purchase}}}
Optional(Error Domain=SKErrorDomain Code=0 "An unknown error occurred" UserInfo={NSLocalizedDescription=An unknown error occurred, NSUnderlyingError=0x15a152280 {Error Domain=ASDErrorDomain Code=500 "(null)" UserInfo={NSUnderlyingError=0x15a1501e0 {Error Domain=AMSErrorDomain Code=305 "(null)"}}}})
Hello,
We're experiencing an issue where our app’s in-app subscriptions are flagged as “Missing Metadata” in App Store Connect. After contacting Apple Developer Support over the phone, we've been informed two seperate times by two different support agents that this is because we don't have a screenshot associated with either subscription (we have a monthly and yearly option). While I can continue to see in App Store Connect that a screenshot is present, Apple Developer Support informed us that no screenshot associated with either subcription.
Even after deleting and reuploading, we validated this issue persists. When talking with App Review, they provided this answer multiple times:
Guideline 2.1 - Performance - App Completeness
We are unable to complete the review of the app because one or more of the in-app purchase products have not been submitted for review.
Specifically, the app includes references to Radar Pro but the associated in-app purchase products have not been submitted for review.
Next Steps
To resolve this issue, please be sure to take action and submit your in-app purchases and upload a new binary in App Store Connect so we can proceed with our review.
Note you must provide an App Review screenshot in App Store Connect in order to submit in-app purchases for review. Learn more about required in-app purchase metadata.
This does not resolve this issue as changing the version from 1.0 to something else still does not present any additional UI to associated our subscriptions with our app in the main view or submission confirmation view.
Per Apple guidelines in the "Subscriptions" tab:
Your first subscription must be submitted with a new app version. Create your subscription, then select it from the app’s In-App Purchases and Subscriptions section on the version page before submitting the version to App Review.
Once your binary has been uploaded and your first subscription has been submitted for review, additional subscriptions can be submitted from the Subscriptions section. Learn More
Apple Developer Support recommended this is the best option for us to continue forward since they don't offer technical support. Any help resolving this issue would be greatly appreciated as it’s the only issue blocking re-review of our app.
Thanks in advance.
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
Subscriptions
App Review
App Store Connect
Hi, I paid by credit card to enroll in the Apple Developer Program. I received the invoice by email, and it's been more than two business days and the dashboard still appears as shown in the screenshot below.
It says the following (in Portuguese):
"Purchase the subscription. To continue your subscription, complete your purchase now."
FB19376771
Transactions monitoring. If I only have subscriptions, do I really need to "bother" with any sort of monitorTransactions() or just rely on subscription status (subscribed, revoked, cancelled ...) ?
This is in line with Apple SKDemo and recommendation:
// Only handle consumables and non consumables here. Check the subscription status each time
// before unlocking a premium subscription feature.
switch transaction.productType {
ref: [https://developer.apple.com/documentation/storekit/implementing-a-store-in-your-app-using-the-storekit-api)
The "Only handle consumables and non consumables here" recommendation by Apple in ref to the process transaction code above is nuanced and confusing if we know what was with other external experts recommendation saying when using only SK2 Views :
"This is where most developers trip up in trying to get an experience that App Review is happy" ...
continuing :
"Be careful: that Purchase View code alone isn’t enough, because one of the possible completion status is .pending: the purchase is in the process of happening but hasn’t completed yet, so you still need to watch the transaction queue manually to be absolutely sure of handling the process completely."
Does this holds true for the new SubscriptionStoreView ?
We are not sure with quite obscure Apple documentation what SubscriptionStoreView handles, other than purchase (and now subscribe) function, and we do not know what diverse type of error handling messages it can return. Moreover, Apple documents: "Only handle consumables and non consumables here" ?
@Apple can you please share more insights on Purchase button on SubscriptionStoreView e.g
A) does it close ( finish). the purchase transaction ?
B) What error results can it return ?
C) What .onInAppPurchaseCompletion can handle as result ?
I have an app on the App Store that includes in-app purchases (a subscription tier). An organization has expressed interest in deploying our app across their devices using Apple Business Manager (ABM) and Intune (MDM) as a VPP-managed app.
They would like to purchase and distribute the subscription-based Pro features through Apple Business Manager, but as far as I understand, in-app purchases are not currently supported in VPP deployments.
Is there any recommended approach to enable Pro features in this setup?
Would appreciate guidance or best practices from others who’ve handled similar use cases.
Thanks in advance!
Topic:
App Store Distribution & Marketing
SubTopic:
General
Tags:
Subscriptions
Custom Apps
Business and Enterprise
Apple Business Manager
Hey everyone,
This might be a simple fix that I’m just overlooking, but I’ve been stuck on it for the past 48 hours.
The issue is on my subscription screen — after a user completes a successful in-app purchase, the app doesn’t navigate to the main app like it’s supposed to. I’ve added logs, tried various fixes, and even asked AI for help, but nothing has worked.
From what I can tell, it seems like my listeners aren’t being registered properly after the transaction. I’ve tried reinitializing them, moving them around, and testing different flows, but still no luck.
If anyone has insight into how they’ve set this up or any suggestions I might not have considered, I’d really appreciate it.
Thanks in advance!
<SKPaymentQueue: 0x10629d1b0>: Payment completed with error: Error Domain=ASDErrorDomain Code=500 "(null)" UserInfo={client-environment-type=Sandbox, storefront-country-code=USA, NSUnderlyingError=0x108f15c80 {Error Domain=AMSErrorDomain Code=305 "Purchase Failed Server canceled the purchase" UserInfo={AMSFailureReason=Server canceled the purchase, AMSURL=https://sandbox.itunes.apple.com/WebObjects/MZBuy.woa/wa/inAppBuy?guid=00008030-001E19361A12202E, AMSDescription=Purchase Failed, AMSStatusCode=200, AMSServerPayload={
"cancel-purchase-batch" = 1;
customerMessage = "Unable to process your request.";
dialog = {
defaultButton = ok;
explanation = "Please try again later.\n\n[Environment: Sandbox]";
initialCheckboxValue = 1;
isFree = 1;
"m-allowed" = 0;
message = "Unable to process your request.";
okButtonString = OK;
};
failureType = "";
"m-allowed" = 0;
metrics = {
actionUrl = "sandbox.itunes.apple.com/WebObjects/MZBuy.woa/wa/inAppBuy";
asnState = 0;
dialogId = "MZCommerce.SystemError";
eventType = dialog;
message = "Unable to process your re";
mtEventTime = "2025-07-30 07:08:24 Etc/GMT";
mtTopic = "xp_its_main";
options = (
OK
);
};
pings = (
);
}, NSDebugDescription=Purchase Failed Server canceled the purchase}}}
We got access into Advanced Commerce API and trying out the server APIs.
I was trying out the Migrate a Subscription to Advanced Commerce API but the API was just simply returning not found to me with a generic error code 4040000 (this is undocumented in the API doc).
Here is the request body
{
"descriptors": {
"description": "User migrated from old plan to Essential",
"displayName": "Essential Plan"
},
"items": [
{
"sku": "com.company.essential",
"description": "A new subscription description after migration",
"displayName": "Essential"
}
],
"requestInfo": {
"requestReferenceId": "11aa3174-9aeb-41a6-996d-fc655a793c06"
},
"storefront": "HKG",
"targetProductId": "com.company.subscription.base",
"taxCode": "C003-00-1"
}
Headers
Authorization: Bearer <REQUEST_TOKEN>
And the response
{
"errorCode": 4040000,
"errorMessage": "Not found."
}
Am I doing something wrong or there will be additional configuration needed?