Subscriptions

RSS for tag

Give 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

Post

Replies

Boosts

Views

Activity

In-App Purchase Resources
General: Forums topic: StoreKit Forums tag: In-App Purchase App Store Pathway Simple and safe In-App Purchases Auto-renewable subscriptions In-App Purchase documentation Getting started with In-App Purchase using StoreKit views documentation Supporting business model changes by using the app transaction documentation Testing at all stages of development with Xcode and the sandbox documentation App Store Server Notifications documentation App Store Server API documentation Simplifying your implementation by using the App Store Server Library documentation TN3185: Troubleshooting In-App Purchases availability in Xcode technote TN3186: Troubleshooting In-App Purchases availability in the sandbox technote TN3188: Troubleshooting In-App Purchases availability in the App Store technote Understanding StoreKit workflows sample code Implementing a store in your app using the StoreKit API sample code What’s new in StoreKit and In-App Purchase video
0
0
2.1k
Jun ’26
W-8BEN citizenship field locked to wrong country - Finance not responding for 4 weeks
Hi everyone, I'm an individual developer with a sole proprietorship registered in Poland. I'm a citizen of Belarus, I live in Poland with permanent residence and I'm a Polish tax resident. The problem is that in App Store Connect the Country of citizenship field in my W-8BEN form is set to Poland and I can't change it. I tried resetting the tax questionnaire, didn't help. I don't want to submit the form with wrong info, so my Paid Apps agreement is stuck in Pending User Info since September 23. My bank account has been stuck in Processing since the same day too. What I've done so far: Sep 23 wrote to Developer Support (case 102973741691), on Sep 25 they told me to contact Finance Sep 26 opened Finance case 22490850, followed up on Oct 5, 12 and 19, also sent an official extract from the Polish business register that shows my citizenship. No reply at all Oct 12 wrote to Developer Support again, nothing Oct 16 called support, they said someone would help me within a week, nobody contacted me Did anyone have the same issue with the citizenship field? How did you get it fixed? Thanks
1
0
95
33m
StoreKit 2 returns USD product metadata in TestFlight while the storefront is FRA/EUR
Hello, We would appreciate some guidance regarding an unexpected StoreKit currency result in a TestFlight build. Our iPhone language and region are both set to France. The Sandbox tester is also configured for France, and our subscription products have French availability and pricing configured in App Store Connect. In the TestFlight build we diagnosed, StoreKit reports the current storefront as France with EUR: storefront=FRA/143442/EUR However, all 10 subscription products are returned with USD product metadata: products=10/10 formatCurrencies=USD localeCurrencies=USD error=NONE Example: formatCurrency=USD locale=fr_US_currency_USD localeCurrency=USD display=1,99 $US price=1.99 We first observed this through Flutter's in_app_purchase integration. To determine whether the Flutter plugin was involved, we added a native StoreKit 2 diagnostic to the same TestFlight build. The native result was identical: receipt=sandboxReceipt storefront before=FRA/143442/EUR storefront after=FRA/143442/EUR products=10/10 formatCurrencies=USD localeCurrencies=USD error=NONE The issue appears specific to the TestFlight distribution. When the application is installed directly from the development computer, prices are returned in euros on the same device. We also tested with the regular Media & Purchases account signed out and a French Sandbox tester connected. Once the products loaded successfully, StoreKit still returned USD metadata. In another configuration, the application displayed the USD price while Apple's purchase sheet displayed the price in euros. We are using the price and formatting information returned directly by StoreKit. We do not want to infer the currency from the device region or perform a client-side currency conversion, because StoreKit should remain the authoritative source. Could you please help us understand: Is it expected for Storefront.current to report FRA/EUR while Product.priceFormatStyle.currencyCode, its locale currency, and Product.displayPrice use USD? Could a TestFlight or App Store Connect configuration cause product metadata to use a different currency from the current storefront? Is there another account, availability, pricing or distribution setting that we should verify? Is there a recommended way to refresh or invalidate the product metadata used by a TestFlight installation? We have already filed Feedback Assistant report FB24723329, which is currently under investigation. Thank you very much for any clarification or additional diagnostic steps you can suggest.
8
1
1.2k
2d
App rejected for missing In-App Purchases (IAP) after they were completely removed from the binary
We are stuck in a review rejection loop regarding In-App Purchases (IAP) and Subscriptions, and we need advice on how to break out of it. The Background: A few weeks ago, we submitted a companion app that included IAPs and auto-renewable subscriptions. The App Review team rejected the build because the app forced users to create an account (using an OTP verification system) to access or view the IAPs, which prevented the reviewers from testing the purchase flow properly. What We Did: Because building a comprehensive guest checkout flow would take too long for our current launch timeline, we decided to completely remove all IAP and subscription features from this version. We did the following: • Removed all IAP/subscription code, UI elements, and references from the source code binary. • Deleted the IAP and subscription products inside App Store Connect (they are no longer attached to the version submission). • Submitted a new build along with a supporting video demonstrating the updated user flow. The Current Loop: App Review continues to reject our new submissions. However, the rejection reason has flipped: they are now claiming they cannot locate the IAP and Subscriptions that were previously there. It seems the review team is stuck looking at old metadata or cached project states, even though the binary and App Store Connect configuration have zero traces of IAP left. Has anyone experienced a similar "ghost" IAP rejection? How can we force App Review to recognize that this is now a strictly free app so we can get out of this rejection loop? Thank you!
0
0
72
2d
App is rejected due to Guideline 2.1(b) - Performance - App Completeness
We are stuck in a review rejection loop regarding In-App Purchases (IAP) and Subscriptions, and we need advice on how to break out of it. The Background: A few weeks ago, we submitted a companion app that included IAPs and auto-renewable subscriptions. The App Review team rejected the build because the app forced users to create an account (using an OTP verification system) to access or view the IAPs, which prevented the reviewers from testing the purchase flow properly. What We Did: Because building a comprehensive guest checkout flow would take too long for our current launch timeline, we decided to completely remove all IAP and subscription features from this version. We did the following: • Removed all IAP/subscription code, UI elements, and references from the source code binary. • Deleted the IAP and subscription products inside App Store Connect (they are no longer attached to the version submission). • Submitted a new build along with a supporting video demonstrating the updated user flow. The Current Loop: App Review continues to reject our new submissions. However, the rejection reason has flipped: they are now claiming they cannot locate the IAP and Subscriptions that were previously there. It seems the review team is stuck looking at old metadata or cached project states, even though the binary and App Store Connect configuration have zero traces of IAP left. Has anyone experienced a similar "ghost" IAP rejection? How can we force App Review to recognize that this is now a strictly free app so we can get out of this rejection loop? Thank you!
0
0
50
2d
Purchase with promotional offer doesn't work - no transaction update, no webhook
Many of my purchases are encountering an issue when using a promotional offer (with a promo offer signature included). On the client side, everything works properly, and the purchase triggers the .success() callback. However, there are no updates in either the transaction/renewal info or via webhooks. According to the documentation, at least one of these server notifications should be triggered: OFFER_REDEEMED or SUBSCRIBED/RESUBSCRIBED. My server did not receive any signals. Furthermore, when I fetched the subscription status using the App Store Server API, the offer identifier did not appear in either the renewal info or the transaction info.
0
0
49
3d
Approved versions show “Ready for Distribution” for 7 days but App Store still serves the old version
My last two approved versions of my app are showing "Ready for Distribution" in App Store Connect, but none of the storefronts lets the user gets the latest update. Here's what happened 0.13.1 (build 49) was approved on 13 October. The release type was “Automatically release after approval”. The state is READY_FOR_SALE with downloadable = true, and no phased release is set. 0.13.2 (build 50) was approved on 18 October with the same release type. It is also Ready for Distribution. The App Store and Apple’s public lookup API (itunes.apple.com/lookup?bundleId=…) still return 0.11.0 (released 3 October, minimum iOS 17.6). I checked the US, IN, GB, CA, AU, DE, SG and AE storefronts. It is not a device issue. iPhones on iOS 18.2 and iOS 27 also show 0.11.0 as the latest version. Impact Our iOS users cannot get the new version. The in-app update prompt sends them to a store page that offers only 0.11.0. We had to turn off open challenge events that need the new version, so users cannot join them. This release introduces new in-app purchases, including an annual plan with a free trial, so the delay also affects our revenue. The app ID is 6760958527. I opened Apple Developer Support case 102996444113 and have not had a reply yet. Has anyone seen a release stay stuck like this for days? Is there anything on the developer side that I should check or try? I would be grateful for any pointers.
0
0
55
3d
Cannot submit subscription data for review
I am unable to submit updated subscription information for review (details below). Any help with what I might be doing wrong would be appreciated. Background We have had a macOS available on the App Store for about 2 years. I am currently adding new features that require a subscription. The app reviewer rejected the app because the subscription view The auto-renewable subscription promotes the free trial, introductory pricing, or introductory period for the subscription more clearly and conspicuously than the billed amount. I have updated the subscription view in the app, and I updated the screenshots in the metadata at App Store Connect. Unable to submit subscription update for review But now I cannot submit the updated subscription for review, with an error saying Your first auto-renewable subscription myst be submitted with a new app version. I have updated both the app version and build numbers, but I still get the same error. I completed deleted the subscriptions and subscription group and recreated them, but I am still get the same error. The attached image shows the error message. The "Submit for Review" button is disabled The warnings say it needs to be submitted with a new app version I have updated the app's version and build numbers Any idea what I am doing wrong?
1
0
272
4d
StoreKit External Purchase Link (RU) unavailable because Paid Applications Agreement cannot be accepted
Hello, I am the Account Holder of an Individual Apple Developer Program membership based in the Russian Federation. I am trying to request the StoreKit External Purchase Link Entitlement (RU) for my iOS app. The app itself is free to download. It does not use and is not intended to use Apple In-App Purchase. Premium digital content is provided through a subscription purchased on our external website. Apple currently documents StoreKit External Purchase Link support for Russia. However, when I open the official StoreKit External Purchase Link Entitlement (RU) request form, I cannot submit the request unless I have accepted the latest Paid Applications Agreement. The problem is that the Paid Applications Agreement is not available in my App Store Connect account. Apple Developer Support informed me that, because my Apple Developer Program membership is located in the Russian Federation, I am currently unable to distribute paid applications or applications using In-App Purchases due to applicable sanctions. This creates a circular situation: StoreKit External Purchase Link (RU) is officially available for Russia. The entitlement request form requires the Paid Applications Agreement. My Russian developer account cannot accept the Paid Applications Agreement. Therefore, I cannot submit the entitlement request. My intended purchase flow is: Free iOS app → user account → StoreKit External Purchase Link → external website → digital subscription → access activated in the app. Has anyone with a Russian Apple Developer account successfully obtained the StoreKit External Purchase Link Entitlement recently? Is there an official manual process for Russian developers who cannot accept the Paid Applications Agreement? Can this entitlement request be processed manually by Apple Developer Support or another Apple team? I would especially appreciate guidance from an Apple engineer regarding the officially supported path for this situation. Thank you.
1
2
242
5d
Rejected 3x under 2.1(b): cannot submit app version and In-App Purchases in the SAME review submission
Our app BandPro (Apple ID 6793207475) has been rejected three times under Guideline 2.1(b) because the In-App Purchase products were "not submitted for review". Everything is ready on our side, but App Store Connect will not let us put the app version and the IAPs into the SAME review submission: New binary uploaded: iOS 1.0 (build 22), attached to the version. 7 IAPs in "Ready to Submit": 4 auto-renewable subscriptions in the group "BandPro Pro" + 3 consumables. All have prices, availability in 175 storefronts, review screenshots and review notes. The app version is locked inside the REJECTED submission ("Unresolved Issues"). The only action available there is "Resubmit to App Review", which sends the version ALONE - exactly what caused the 2nd and 3rd rejections. Adding the IAPs for review creates a SEPARATE draft submission. That draft cannot be sent: it shows "To submit your items for review, add an app version for the selected platform" - but the version cannot be added because it is held by the rejected submission. We replied to App Review in the Resolution Center on Aug 1 explaining this. No response yet. We also saw the recent reply from an App Store Commerce Engineer saying the In-App Purchase submission experience was recently updated and an issue affected some submitted IAPs - our timeline matches that window. Could someone from Apple help us either: (a) attach the 7 ready IAPs to the existing submission so everything is reviewed together, or (b) release the app version from the rejected submission so we can create ONE new submission containing the version + all IAPs? We would like to avoid deleting and recreating the subscription group, since the product IDs are already live in our billing stack and on Google Play. Thank you!
2
1
512
5d
Sandbox returns invalid product identifier for correctly configured auto-renewable subscription
I’m unable to retrieve a newly configured auto-renewable subscription from the Apple Sandbox environment. Product information Bundle ID: com.reynaga.Imoox Product ID: com.reynaga.Imoox.subscription.monthly Subscription status: Prepare for Submission Price: USD 1.99 per month Introductory offer: one-week free trial Result The app requests the product using StoreKit 2: let products = try await Product.products( for: ["com.reynaga.Imoox.subscription.monthly"] ) The request doesn’t throw an error, but the returned products array is empty. I also tested with SKProductsRequest. The Sandbox response is: Valid products: [] Invalid product identifiers: ["com.reynaga.Imoox.subscription.monthly"] Configuration already verified The Bundle ID and Product ID match App Store Connect exactly. The app uses an explicit App ID, not a wildcard. In-App Purchase is enabled for the App ID. The development certificate and provisioning profile are valid. There is no StoreKit Configuration file active in the Run scheme. The Apple Developer Program membership is active. The Paid Applications Agreement is active. Banking and all required tax forms show an Active status. The subscription has a price, localizations, tax category, and availability. Mexico and the United States are included in its availability. The Sandbox Apple Account belongs to the same developer team. The app is development-signed and installed from Xcode 26.2 on a physical iPhone. I signed out and back into the Sandbox account, deleted and reinstalled the app, restarted the device, and cleaned the Xcode build. The issue has persisted well beyond the documented metadata propagation period. Apple Developer Support reviewed the administrative configuration and referred me to the Developer Forums. According to Apple’s documentation, an In-App Purchase doesn’t require prior App Review approval to work in Sandbox. Could an Apple StoreKit or App Store Connect Commerce engineer verify whether the app-to-subscription catalog association is correctly provisioned in Sandbox and refresh or reprocess it if necessary?
0
0
247
1w
URGENT Unable to Resolve Guideline 2.3.2 - Performance - Accurate Metadata
I have been rejected twice for the same issue that I have no way of addressing it at all because Apple has to change the status of my subscription for me to make edits. Apple, if you see this, please just change the status for me, I have been trying to contact Apple for weeks now to resolve this super small issue but it's hard to get a hold of them to read the messages! This is the only issue left holding my app back from getting approved. Issue Description We noticed that your promotional image to be displayed on the App Store does not sufficiently represent the associated promoted In-App Purchase and/or win back offer. Specifically, we found the following issue with your promotional image: – Your promotional image is the same as the app’s icon. – You submitted duplicate or identical promotional images for different promoted In-App Purchase products and/or win back offers.
0
0
124
1w
Advanced Commerce API – 5000000 "Unknown error" when calling Migrate API
We've been approved for the Advanced Commerce API. After receiving the approval, we completed the initial setup requirements (submitted a generic product ID and shared our subscriptions page deep link). When testing the Migrate Subscription to Advanced Commerce endpoint in the sandbox, we receive a 5000000 error. What could be the reason/s for it? There is no information, and the API call we make includes all required parameters. Could it be related to the fact that our new generic product ID status is "Missing Metadata"? Is there a way to understand what the issue is on Apple's side?
1
0
231
1w
App Store Server API: originalTransactionId stability across expiration and resubscription
DTS recommended that we post this question in the Developer Forums. We would like clarification on the supported production behavior of originalTransactionId in the App Store Server API, particularly after a subscription expires and the customer resubscribes. Our main backend design question is: Can we continue using a stored originalTransactionId to identify and retrieve subsequent subscription activity within the same subscription group, or must we support discovering and associating new identifiers? Integration context Our backend uses: GET /inApps/v1/subscriptions/{transactionId} GET /inApps/v2/history/{transactionId} App and subscription details: Bundle ID: com.lgeha.nuts Subscription group identifier: 22350255 Product A: thinq_g_unlimitedpro Product B: thinq_g_single We use originalTransactionId as a key for subscription records and associate those records with user accounts in our service. We do not use it as an identifier for the Apple Account itself. Please assume the same Apple Account and app, with both products in the same subscription group, using ordinary auto-renewable subscriptions without a special subscription migration. This question concerns the identifiers and lookup behavior exposed to our backend by the App Store Server API. Sandbox observation and scope During sandbox testing, purchase history was cleared, and a new originalTransactionId was subsequently observed. We understand that this observation involved a sandbox history reset and does not establish production behavior. Our questions below concern production behavior without any purchase-history reset. Preservation across subscription lifecycle events For each scenario below, is originalTransactionId guaranteed to remain unchanged for subsequent transactions, or can Apple assign a different value? Automatic renewal of the same product. An upgrade, downgrade, or crossgrade between products A and B while the subscription is active. Turning off automatic renewal, then re-enabling it before expiration. Turning off automatic renewal, allowing the subscription to expire, and later resubscribing to the same product. Turning off automatic renewal for product A, allowing it to expire, and later subscribing to product B within the same subscription group. Scenarios 4 and 5 are our primary concern. We would like to distinguish commonly observed behavior from supported guarantees that a backend can rely on. Conditions for a new identifier after expiration For scenarios 4 and 5, can a new purchase legitimately receive a different originalTransactionId in production despite the Apple Account, app, and subscription group remaining unchanged? If so, what conditions determine this? Does it depend on: Time elapsed since expiration. Billing retry or billing grace-period status or history. Whether the purchase uses StoreKit 1 or StoreKit 2. Whether the customer resubscribes inside the app or through App Store subscription management. Our concern is whether these factors affect the identifiers subsequently returned by the App Store Server API. Stability of an existing transaction Separately from a new purchase receiving a new identifier, if the same transactionId is retrieved at two different times, is its associated originalTransactionId guaranteed to remain unchanged? Can an Apple-supported correction process change that association, or should such a result be treated as an inconsistency and reported through Feedback Assistant? This question concerns the same returned transactionId, rather than a different latest transaction returned by a subsequent status query. We have not confirmed such a change in production. Lookup behavior using a previously stored identifier If resubscription can create a new originalTransactionId, how does that affect each endpoint? For GET /inApps/v1/subscriptions/{transactionId}: Can a request using the previous originalTransactionId return the current status of a later resubscription with a different originalTransactionId, assuming the same Apple Account, app, and subscription group? Or must the backend obtain the new identifier separately? For GET /inApps/v2/history/{transactionId}: Can a request using the previous originalTransactionId return transactions from that later resubscription, assuming all applicable pages are retrieved and no filters exclude those transactions? Please clarify any endpoint-specific guarantees or limitations on using an older identifier to discover subsequent subscription activity. Backend account association If resubscription can create a new identifier, should our backend support multiple originalTransactionId values for one service user within the same subscription group? Is there a documented server-side relationship that links subscriptions with different originalTransactionId values? Alternatively, should that association rely on an application-managed identifier such as appAccountToken, where available? Please clarify any limitations, especially for resubscriptions initiated outside the app. Related discussions We reviewed these discussions as background: Transaction ID Misassociation in IAP Subscription API (https://developer.apple.com/forums/thread/777433) original_transaction_id associated to web_order_line_item_id of auto-renewable subscription changed (https://developer.apple.com/forums/thread/778301) We do not assume that these reports establish supported behavior or share the cause of our sandbox observation. Could Apple clarify the supported preservation or replacement rules, particularly after expiration and resubscription, and point us to documentation describing the behavior a backend can rely on? If investigating a specific inconsistency requires a separate Feedback Assistant report, please indicate which server-side request and response details should be included. Thank you.
0
0
306
1w
Offer code for existing account users
I have created a set of offer codes for 1 year free for existing app users. The app use to be a one-time download and is now on a subscription model. When existing users try the code, a message indicating that they are not eligible for this offer pops up. I set up the offer code within the subscription group and indicated that it is for existing users. Any step I might be missing?
1
0
313
1w
I need a iOS dev team for
A Apple Music application model that I submitted for this project account, was accepted, but I’m not a developer or designer. I am a musician/ producer. This will be an exclusive Apple ONLY app. due to the actual features. IOS, MacOS drivers, DAW, wallet, graphics, NFT’s. designer developers, if you love building master code LETS GO….
1
0
135
1w
First IAPs stuck in draft ("add an app version") while version 1.0 is in rejected submission
I created my in-app purchases (one non-consumable, plus a subscription group with two subscriptions). All have review screenshots and show 'Ready for Review.' But I can't add them to my app version for review. My version 1.0 was rejected under Guideline 2.1(b) because the in-app purchases weren't included. The version page shows 'Update Review' and has no 'In-App Purchases and Subscriptions' section. When I click 'Add for Review' on an in-app purchase, it goes into a separate draft that says 'Unable to Submit for Review: To submit your items for review, add an app version for the selected platform.' How do I get my in-app purchases and my app version into the same submission? Should I remove version 1.0 from the rejected submission first?
3
0
369
1w
App stuck in "Waiting for Review" since Oct 5, hasn't entered "In Review" yet
Our iOS app update has been in "Waiting for Review" since Oct 5. On Oct 3, promptly after initial App Review submission on Oct 2, App Review sent an automated message asking us to confirm the intended prices of several in-app purchase products (subscriptions). We confirmed (via sending 2 messages back) within a few hours of the automated message on Oct 3. Early last week, not understanding if I should resubmit the app for review or not (since I had not heard anything from Apple yet), I waited 48 hours and submitted the app for review on Oct 5th morning. I still have not heard anything since (almost a full calendar week). We've opened a Developer Support case (102989025859) on Oct 7 and submitted an expedite request (on Oct 9). Is there anything else we should be doing, or is a delay like this expected after an automated pricing verification? Submission ID: 7919390f-9e10-4b16-84bc-aa74c9f40300 Thank you for any guidance or help. Best Regards, DH
0
0
198
1w
In-App Purchase Resources
General: Forums topic: StoreKit Forums tag: In-App Purchase App Store Pathway Simple and safe In-App Purchases Auto-renewable subscriptions In-App Purchase documentation Getting started with In-App Purchase using StoreKit views documentation Supporting business model changes by using the app transaction documentation Testing at all stages of development with Xcode and the sandbox documentation App Store Server Notifications documentation App Store Server API documentation Simplifying your implementation by using the App Store Server Library documentation TN3185: Troubleshooting In-App Purchases availability in Xcode technote TN3186: Troubleshooting In-App Purchases availability in the sandbox technote TN3188: Troubleshooting In-App Purchases availability in the App Store technote Understanding StoreKit workflows sample code Implementing a store in your app using the StoreKit API sample code What’s new in StoreKit and In-App Purchase video
Replies
0
Boosts
0
Views
2.1k
Activity
Jun ’26
W-8BEN citizenship field locked to wrong country - Finance not responding for 4 weeks
Hi everyone, I'm an individual developer with a sole proprietorship registered in Poland. I'm a citizen of Belarus, I live in Poland with permanent residence and I'm a Polish tax resident. The problem is that in App Store Connect the Country of citizenship field in my W-8BEN form is set to Poland and I can't change it. I tried resetting the tax questionnaire, didn't help. I don't want to submit the form with wrong info, so my Paid Apps agreement is stuck in Pending User Info since September 23. My bank account has been stuck in Processing since the same day too. What I've done so far: Sep 23 wrote to Developer Support (case 102973741691), on Sep 25 they told me to contact Finance Sep 26 opened Finance case 22490850, followed up on Oct 5, 12 and 19, also sent an official extract from the Polish business register that shows my citizenship. No reply at all Oct 12 wrote to Developer Support again, nothing Oct 16 called support, they said someone would help me within a week, nobody contacted me Did anyone have the same issue with the citizenship field? How did you get it fixed? Thanks
Replies
1
Boosts
0
Views
95
Activity
33m
StoreKit 2 returns USD product metadata in TestFlight while the storefront is FRA/EUR
Hello, We would appreciate some guidance regarding an unexpected StoreKit currency result in a TestFlight build. Our iPhone language and region are both set to France. The Sandbox tester is also configured for France, and our subscription products have French availability and pricing configured in App Store Connect. In the TestFlight build we diagnosed, StoreKit reports the current storefront as France with EUR: storefront=FRA/143442/EUR However, all 10 subscription products are returned with USD product metadata: products=10/10 formatCurrencies=USD localeCurrencies=USD error=NONE Example: formatCurrency=USD locale=fr_US_currency_USD localeCurrency=USD display=1,99 $US price=1.99 We first observed this through Flutter's in_app_purchase integration. To determine whether the Flutter plugin was involved, we added a native StoreKit 2 diagnostic to the same TestFlight build. The native result was identical: receipt=sandboxReceipt storefront before=FRA/143442/EUR storefront after=FRA/143442/EUR products=10/10 formatCurrencies=USD localeCurrencies=USD error=NONE The issue appears specific to the TestFlight distribution. When the application is installed directly from the development computer, prices are returned in euros on the same device. We also tested with the regular Media & Purchases account signed out and a French Sandbox tester connected. Once the products loaded successfully, StoreKit still returned USD metadata. In another configuration, the application displayed the USD price while Apple's purchase sheet displayed the price in euros. We are using the price and formatting information returned directly by StoreKit. We do not want to infer the currency from the device region or perform a client-side currency conversion, because StoreKit should remain the authoritative source. Could you please help us understand: Is it expected for Storefront.current to report FRA/EUR while Product.priceFormatStyle.currencyCode, its locale currency, and Product.displayPrice use USD? Could a TestFlight or App Store Connect configuration cause product metadata to use a different currency from the current storefront? Is there another account, availability, pricing or distribution setting that we should verify? Is there a recommended way to refresh or invalidate the product metadata used by a TestFlight installation? We have already filed Feedback Assistant report FB24723329, which is currently under investigation. Thank you very much for any clarification or additional diagnostic steps you can suggest.
Replies
8
Boosts
1
Views
1.2k
Activity
2d
App rejected for missing In-App Purchases (IAP) after they were completely removed from the binary
We are stuck in a review rejection loop regarding In-App Purchases (IAP) and Subscriptions, and we need advice on how to break out of it. The Background: A few weeks ago, we submitted a companion app that included IAPs and auto-renewable subscriptions. The App Review team rejected the build because the app forced users to create an account (using an OTP verification system) to access or view the IAPs, which prevented the reviewers from testing the purchase flow properly. What We Did: Because building a comprehensive guest checkout flow would take too long for our current launch timeline, we decided to completely remove all IAP and subscription features from this version. We did the following: • Removed all IAP/subscription code, UI elements, and references from the source code binary. • Deleted the IAP and subscription products inside App Store Connect (they are no longer attached to the version submission). • Submitted a new build along with a supporting video demonstrating the updated user flow. The Current Loop: App Review continues to reject our new submissions. However, the rejection reason has flipped: they are now claiming they cannot locate the IAP and Subscriptions that were previously there. It seems the review team is stuck looking at old metadata or cached project states, even though the binary and App Store Connect configuration have zero traces of IAP left. Has anyone experienced a similar "ghost" IAP rejection? How can we force App Review to recognize that this is now a strictly free app so we can get out of this rejection loop? Thank you!
Replies
0
Boosts
0
Views
72
Activity
2d
App is rejected due to Guideline 2.1(b) - Performance - App Completeness
We are stuck in a review rejection loop regarding In-App Purchases (IAP) and Subscriptions, and we need advice on how to break out of it. The Background: A few weeks ago, we submitted a companion app that included IAPs and auto-renewable subscriptions. The App Review team rejected the build because the app forced users to create an account (using an OTP verification system) to access or view the IAPs, which prevented the reviewers from testing the purchase flow properly. What We Did: Because building a comprehensive guest checkout flow would take too long for our current launch timeline, we decided to completely remove all IAP and subscription features from this version. We did the following: • Removed all IAP/subscription code, UI elements, and references from the source code binary. • Deleted the IAP and subscription products inside App Store Connect (they are no longer attached to the version submission). • Submitted a new build along with a supporting video demonstrating the updated user flow. The Current Loop: App Review continues to reject our new submissions. However, the rejection reason has flipped: they are now claiming they cannot locate the IAP and Subscriptions that were previously there. It seems the review team is stuck looking at old metadata or cached project states, even though the binary and App Store Connect configuration have zero traces of IAP left. Has anyone experienced a similar "ghost" IAP rejection? How can we force App Review to recognize that this is now a strictly free app so we can get out of this rejection loop? Thank you!
Replies
0
Boosts
0
Views
50
Activity
2d
Purchase with promotional offer doesn't work - no transaction update, no webhook
Many of my purchases are encountering an issue when using a promotional offer (with a promo offer signature included). On the client side, everything works properly, and the purchase triggers the .success() callback. However, there are no updates in either the transaction/renewal info or via webhooks. According to the documentation, at least one of these server notifications should be triggered: OFFER_REDEEMED or SUBSCRIBED/RESUBSCRIBED. My server did not receive any signals. Furthermore, when I fetched the subscription status using the App Store Server API, the offer identifier did not appear in either the renewal info or the transaction info.
Replies
0
Boosts
0
Views
49
Activity
3d
Approved versions show “Ready for Distribution” for 7 days but App Store still serves the old version
My last two approved versions of my app are showing "Ready for Distribution" in App Store Connect, but none of the storefronts lets the user gets the latest update. Here's what happened 0.13.1 (build 49) was approved on 13 October. The release type was “Automatically release after approval”. The state is READY_FOR_SALE with downloadable = true, and no phased release is set. 0.13.2 (build 50) was approved on 18 October with the same release type. It is also Ready for Distribution. The App Store and Apple’s public lookup API (itunes.apple.com/lookup?bundleId=…) still return 0.11.0 (released 3 October, minimum iOS 17.6). I checked the US, IN, GB, CA, AU, DE, SG and AE storefronts. It is not a device issue. iPhones on iOS 18.2 and iOS 27 also show 0.11.0 as the latest version. Impact Our iOS users cannot get the new version. The in-app update prompt sends them to a store page that offers only 0.11.0. We had to turn off open challenge events that need the new version, so users cannot join them. This release introduces new in-app purchases, including an annual plan with a free trial, so the delay also affects our revenue. The app ID is 6760958527. I opened Apple Developer Support case 102996444113 and have not had a reply yet. Has anyone seen a release stay stuck like this for days? Is there anything on the developer side that I should check or try? I would be grateful for any pointers.
Replies
0
Boosts
0
Views
55
Activity
3d
Cannot submit subscription data for review
I am unable to submit updated subscription information for review (details below). Any help with what I might be doing wrong would be appreciated. Background We have had a macOS available on the App Store for about 2 years. I am currently adding new features that require a subscription. The app reviewer rejected the app because the subscription view The auto-renewable subscription promotes the free trial, introductory pricing, or introductory period for the subscription more clearly and conspicuously than the billed amount. I have updated the subscription view in the app, and I updated the screenshots in the metadata at App Store Connect. Unable to submit subscription update for review But now I cannot submit the updated subscription for review, with an error saying Your first auto-renewable subscription myst be submitted with a new app version. I have updated both the app version and build numbers, but I still get the same error. I completed deleted the subscriptions and subscription group and recreated them, but I am still get the same error. The attached image shows the error message. The "Submit for Review" button is disabled The warnings say it needs to be submitted with a new app version I have updated the app's version and build numbers Any idea what I am doing wrong?
Replies
1
Boosts
0
Views
272
Activity
4d
StoreKit External Purchase Link (RU) unavailable because Paid Applications Agreement cannot be accepted
Hello, I am the Account Holder of an Individual Apple Developer Program membership based in the Russian Federation. I am trying to request the StoreKit External Purchase Link Entitlement (RU) for my iOS app. The app itself is free to download. It does not use and is not intended to use Apple In-App Purchase. Premium digital content is provided through a subscription purchased on our external website. Apple currently documents StoreKit External Purchase Link support for Russia. However, when I open the official StoreKit External Purchase Link Entitlement (RU) request form, I cannot submit the request unless I have accepted the latest Paid Applications Agreement. The problem is that the Paid Applications Agreement is not available in my App Store Connect account. Apple Developer Support informed me that, because my Apple Developer Program membership is located in the Russian Federation, I am currently unable to distribute paid applications or applications using In-App Purchases due to applicable sanctions. This creates a circular situation: StoreKit External Purchase Link (RU) is officially available for Russia. The entitlement request form requires the Paid Applications Agreement. My Russian developer account cannot accept the Paid Applications Agreement. Therefore, I cannot submit the entitlement request. My intended purchase flow is: Free iOS app → user account → StoreKit External Purchase Link → external website → digital subscription → access activated in the app. Has anyone with a Russian Apple Developer account successfully obtained the StoreKit External Purchase Link Entitlement recently? Is there an official manual process for Russian developers who cannot accept the Paid Applications Agreement? Can this entitlement request be processed manually by Apple Developer Support or another Apple team? I would especially appreciate guidance from an Apple engineer regarding the officially supported path for this situation. Thank you.
Replies
1
Boosts
2
Views
242
Activity
5d
Rejected 3x under 2.1(b): cannot submit app version and In-App Purchases in the SAME review submission
Our app BandPro (Apple ID 6793207475) has been rejected three times under Guideline 2.1(b) because the In-App Purchase products were "not submitted for review". Everything is ready on our side, but App Store Connect will not let us put the app version and the IAPs into the SAME review submission: New binary uploaded: iOS 1.0 (build 22), attached to the version. 7 IAPs in "Ready to Submit": 4 auto-renewable subscriptions in the group "BandPro Pro" + 3 consumables. All have prices, availability in 175 storefronts, review screenshots and review notes. The app version is locked inside the REJECTED submission ("Unresolved Issues"). The only action available there is "Resubmit to App Review", which sends the version ALONE - exactly what caused the 2nd and 3rd rejections. Adding the IAPs for review creates a SEPARATE draft submission. That draft cannot be sent: it shows "To submit your items for review, add an app version for the selected platform" - but the version cannot be added because it is held by the rejected submission. We replied to App Review in the Resolution Center on Aug 1 explaining this. No response yet. We also saw the recent reply from an App Store Commerce Engineer saying the In-App Purchase submission experience was recently updated and an issue affected some submitted IAPs - our timeline matches that window. Could someone from Apple help us either: (a) attach the 7 ready IAPs to the existing submission so everything is reviewed together, or (b) release the app version from the rejected submission so we can create ONE new submission containing the version + all IAPs? We would like to avoid deleting and recreating the subscription group, since the product IDs are already live in our billing stack and on Google Play. Thank you!
Replies
2
Boosts
1
Views
512
Activity
5d
Sandbox returns invalid product identifier for correctly configured auto-renewable subscription
I’m unable to retrieve a newly configured auto-renewable subscription from the Apple Sandbox environment. Product information Bundle ID: com.reynaga.Imoox Product ID: com.reynaga.Imoox.subscription.monthly Subscription status: Prepare for Submission Price: USD 1.99 per month Introductory offer: one-week free trial Result The app requests the product using StoreKit 2: let products = try await Product.products( for: ["com.reynaga.Imoox.subscription.monthly"] ) The request doesn’t throw an error, but the returned products array is empty. I also tested with SKProductsRequest. The Sandbox response is: Valid products: [] Invalid product identifiers: ["com.reynaga.Imoox.subscription.monthly"] Configuration already verified The Bundle ID and Product ID match App Store Connect exactly. The app uses an explicit App ID, not a wildcard. In-App Purchase is enabled for the App ID. The development certificate and provisioning profile are valid. There is no StoreKit Configuration file active in the Run scheme. The Apple Developer Program membership is active. The Paid Applications Agreement is active. Banking and all required tax forms show an Active status. The subscription has a price, localizations, tax category, and availability. Mexico and the United States are included in its availability. The Sandbox Apple Account belongs to the same developer team. The app is development-signed and installed from Xcode 26.2 on a physical iPhone. I signed out and back into the Sandbox account, deleted and reinstalled the app, restarted the device, and cleaned the Xcode build. The issue has persisted well beyond the documented metadata propagation period. Apple Developer Support reviewed the administrative configuration and referred me to the Developer Forums. According to Apple’s documentation, an In-App Purchase doesn’t require prior App Review approval to work in Sandbox. Could an Apple StoreKit or App Store Connect Commerce engineer verify whether the app-to-subscription catalog association is correctly provisioned in Sandbox and refresh or reprocess it if necessary?
Replies
0
Boosts
0
Views
247
Activity
1w
URGENT Unable to Resolve Guideline 2.3.2 - Performance - Accurate Metadata
I have been rejected twice for the same issue that I have no way of addressing it at all because Apple has to change the status of my subscription for me to make edits. Apple, if you see this, please just change the status for me, I have been trying to contact Apple for weeks now to resolve this super small issue but it's hard to get a hold of them to read the messages! This is the only issue left holding my app back from getting approved. Issue Description We noticed that your promotional image to be displayed on the App Store does not sufficiently represent the associated promoted In-App Purchase and/or win back offer. Specifically, we found the following issue with your promotional image: – Your promotional image is the same as the app’s icon. – You submitted duplicate or identical promotional images for different promoted In-App Purchase products and/or win back offers.
Replies
0
Boosts
0
Views
124
Activity
1w
Advanced Commerce API – 5000000 "Unknown error" when calling Migrate API
We've been approved for the Advanced Commerce API. After receiving the approval, we completed the initial setup requirements (submitted a generic product ID and shared our subscriptions page deep link). When testing the Migrate Subscription to Advanced Commerce endpoint in the sandbox, we receive a 5000000 error. What could be the reason/s for it? There is no information, and the API call we make includes all required parameters. Could it be related to the fact that our new generic product ID status is "Missing Metadata"? Is there a way to understand what the issue is on Apple's side?
Replies
1
Boosts
0
Views
231
Activity
1w
App Store Server API: originalTransactionId stability across expiration and resubscription
DTS recommended that we post this question in the Developer Forums. We would like clarification on the supported production behavior of originalTransactionId in the App Store Server API, particularly after a subscription expires and the customer resubscribes. Our main backend design question is: Can we continue using a stored originalTransactionId to identify and retrieve subsequent subscription activity within the same subscription group, or must we support discovering and associating new identifiers? Integration context Our backend uses: GET /inApps/v1/subscriptions/{transactionId} GET /inApps/v2/history/{transactionId} App and subscription details: Bundle ID: com.lgeha.nuts Subscription group identifier: 22350255 Product A: thinq_g_unlimitedpro Product B: thinq_g_single We use originalTransactionId as a key for subscription records and associate those records with user accounts in our service. We do not use it as an identifier for the Apple Account itself. Please assume the same Apple Account and app, with both products in the same subscription group, using ordinary auto-renewable subscriptions without a special subscription migration. This question concerns the identifiers and lookup behavior exposed to our backend by the App Store Server API. Sandbox observation and scope During sandbox testing, purchase history was cleared, and a new originalTransactionId was subsequently observed. We understand that this observation involved a sandbox history reset and does not establish production behavior. Our questions below concern production behavior without any purchase-history reset. Preservation across subscription lifecycle events For each scenario below, is originalTransactionId guaranteed to remain unchanged for subsequent transactions, or can Apple assign a different value? Automatic renewal of the same product. An upgrade, downgrade, or crossgrade between products A and B while the subscription is active. Turning off automatic renewal, then re-enabling it before expiration. Turning off automatic renewal, allowing the subscription to expire, and later resubscribing to the same product. Turning off automatic renewal for product A, allowing it to expire, and later subscribing to product B within the same subscription group. Scenarios 4 and 5 are our primary concern. We would like to distinguish commonly observed behavior from supported guarantees that a backend can rely on. Conditions for a new identifier after expiration For scenarios 4 and 5, can a new purchase legitimately receive a different originalTransactionId in production despite the Apple Account, app, and subscription group remaining unchanged? If so, what conditions determine this? Does it depend on: Time elapsed since expiration. Billing retry or billing grace-period status or history. Whether the purchase uses StoreKit 1 or StoreKit 2. Whether the customer resubscribes inside the app or through App Store subscription management. Our concern is whether these factors affect the identifiers subsequently returned by the App Store Server API. Stability of an existing transaction Separately from a new purchase receiving a new identifier, if the same transactionId is retrieved at two different times, is its associated originalTransactionId guaranteed to remain unchanged? Can an Apple-supported correction process change that association, or should such a result be treated as an inconsistency and reported through Feedback Assistant? This question concerns the same returned transactionId, rather than a different latest transaction returned by a subsequent status query. We have not confirmed such a change in production. Lookup behavior using a previously stored identifier If resubscription can create a new originalTransactionId, how does that affect each endpoint? For GET /inApps/v1/subscriptions/{transactionId}: Can a request using the previous originalTransactionId return the current status of a later resubscription with a different originalTransactionId, assuming the same Apple Account, app, and subscription group? Or must the backend obtain the new identifier separately? For GET /inApps/v2/history/{transactionId}: Can a request using the previous originalTransactionId return transactions from that later resubscription, assuming all applicable pages are retrieved and no filters exclude those transactions? Please clarify any endpoint-specific guarantees or limitations on using an older identifier to discover subsequent subscription activity. Backend account association If resubscription can create a new identifier, should our backend support multiple originalTransactionId values for one service user within the same subscription group? Is there a documented server-side relationship that links subscriptions with different originalTransactionId values? Alternatively, should that association rely on an application-managed identifier such as appAccountToken, where available? Please clarify any limitations, especially for resubscriptions initiated outside the app. Related discussions We reviewed these discussions as background: Transaction ID Misassociation in IAP Subscription API (https://developer.apple.com/forums/thread/777433) original_transaction_id associated to web_order_line_item_id of auto-renewable subscription changed (https://developer.apple.com/forums/thread/778301) We do not assume that these reports establish supported behavior or share the cause of our sandbox observation. Could Apple clarify the supported preservation or replacement rules, particularly after expiration and resubscription, and point us to documentation describing the behavior a backend can rely on? If investigating a specific inconsistency requires a separate Feedback Assistant report, please indicate which server-side request and response details should be included. Thank you.
Replies
0
Boosts
0
Views
306
Activity
1w
Offer code for existing account users
I have created a set of offer codes for 1 year free for existing app users. The app use to be a one-time download and is now on a subscription model. When existing users try the code, a message indicating that they are not eligible for this offer pops up. I set up the offer code within the subscription group and indicated that it is for existing users. Any step I might be missing?
Replies
1
Boosts
0
Views
313
Activity
1w
I need a iOS dev team for
A Apple Music application model that I submitted for this project account, was accepted, but I’m not a developer or designer. I am a musician/ producer. This will be an exclusive Apple ONLY app. due to the actual features. IOS, MacOS drivers, DAW, wallet, graphics, NFT’s. designer developers, if you love building master code LETS GO….
Replies
1
Boosts
0
Views
135
Activity
1w
Apple developer propgram is not getting approved from a long time
I enrolled in the developer program on 29 September still account showing pending status in this frustration i also made payment at another account that one is also showing nothing right now. please resolve this issue. my app launch is getting delayed Order ID:MQ5T295Q31 Document:786197899875
Replies
0
Boosts
0
Views
349
Activity
1w
First IAPs stuck in draft ("add an app version") while version 1.0 is in rejected submission
I created my in-app purchases (one non-consumable, plus a subscription group with two subscriptions). All have review screenshots and show 'Ready for Review.' But I can't add them to my app version for review. My version 1.0 was rejected under Guideline 2.1(b) because the in-app purchases weren't included. The version page shows 'Update Review' and has no 'In-App Purchases and Subscriptions' section. When I click 'Add for Review' on an in-app purchase, it goes into a separate draft that says 'Unable to Submit for Review: To submit your items for review, add an app version for the selected platform.' How do I get my in-app purchases and my app version into the same submission? Should I remove version 1.0 from the rejected submission first?
Replies
3
Boosts
0
Views
369
Activity
1w
App stuck in "Waiting for Review" since Oct 5, hasn't entered "In Review" yet
Our iOS app update has been in "Waiting for Review" since Oct 5. On Oct 3, promptly after initial App Review submission on Oct 2, App Review sent an automated message asking us to confirm the intended prices of several in-app purchase products (subscriptions). We confirmed (via sending 2 messages back) within a few hours of the automated message on Oct 3. Early last week, not understanding if I should resubmit the app for review or not (since I had not heard anything from Apple yet), I waited 48 hours and submitted the app for review on Oct 5th morning. I still have not heard anything since (almost a full calendar week). We've opened a Developer Support case (102989025859) on Oct 7 and submitted an expedite request (on Oct 9). Is there anything else we should be doing, or is a delay like this expected after an automated pricing verification? Submission ID: 7919390f-9e10-4b16-84bc-aa74c9f40300 Thank you for any guidance or help. Best Regards, DH
Replies
0
Boosts
0
Views
198
Activity
1w