JUST ENDED
|

StoreKit, In-App Purchase, and App Store Server API Q&A

Connect with Apple engineers in the StoreKit, In-App Purchase, and App Store Server API Q&A on the Apple Developer Forums.

Post

Replies

Boosts

Views

Activity

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
33
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
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
33
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