StoreKit

RSS for tag

Support in-app purchases and interactions with the App Store using StoreKit.

StoreKit Documentation

Posts under StoreKit subtopic

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
103
1w
StoreKit 2 currentEntitlements persists after Sandbox Purchase History reset in TestFlight
I am testing a StoreKit 2 non-consumable IAP through TestFlight. Product ID: com.metabolla.plus.lifetime Type: Non-Consumable Environment: TestFlight / Sandbox Transaction.currentEntitlements keeps returning an active entitlement for this product even after: configuring a Sandbox Apple Account clearing Sandbox Purchase History reinstalling the app rebooting the device Important detail: the first TestFlight purchase was completed before configuring the Sandbox Apple Account on the device. If I temporarily change the Product ID in code, the entitlement disappears, so the issue seems tied to the original Product ID/account/receipt. Question: Can a non-consumable TestFlight purchase made before Sandbox Apple Account configuration remain associated with the original TestFlight/Apple ID identity? Is there any supported way to clear this entitlement for testing?
3
0
327
4h
AppTransaction.shared throws StoreKitError code=2 in macOS TestFlight while deviceVerificationID is available
I am implementing device authentication for a macOS app. Our iOS app uses App Attest, but App Attest is not available on macOS, so we are evaluating StoreKit's AppTransaction plus AppStore.deviceVerificationID as the macOS equivalent signal. The issue: in a macOS app installed through TestFlight, AppStore.deviceVerificationID is available, but AppTransaction.shared throws StoreKitError code=2. I reproduced this in a focused standalone macOS test app with no backend and no custom dependencies. Environment: Platform: macOS Distribution: TestFlight App Store Connect app ID: 6769568350 Bundle ID: com.soundcity.AppTransactionProbe App version: 1.0 Build: 1 Observed output from the TestFlight-installed app: Bundle ID: com.soundcity.AppTransactionProbe App version: 1.0 Build: 1 deviceVerificationID available: true deviceVerificationID prefix: CA91ED5D... AppTransaction.shared threw error: StoreKitError; domain=StoreKit.StoreKitError; code=2 The relevant code path is essentially: import StoreKit let deviceVerificationID = try? AppStore.deviceVerificationID let appTransaction = try await AppTransaction.shared In the TestFlight-installed build: AppStore.deviceVerificationID succeeds. AppTransaction.shared throws StoreKitError code=2. Questions: Is AppTransaction.shared expected to work for macOS apps distributed through TestFlight? If yes, what does StoreKitError code=2 indicate in this context, and what setup might be missing? If no, is there an Apple-supported way to obtain an AppTransaction JWS, or equivalent signed App Store/TestFlight app-install assertion, for macOS TestFlight builds? For macOS apps that need a device-bound trust signal comparable to iOS App Attest, is AppStore.deviceVerificationID intended to be used without AppTransaction.shared, or should these APIs be used together? I have a focused Xcode test project that demonstrates the issue and can share it if helpful.
4
0
268
19h
StoreKit purchase cancelled after app backgrounding during bank authentication (3D Secure)
Hello, We are experiencing an issue with StoreKit purchases on iOS. Some users are required by their bank to complete an additional authentication step (3D Secure / banking app validation) during an in-app purchase subscription flow. The purchase starts correctly and StoreKit displays the purchase sheet. When the user temporarily leaves the app to validate the payment in their banking application and then returns, StoreKit eventually reports the purchase as cancelled. No transaction is delivered to StoreKit observers, no entitlement becomes active, and restoring purchases does not find any completed transaction. Steps to reproduce: Open the app. Start an auto-renewable subscription purchase using StoreKit. Authenticate with Apple ID if requested. When the bank authentication screen appears, leave the app and open the banking application. Approve the payment in the banking application. Return to the original app. Observed result: StoreKit reports the purchase as cancelled and no transaction is received. Expected result: The transaction should continue processing after bank authentication and eventually complete successfully. Environment: Xcode 26.3 (17C529) macOS Tahoe 26.3 iOS 26.2.1 Physical iPhone device Question: Is this expected StoreKit behavior when a user leaves the app for external banking authentication, or is there a recommended StoreKit integration pattern that should allow the purchase flow to continue successfully? Thank you.
4
0
97
20h
Sandbox testing - Clear Purchase History
Hi, Overview I have an app for which I have created a sandbox account. When I try to clear purchase history it doesn't work, it still shows the in-app purchase items (non-consumable in-app purchases) as purchased. I have tied tried the following ways, but none of them work. Any help on this would be much appreciated! Attempt 1: Go to https://appstoreconnect.apple.com/ Users and Access > Sandbox Check sandbox account > Tap Clear Purchase History button Attempt 2: Go to the iPhone > Settings > Developer > Sandbox Apple Account Tap on account > Manage > Clear Purchase History Attempt 3: Sign out of Sandbox account and sign back in Attempt 4: Delete app and re-run app from Xcode
2
2
104
22h
Advanced Commerce API SKU verification
Hello! In our app we use Advanced Commerce API with generic consumable products. Does Apple validate SKU of payment request? So if user have several pending purchase requests with same SKU (inside item) will Apple charge only for the latest one or all of pending requests even though SKU is the same?
7
0
74
1d
App Download Campaign Info and Other Sources Info
Is there any way to get the Campaign Token and the app sources, website sources, sources where the user is downloaded the app inside app using any APIs or Can we add this information along with the App Transaction or via some new API? This will help us to track the actual usage inside the app for each campaign and where from the app is downloaded (source) and position our app experiments better. We do have one for Search Attribution similarly we can add for this it will be more useful for us developers
1
0
38
1d
Scoping App Attest keys to an appTransactionID
Hi StoreKit team, I posted a question in the App Attest forum yesterday that is related to StoreKit [1]. The engineers there recommended I post here. I'd like to use StoreKit 2's appTransactionID [2] as an ID to tie App Attest keys to anonymous users (that is, users that I don't enforce signup/login of). The design I'm thinking of is basically: Get the appTransactionID at launch Look in keychain to see if I already have an attestation key for this appTransactionID (treating keychain as a k/v store where the key is appTransactionID) If yes, use that key for ongoing assertions as requests are made to my backend Else, go through the initial process of key generation and attestation Do you see any gotchas with using appTransactionID in this way? From the docs, it looks to be exactly what I need: The App Store generates a single, globally unique appTransactionID for each Apple Account that downloads your app and for each family group member for apps that support Family Sharing. This value remains the same for the same Apple Account and app if the customer redownloads the app on any device, receives a refund, repurchases the app, or changes the storefront. For apps that support Family Sharing, the appTransactionID is unique for each family group member. But I'm curious if this application of using appTransactionID as the key identifier to pull values out of keychain raises any flags for you. Thank you, Lou [1] https://developer.apple.com/forums/thread/831468 [2] https://developer.apple.com/documentation/storekit/apptransaction/apptransactionid
1
0
39
1d
Testing purchases Advanced Commerce API
Hello! Is it possible to test in Sandbox the flow of pending purchase request changes to succeed for Advanced Commerce API? As StoreKit configuration file can not be used with Advanced Commerce API, how to test for example flow "Ask to Buy" when child account ask parent account to buy generic consumable product? And also does Advanced Commerce API supports feature "Ask to Buy"?
2
0
56
1d
Requirement of Promotional Offer Signature
What is the requirement to generate promotional offer signature and use it for applying promotional offers to the purchase. We can directly pass the offer information to the purchase right? We don't understand what is the real purpose for this. If it's for any security reason and make sure to user doesn't misuse this offer then how can the user apply this offer if this app code are already compiled and secured with Apple Devices.
3
0
53
1d
Proceeds, Tax and Commission details in Transaction Info
We need the clear details about the how much tax is charged to the user and commission for the transaction and how much proceeds will be processed for that particular transaction for the proper reporting and analytics from our end. It is currently not achievable easily. We do have financial reports information but we can't map those records to the transactions in StoreKit so this makes hard for us to track how much we will get exactly from each subscription. We can't backtrace the financial reports to actual subscription transaction information.
1
0
33
1d
Volume Purchasing Seat Choose Option from App
Is it possible for the app to pass on how much seats we need to allot in the subscription directly. Also, can we avoid the child transactions to the other users and keep one single transaction with additional information of total number seats purchased ? Some users might not have iPhone or any other apple device so how we can handle that for those users.
1
0
30
1d
Refund option in App Store Server API
We're developing B2B products and have In-App Purchase Subscriptions for our customers. I know there is a REFUND CONSUMPTION_REQUEST webhook and send consumption information specially for the refund scenario. But our business customers are frustrated that to understand that we're unable to initiate refund or provide refund for their app store subscription. They argue with us about we paid you and you need to provide us the refund. Why we need to contact apple for this. So it will be better if we get an option to refund the subscription transactions from our end as well with addition to existing refund request. So that we can avoid these kind of scenarios. Some customers go extra mile by going in to Social Media and damage our product reputation due to this. Kindly check and provide an refund option to the developers. Also, is there any reason why it's still not provided to the users?
1
0
29
1d
Request for Escalation – Non-Reproducible StoreKit Failure During App Review
Dear Apple Developer Support and App Review Team, I am contacting you regarding a recurring issue that has prevented my application from successfully passing App Review despite extensive testing and multiple attempts to investigate and resolve the problem. The application has been rejected under Guideline 2.1 – Performance because the subscription plans reportedly fail to load during review. According to the review notes, the In-App Purchase product list appears empty on the review device, preventing the paywall from displaying correctly. The main challenge is that this behavior cannot be reproduced outside of the App Review environment. The exact same binary reviewed by App Review has been thoroughly tested through TestFlight on multiple physical iPhone and iPad devices using multiple Sandbox tester accounts, different network conditions, fresh installations, and repeated purchase cycles. In every test, StoreKit successfully retrieves the configured products, RevenueCat offerings load correctly, localized pricing is displayed properly, subscription plans appear in the paywall, purchases complete successfully, and Restore Purchases functions as expected. To eliminate possible configuration issues, I have repeatedly reviewed my App Store Connect setup. All subscription products are attached to the submitted app version, product identifiers exactly match those configured in the application, all products are marked as Cleared for Sale, the Paid Applications Agreement is active, banking and tax information are complete, pricing information is active, and localization settings are properly configured. I have also implemented additional safeguards within the application, including retry logic for product retrieval, fallback states for empty offerings, protection against infinite loading scenarios, and enhanced RevenueCat and StoreKit logging. Despite these efforts, App Review continues to report that no products are being returned during review. After extensive research, I discovered an Apple Developer Forum discussion describing behavior that appears nearly identical to what I am experiencing: https://developer.apple.com/forums/thread/827016 Based on all currently available evidence, the issue appears to occur exclusively within the App Review sandbox environment. The exact same build continues to function correctly in TestFlight immediately before and after submission, making the issue impossible for me to reproduce locally. Unfortunately, this has placed me in a very difficult position as a developer. I am fully committed to fixing any issue that exists within my application. However, I can only resolve problems that I can observe, investigate, and reproduce. At present, I have no access to logs, diagnostics, StoreKit error details, or any information that would explain why products are not being returned during review. Without that information, I have no practical way to determine what additional changes are required. I would also like to note that I have already submitted a Code-Level Support request regarding this issue. Despite providing detailed technical information, I have not received any feedback or guidance from that request. At this point, I have exhausted every available support channel, including App Review messages, Developer Support, the Apple Developer Forums, an appeal, and a Code-Level Support request. Despite my continued efforts, I still do not have the technical details necessary to identify the root cause of the problem. I respectfully request that this matter be escalated to the appropriate team and that my previously submitted Code-Level Support request be reviewed. Any available diagnostic information, StoreKit logs, product retrieval details, or guidance on reproducing the issue would be greatly appreciated. Thank you for your time and consideration. I sincerely appreciate any assistance you can provide in helping investigate this issue and move the review process forward. Case ID: 20423744 Kind regards, Mert Akgün
1
0
42
1d
Volume Purchasing vs Group Purchases for IAP
From what I understand, Volume Purchasing is coming this fall and Group Purchases will arrive later this year for subscriptions. What’s the difference between these? Will either support non-consumable in-app purchases? I really don’t want to require recurring payments nor build a paid duplicate version of my app, seems the freemium business model is important to support going forward. Thanks!
1
0
53
1d
SKTestSession configurations broken?
SKTestSession configurations seem to have been broken starting in Xcode 26.3. The release notes for iOS 26.5 indicate that it was supposed to be fixed there, but I still haven't been able to get it to work. Is there something that has changed recently about how SKTestSession configurations need to be used?
1
0
59
1d
StoreKit Product Retrieval Issue During App Review
Hello, We are contacting you regarding an issue we are currently experiencing during the App Review process related to In-App Purchases and StoreKit product retrieval. After extensive internal testing and investigation, we believe the behavior we are seeing is identical to the issue discussed in the following Apple Developer Forum thread: https://developer.apple.com/forums/thread/827016 Our application was rejected under Guideline 2.1 - Performance because the subscription plans reportedly failed to load during review. According to the review notes, the In-App Purchase product list appeared empty in the review environment, which prevented the paywall from loading correctly. We would like to provide additional technical context because, despite significant testing efforts on our side, we have been unable to reproduce this behavior outside of the App Review environment. The exact same binary that was reviewed by App Review has been thoroughly tested by us through TestFlight on multiple physical devices, including iPhone and iPad devices, using multiple Sandbox tester accounts and different network conditions. In all of our tests, the subscription system functions correctly and consistently. Specifically, we verified that: StoreKit successfully retrieves all configured subscription products RevenueCat offerings load correctly without timeout or empty states Localized pricing information is displayed properly Subscription packages appear correctly in the paywall UI Purchase flows complete successfully Restore purchases functionality works correctly Products are returned both on cold launch and repeated application launches The issue does not occur intermittently in TestFlight or Sandbox testing on our side We also carefully reviewed our App Store Connect configuration and verified the following items multiple times: All In-App Purchase subscriptions are attached to the submitted app version Product identifiers used in the application code exactly match the identifiers configured in App Store Connect All products are marked as “Cleared for Sale” Paid Applications Agreement has been accepted and remains active Tax and banking information are complete and active Subscription localization settings are configured properly Pricing information is active and visible The products are available in the storefronts being tested The submitted binary is identical to the binary tested successfully through TestFlight Additionally, we implemented defensive handling in the application to minimize the impact of temporary StoreKit failures. The application now includes: Retry logic for offerings retrieval Graceful fallback handling for empty offerings Protection against infinite loading states Additional RevenueCat and StoreKit logging UI fallbacks when products temporarily fail to load Despite these safeguards, the review feedback still indicates that the products are not being returned in the App Review environment. At this point, because the issue cannot be reproduced externally and only appears during App Review, we suspect there may be an intermittent or environment-specific issue affecting StoreKit product retrieval in the review sandbox environment. One important detail is that the exact same build consistently works in TestFlight immediately before and after submission. This makes the behavior particularly difficult for us to diagnose because there appears to be no configuration difference between our successful tests and the App Review scenario. We also understand from Apple documentation and previous App Review communication that In-App Purchases are tested within an Apple-provided sandbox environment. Based on the evidence currently available to us, the failure appears to occur specifically within that review sandbox process rather than within the application logic itself. If possible, we would greatly appreciate assistance with the following: Verifying whether StoreKit product retrieval is functioning correctly in the App Review sandbox environment Confirming whether the review device successfully established communication with App Store sandbox services Providing any available diagnostic logs related to the failed product request Confirming whether the product identifiers were visible to StoreKit during review Sharing any guidance on how we may reproduce the App Review behavior locally Clarifying whether there are known intermittent issues affecting StoreKit product loading during App Review We are fully committed to resolving the issue and ensuring complete compliance with App Store requirements. However, because the issue currently appears environment-specific and non-reproducible from our side, we are struggling to determine what additional changes are necessary. If there are any additional diagnostics, logging methods, StoreKit verification steps, or App Review recommendations you would like us to implement, we would be happy to do so immediately. Thank you very much for your assistance, support, and time. We sincerely appreciate your help in investigating this issue. Best regards, Mert Akgün
2
1
166
1d
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
103
Activity
1w
StoreKit 2 currentEntitlements persists after Sandbox Purchase History reset in TestFlight
I am testing a StoreKit 2 non-consumable IAP through TestFlight. Product ID: com.metabolla.plus.lifetime Type: Non-Consumable Environment: TestFlight / Sandbox Transaction.currentEntitlements keeps returning an active entitlement for this product even after: configuring a Sandbox Apple Account clearing Sandbox Purchase History reinstalling the app rebooting the device Important detail: the first TestFlight purchase was completed before configuring the Sandbox Apple Account on the device. If I temporarily change the Product ID in code, the entitlement disappears, so the issue seems tied to the original Product ID/account/receipt. Question: Can a non-consumable TestFlight purchase made before Sandbox Apple Account configuration remain associated with the original TestFlight/Apple ID identity? Is there any supported way to clear this entitlement for testing?
Replies
3
Boosts
0
Views
327
Activity
4h
AppTransaction.shared throws StoreKitError code=2 in macOS TestFlight while deviceVerificationID is available
I am implementing device authentication for a macOS app. Our iOS app uses App Attest, but App Attest is not available on macOS, so we are evaluating StoreKit's AppTransaction plus AppStore.deviceVerificationID as the macOS equivalent signal. The issue: in a macOS app installed through TestFlight, AppStore.deviceVerificationID is available, but AppTransaction.shared throws StoreKitError code=2. I reproduced this in a focused standalone macOS test app with no backend and no custom dependencies. Environment: Platform: macOS Distribution: TestFlight App Store Connect app ID: 6769568350 Bundle ID: com.soundcity.AppTransactionProbe App version: 1.0 Build: 1 Observed output from the TestFlight-installed app: Bundle ID: com.soundcity.AppTransactionProbe App version: 1.0 Build: 1 deviceVerificationID available: true deviceVerificationID prefix: CA91ED5D... AppTransaction.shared threw error: StoreKitError; domain=StoreKit.StoreKitError; code=2 The relevant code path is essentially: import StoreKit let deviceVerificationID = try? AppStore.deviceVerificationID let appTransaction = try await AppTransaction.shared In the TestFlight-installed build: AppStore.deviceVerificationID succeeds. AppTransaction.shared throws StoreKitError code=2. Questions: Is AppTransaction.shared expected to work for macOS apps distributed through TestFlight? If yes, what does StoreKitError code=2 indicate in this context, and what setup might be missing? If no, is there an Apple-supported way to obtain an AppTransaction JWS, or equivalent signed App Store/TestFlight app-install assertion, for macOS TestFlight builds? For macOS apps that need a device-bound trust signal comparable to iOS App Attest, is AppStore.deviceVerificationID intended to be used without AppTransaction.shared, or should these APIs be used together? I have a focused Xcode test project that demonstrates the issue and can share it if helpful.
Replies
4
Boosts
0
Views
268
Activity
19h
StoreKit purchase cancelled after app backgrounding during bank authentication (3D Secure)
Hello, We are experiencing an issue with StoreKit purchases on iOS. Some users are required by their bank to complete an additional authentication step (3D Secure / banking app validation) during an in-app purchase subscription flow. The purchase starts correctly and StoreKit displays the purchase sheet. When the user temporarily leaves the app to validate the payment in their banking application and then returns, StoreKit eventually reports the purchase as cancelled. No transaction is delivered to StoreKit observers, no entitlement becomes active, and restoring purchases does not find any completed transaction. Steps to reproduce: Open the app. Start an auto-renewable subscription purchase using StoreKit. Authenticate with Apple ID if requested. When the bank authentication screen appears, leave the app and open the banking application. Approve the payment in the banking application. Return to the original app. Observed result: StoreKit reports the purchase as cancelled and no transaction is received. Expected result: The transaction should continue processing after bank authentication and eventually complete successfully. Environment: Xcode 26.3 (17C529) macOS Tahoe 26.3 iOS 26.2.1 Physical iPhone device Question: Is this expected StoreKit behavior when a user leaves the app for external banking authentication, or is there a recommended StoreKit integration pattern that should allow the purchase flow to continue successfully? Thank you.
Replies
4
Boosts
0
Views
97
Activity
20h
Sandbox testing - Clear Purchase History
Hi, Overview I have an app for which I have created a sandbox account. When I try to clear purchase history it doesn't work, it still shows the in-app purchase items (non-consumable in-app purchases) as purchased. I have tied tried the following ways, but none of them work. Any help on this would be much appreciated! Attempt 1: Go to https://appstoreconnect.apple.com/ Users and Access > Sandbox Check sandbox account > Tap Clear Purchase History button Attempt 2: Go to the iPhone > Settings > Developer > Sandbox Apple Account Tap on account > Manage > Clear Purchase History Attempt 3: Sign out of Sandbox account and sign back in Attempt 4: Delete app and re-run app from Xcode
Replies
2
Boosts
2
Views
104
Activity
22h
Advanced Commerce API SKU verification
Hello! In our app we use Advanced Commerce API with generic consumable products. Does Apple validate SKU of payment request? So if user have several pending purchase requests with same SKU (inside item) will Apple charge only for the latest one or all of pending requests even though SKU is the same?
Replies
7
Boosts
0
Views
74
Activity
1d
App Download Campaign Info and Other Sources Info
Is there any way to get the Campaign Token and the app sources, website sources, sources where the user is downloaded the app inside app using any APIs or Can we add this information along with the App Transaction or via some new API? This will help us to track the actual usage inside the app for each campaign and where from the app is downloaded (source) and position our app experiments better. We do have one for Search Attribution similarly we can add for this it will be more useful for us developers
Replies
1
Boosts
0
Views
38
Activity
1d
Scoping App Attest keys to an appTransactionID
Hi StoreKit team, I posted a question in the App Attest forum yesterday that is related to StoreKit [1]. The engineers there recommended I post here. I'd like to use StoreKit 2's appTransactionID [2] as an ID to tie App Attest keys to anonymous users (that is, users that I don't enforce signup/login of). The design I'm thinking of is basically: Get the appTransactionID at launch Look in keychain to see if I already have an attestation key for this appTransactionID (treating keychain as a k/v store where the key is appTransactionID) If yes, use that key for ongoing assertions as requests are made to my backend Else, go through the initial process of key generation and attestation Do you see any gotchas with using appTransactionID in this way? From the docs, it looks to be exactly what I need: The App Store generates a single, globally unique appTransactionID for each Apple Account that downloads your app and for each family group member for apps that support Family Sharing. This value remains the same for the same Apple Account and app if the customer redownloads the app on any device, receives a refund, repurchases the app, or changes the storefront. For apps that support Family Sharing, the appTransactionID is unique for each family group member. But I'm curious if this application of using appTransactionID as the key identifier to pull values out of keychain raises any flags for you. Thank you, Lou [1] https://developer.apple.com/forums/thread/831468 [2] https://developer.apple.com/documentation/storekit/apptransaction/apptransactionid
Replies
1
Boosts
0
Views
39
Activity
1d
Testing purchases Advanced Commerce API
Hello! Is it possible to test in Sandbox the flow of pending purchase request changes to succeed for Advanced Commerce API? As StoreKit configuration file can not be used with Advanced Commerce API, how to test for example flow "Ask to Buy" when child account ask parent account to buy generic consumable product? And also does Advanced Commerce API supports feature "Ask to Buy"?
Replies
2
Boosts
0
Views
56
Activity
1d
Requirement of Promotional Offer Signature
What is the requirement to generate promotional offer signature and use it for applying promotional offers to the purchase. We can directly pass the offer information to the purchase right? We don't understand what is the real purpose for this. If it's for any security reason and make sure to user doesn't misuse this offer then how can the user apply this offer if this app code are already compiled and secured with Apple Devices.
Replies
3
Boosts
0
Views
53
Activity
1d
JWT authentication token requires actual bundle id of app
Can we avoid the bundle id to be pass on to generating access token? We're an large enterprise where we handle the multiple apps' in-app purchases in a common single platform. Is it possible to skip this id for the access token generation and just use private key & issuer id? Why this bundle id is required?
Replies
1
Boosts
0
Views
30
Activity
1d
Promo Code and Offers
I am testing my app with storekit2 and all data configured in alppstoreconnectr but i would like to know how to test on simulation and configure Promo code and OffersThanks
Replies
5
Boosts
0
Views
89
Activity
1d
Proceeds, Tax and Commission details in Transaction Info
We need the clear details about the how much tax is charged to the user and commission for the transaction and how much proceeds will be processed for that particular transaction for the proper reporting and analytics from our end. It is currently not achievable easily. We do have financial reports information but we can't map those records to the transactions in StoreKit so this makes hard for us to track how much we will get exactly from each subscription. We can't backtrace the financial reports to actual subscription transaction information.
Replies
1
Boosts
0
Views
33
Activity
1d
Receipt validation failure with iOS27
Hi, I do on-device receipt validation with Storekit1 in my app. It seems to be failing in the iOS27 build, at least on the simulator. Did something change here for iOS27?
Replies
2
Boosts
0
Views
44
Activity
1d
Volume Purchasing Seat Choose Option from App
Is it possible for the app to pass on how much seats we need to allot in the subscription directly. Also, can we avoid the child transactions to the other users and keep one single transaction with additional information of total number seats purchased ? Some users might not have iPhone or any other apple device so how we can handle that for those users.
Replies
1
Boosts
0
Views
30
Activity
1d
Original Price and Offer Price in Transaction Info
Can you add actual price of the plan along with the discounted price that user has been charged? This will help us to calculate how much discount is provided to the user clearly.
Replies
1
Boosts
0
Views
39
Activity
1d
Refund option in App Store Server API
We're developing B2B products and have In-App Purchase Subscriptions for our customers. I know there is a REFUND CONSUMPTION_REQUEST webhook and send consumption information specially for the refund scenario. But our business customers are frustrated that to understand that we're unable to initiate refund or provide refund for their app store subscription. They argue with us about we paid you and you need to provide us the refund. Why we need to contact apple for this. So it will be better if we get an option to refund the subscription transactions from our end as well with addition to existing refund request. So that we can avoid these kind of scenarios. Some customers go extra mile by going in to Social Media and damage our product reputation due to this. Kindly check and provide an refund option to the developers. Also, is there any reason why it's still not provided to the users?
Replies
1
Boosts
0
Views
29
Activity
1d
Request for Escalation – Non-Reproducible StoreKit Failure During App Review
Dear Apple Developer Support and App Review Team, I am contacting you regarding a recurring issue that has prevented my application from successfully passing App Review despite extensive testing and multiple attempts to investigate and resolve the problem. The application has been rejected under Guideline 2.1 – Performance because the subscription plans reportedly fail to load during review. According to the review notes, the In-App Purchase product list appears empty on the review device, preventing the paywall from displaying correctly. The main challenge is that this behavior cannot be reproduced outside of the App Review environment. The exact same binary reviewed by App Review has been thoroughly tested through TestFlight on multiple physical iPhone and iPad devices using multiple Sandbox tester accounts, different network conditions, fresh installations, and repeated purchase cycles. In every test, StoreKit successfully retrieves the configured products, RevenueCat offerings load correctly, localized pricing is displayed properly, subscription plans appear in the paywall, purchases complete successfully, and Restore Purchases functions as expected. To eliminate possible configuration issues, I have repeatedly reviewed my App Store Connect setup. All subscription products are attached to the submitted app version, product identifiers exactly match those configured in the application, all products are marked as Cleared for Sale, the Paid Applications Agreement is active, banking and tax information are complete, pricing information is active, and localization settings are properly configured. I have also implemented additional safeguards within the application, including retry logic for product retrieval, fallback states for empty offerings, protection against infinite loading scenarios, and enhanced RevenueCat and StoreKit logging. Despite these efforts, App Review continues to report that no products are being returned during review. After extensive research, I discovered an Apple Developer Forum discussion describing behavior that appears nearly identical to what I am experiencing: https://developer.apple.com/forums/thread/827016 Based on all currently available evidence, the issue appears to occur exclusively within the App Review sandbox environment. The exact same build continues to function correctly in TestFlight immediately before and after submission, making the issue impossible for me to reproduce locally. Unfortunately, this has placed me in a very difficult position as a developer. I am fully committed to fixing any issue that exists within my application. However, I can only resolve problems that I can observe, investigate, and reproduce. At present, I have no access to logs, diagnostics, StoreKit error details, or any information that would explain why products are not being returned during review. Without that information, I have no practical way to determine what additional changes are required. I would also like to note that I have already submitted a Code-Level Support request regarding this issue. Despite providing detailed technical information, I have not received any feedback or guidance from that request. At this point, I have exhausted every available support channel, including App Review messages, Developer Support, the Apple Developer Forums, an appeal, and a Code-Level Support request. Despite my continued efforts, I still do not have the technical details necessary to identify the root cause of the problem. I respectfully request that this matter be escalated to the appropriate team and that my previously submitted Code-Level Support request be reviewed. Any available diagnostic information, StoreKit logs, product retrieval details, or guidance on reproducing the issue would be greatly appreciated. Thank you for your time and consideration. I sincerely appreciate any assistance you can provide in helping investigate this issue and move the review process forward. Case ID: 20423744 Kind regards, Mert Akgün
Replies
1
Boosts
0
Views
42
Activity
1d
Volume Purchasing vs Group Purchases for IAP
From what I understand, Volume Purchasing is coming this fall and Group Purchases will arrive later this year for subscriptions. What’s the difference between these? Will either support non-consumable in-app purchases? I really don’t want to require recurring payments nor build a paid duplicate version of my app, seems the freemium business model is important to support going forward. Thanks!
Replies
1
Boosts
0
Views
53
Activity
1d
SKTestSession configurations broken?
SKTestSession configurations seem to have been broken starting in Xcode 26.3. The release notes for iOS 26.5 indicate that it was supposed to be fixed there, but I still haven't been able to get it to work. Is there something that has changed recently about how SKTestSession configurations need to be used?
Replies
1
Boosts
0
Views
59
Activity
1d
StoreKit Product Retrieval Issue During App Review
Hello, We are contacting you regarding an issue we are currently experiencing during the App Review process related to In-App Purchases and StoreKit product retrieval. After extensive internal testing and investigation, we believe the behavior we are seeing is identical to the issue discussed in the following Apple Developer Forum thread: https://developer.apple.com/forums/thread/827016 Our application was rejected under Guideline 2.1 - Performance because the subscription plans reportedly failed to load during review. According to the review notes, the In-App Purchase product list appeared empty in the review environment, which prevented the paywall from loading correctly. We would like to provide additional technical context because, despite significant testing efforts on our side, we have been unable to reproduce this behavior outside of the App Review environment. The exact same binary that was reviewed by App Review has been thoroughly tested by us through TestFlight on multiple physical devices, including iPhone and iPad devices, using multiple Sandbox tester accounts and different network conditions. In all of our tests, the subscription system functions correctly and consistently. Specifically, we verified that: StoreKit successfully retrieves all configured subscription products RevenueCat offerings load correctly without timeout or empty states Localized pricing information is displayed properly Subscription packages appear correctly in the paywall UI Purchase flows complete successfully Restore purchases functionality works correctly Products are returned both on cold launch and repeated application launches The issue does not occur intermittently in TestFlight or Sandbox testing on our side We also carefully reviewed our App Store Connect configuration and verified the following items multiple times: All In-App Purchase subscriptions are attached to the submitted app version Product identifiers used in the application code exactly match the identifiers configured in App Store Connect All products are marked as “Cleared for Sale” Paid Applications Agreement has been accepted and remains active Tax and banking information are complete and active Subscription localization settings are configured properly Pricing information is active and visible The products are available in the storefronts being tested The submitted binary is identical to the binary tested successfully through TestFlight Additionally, we implemented defensive handling in the application to minimize the impact of temporary StoreKit failures. The application now includes: Retry logic for offerings retrieval Graceful fallback handling for empty offerings Protection against infinite loading states Additional RevenueCat and StoreKit logging UI fallbacks when products temporarily fail to load Despite these safeguards, the review feedback still indicates that the products are not being returned in the App Review environment. At this point, because the issue cannot be reproduced externally and only appears during App Review, we suspect there may be an intermittent or environment-specific issue affecting StoreKit product retrieval in the review sandbox environment. One important detail is that the exact same build consistently works in TestFlight immediately before and after submission. This makes the behavior particularly difficult for us to diagnose because there appears to be no configuration difference between our successful tests and the App Review scenario. We also understand from Apple documentation and previous App Review communication that In-App Purchases are tested within an Apple-provided sandbox environment. Based on the evidence currently available to us, the failure appears to occur specifically within that review sandbox process rather than within the application logic itself. If possible, we would greatly appreciate assistance with the following: Verifying whether StoreKit product retrieval is functioning correctly in the App Review sandbox environment Confirming whether the review device successfully established communication with App Store sandbox services Providing any available diagnostic logs related to the failed product request Confirming whether the product identifiers were visible to StoreKit during review Sharing any guidance on how we may reproduce the App Review behavior locally Clarifying whether there are known intermittent issues affecting StoreKit product loading during App Review We are fully committed to resolving the issue and ensuring complete compliance with App Store requirements. However, because the issue currently appears environment-specific and non-reproducible from our side, we are struggling to determine what additional changes are necessary. If there are any additional diagnostics, logging methods, StoreKit verification steps, or App Review recommendations you would like us to implement, we would be happy to do so immediately. Thank you very much for your assistance, support, and time. We sincerely appreciate your help in investigating this issue. Best regards, Mert Akgün
Replies
2
Boosts
1
Views
166
Activity
1d