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

URGENT: Developer Program Expired – No Renewal Option – App Removed from App Store
Hello, We are currently experiencing a serious issue with our Apple Developer Program membership. Our membership has expired, but there is no option to renew the membership anywhere: Not on the Apple Developer website Not in the Apple Developer app Attempting to start enrollment again redirects to the main page Account details: Team ID: RZR56J4QQ8 Organization: E. V. I. ELECTRIC CARS LTD Role: Account Holder Because of this issue: All App Store agreements show as expired Our app has been removed from the App Store We are currently unable to restore service to users We already opened a Developer Support ticket about a week ago, but have not received any response. This is causing business impact, and we cannot find any way to trigger the renewal flow. Has anyone experienced this issue before, where the Renew Membership button does not appear at all? If anyone from Apple Developer Support / Apple Staff is able to assist or escalate this issue, it would be greatly appreciated. Thank you.
3
0
36
6h
Apple Developer Program paid on March 31 but still not activated - No response from Support
Hi everyone, I am writing to seek help regarding my Apple Developer Program enrollment. I successfully paid the $99 USD enrollment fee on March 31, 2026. I received the official invoice (Web Order Number: D009560930), and my credit card was successfully charged. However, as of today, my developer account is still pending and has not been activated. I have already sent two separate emails to Apple Developer Support requesting assistance over the past few days, but I have not received any response or update from them yet. Has anyone experienced a similar delay recently? Is there any other way to escalate this issue or contact support directly to get my account activated? I have attached my invoice for reference. Any advice or help from the Apple team would be greatly appreciated! Thank you.
0
0
23
6h
Developer Program Payment Issues
Hello Everyone and @Apple Developer Support , I subscribed to the Apple Developer Program today, April 5th, 2026. The payment has already been charged to my bank account, but my account still shows the status “Purchase your membership. To continue your enrollment, complete your purchase now. Your purchase may take up to 48 hours to process.” In my naivety, I clicked it again, assuming the payment hadn’t gone through. As a result, I’ve now paid for the membership twice and been billed twice. Thanks in advance for your help and feedback! Gibril
0
0
8
6h
App aguardando revisão
Enviei meu app (xek) pra revisão desde terça feira. Recebi a solicitação de ajustes na quarta e depois de ajusta-lo na quarta mesmo, ele ficou travado em “Aguardando revisão” desde então. Um app simples que está no processo de liberação desde terça e desde quarta sem nenhum retorno da Apple, isso eh normal? Tenho outro app que nunca demorou tanto nas aprovações. mandei mensagem por outros canais e nada. Vamos ver se por aqui tenho algum retorno.
0
0
16
1d
Clarification on In-App Purchase entitlement assignment to another user account (including new user onboarding scenario)
Description: We are implementing an in-app purchase (IAP) feature using StoreKit where one user can purchase a non-consumable or one-time product for another user within the same app. We would like to confirm whether our implementation approach aligns with Apple’s guidelines for digital content and in-app purchases, specifically regarding entitlement assignment across user accounts. Implementation Context: The app is built using React Native. We use a StoreKit wrapper library (react-native-iap) to initiate and manage in-app purchases. All transactions are completed using Apple’s In-App Purchase system. Receipts are validated on our backend server before granting any entitlements. Use Case Overview: The app supports a family-style model where multiple users (accounts) can be connected. We have two related scenarios: Scenario 1: Existing Connected User User A (purchaser) and User B (recipient) are already connected within the app. User A selects User B and purchases a one-time digital product using Apple In-App Purchase. The app validates the transaction and sends the receipt and transaction identifier to our backend. The backend verifies the transaction and assigns the entitlement to User B’s account. When User B logs into the app, access is granted based on entitlement status. Scenario 2: New User (Not Yet Registered at Time of Purchase) User A purchases a one-time digital product using Apple In-App Purchase and specifies a recipient email address. The backend records the purchase and associates it with the recipient’s email address along with a secure, single-use claim token. The recipient (User B) receives an email containing a secure link and later installs the app and creates an account or logs into an existing account. After authentication and validation of the claim token, the backend attaches the entitlement to User B’s account. When User B logs into the app, access is granted based on entitlement status without requiring any explicit “redeem,” “claim,” or “accept” action within the app. Important Details: All purchases are completed using Apple’s In-App Purchase system. No external payment methods, codes, or alternative purchasing mechanisms are used. The app does not present any in-app UI for entering codes or manually redeeming purchases. Entitlements are applied automatically by the backend after transaction validation. For new users, entitlement is granted only after secure verification (e.g., a single-use token delivered via email) and not based solely on email address matching. The app only reflects entitlement state after user authentication. Cross-Platform Consideration: User accounts may be accessed across platforms (iOS and Android). Entitlements are associated with the user account and reflected after login. Specific Questions: Is it acceptable to assign an IAP entitlement purchased by one user (User A) to another user account (User B), provided the purchase is completed via Apple IAP and the recipient does not perform any in-app redemption or activation action? In Scenario 2 (new user onboarding), is it acceptable to associate a purchase with a recipient email and, after the user signs up and logs in, attach the entitlement to their account following secure verification (e.g., using a single-use claim token), without presenting any in-app redemption or activation flow? Are there any restrictions or recommended practices for granting access to digital content on iOS devices to a user who did not directly initiate the purchase but is the intended recipient within the app’s account system? For cross-platform usage, is it acceptable for an entitlement originating from an Apple IAP transaction to be associated with a user account and reflected across platforms after login? Are there any StoreKit-specific considerations (such as transaction handling, receipt validation, or appAccountToken usage) when assigning a transaction’s entitlement to a different user account than the purchaser? Expected Outcome: We would like confirmation that the described approaches are compliant with Apple’s guidelines and do not violate policies related to unlocking digital content or bypassing In-App Purchase mechanisms. If any part of these flows is not recommended, we would appreciate guidance on the correct implementation approach. Additional Notes: We have reviewed App Store Review Guidelines section 3.1.1 and want to ensure that our implementation aligns with the intended usage.
0
0
74
1d
In-App Purchases section missing in App Store Connect for new version submission (subscriptions)
Hi everyone, I am experiencing an issue with App Store Connect and subscriptions. My app (Couple Organizer, App ID: 6748842796) already has an approved subscription group (Premium Plans) with Monthly and Yearly Premium options. Version 1.0.0 is live in the App Store, subscriptions are working. But - When preparing version 1.1.0 for submission the “In-App Purchases and Subscriptions” section is not visible on the submission page so I am unable to attach them to the new version of the app. I tried removing the build from review and re-adding another one but the section still does not appear. Subscriptions show status approved and ready for sale . My questions: Are subscriptions automatically carried forward to new app versions once approved in the first release? Or is there a step I’m missing to explicitly attach them again in every new version? Is this the expected behavior, or is it a bug in App Store Connect UI? Screenshots available if needed. Any advice would be appreciated!
2
0
252
1d
Testing IAP in sandbox (sandbox - testflight)
Hi all ! I'm a new developer on iOs and I' struggling to get my IAP subscription working in sandbox. I've got it working in debug mode on my test env, where I purposely activate the subscription when in my test backend. So that part works. But now, I want to test in testflight with sandbox user credentials. And I see conflicting instructions. My developer account has accepted the Paid Apps Agreement. I've created a subscription group with localized description in both language my app supports. In that group, I've created 2 products with description, duration, pricing, localized name and description and a review screenshot. At that stage, the subscription is at the state "ready to submit". From what I read, I then need to submit them as part of a version submission to activate the IAP. So I did. But then the app was rejected because IAP don't work. I later found out that I need to attach the IAP to the submission, but I couldn't do it, because the IAP where now in "developer action needed". And even after modifying them to reset the state of the localization, the locale are pending submit, but the subscription is still in developer action needed. So in the end, I re-created 2 new subscriptions (with 2 new product ids). At this point, I see posts and replies in reddit and other places that specifically says that the IAP need to be reviewed and approved by apple to be usable in sandbox. But I also see others that specifically says the opposite, that the IAP only need to be in ready to submit. So which is it ? If I submit again the app, I'll end up with subscriptions that are unusable that I can't get back to ready to submit without sending them for review. Thanks for any hints !
1
0
23
1d
Stuck submitting subscription for review
We are stuck in AppStoreConnect limbo. We have a new subscription group + two Subscriptions in Ready To Review state in appstoreconnect, but Apple Review rejected our latest app version because they weren't included with the version. Our app version has been rejected for a few issues before this which maybe broke something. When I go to edit the version, there is no Subscriptions & Purchases section to add them for review. I tried editing the subscriptions and subscription group localization to see if that got it out of Waiting For Review state or showed the version section but no luck. So we can't add the Subscriptions for review and we are rejected from App Review if we don't. I submitted an Apple support email 8 days ago and haven't received any response. Does anyone know of a way to get this unblocked?
4
0
49
1d
In-App Purchases “Waiting for Review” but not available during App Review (subscriptions unavailable)
Hi everyone, I’m stuck in the App Review process with In-App Purchases (subscriptions) and would really appreciate some guidance. Situation: I have an app with subscriptions (Premium Monthly and Premium Yearly) Both subscriptions are in “Waiting for Review” status I submitted a new app version for review Issue: The app was rejected with: “subscriptions were unavailable at time of review” Before that, I also received a rejection saying the reviewer could not locate the In-App Purchases. What’s confusing: Subscriptions are not yet approved (still “Waiting for Review”) In the current app version page, I do not see the “In-App Purchases” section at all, so I cannot confirm whether they are attached to this build The app correctly loads products via StoreKit, but returns empty when products are not available Questions: Do subscriptions need to be approved before they can be used during app review? Should I reject the current version and resubmit while manually attaching the subscriptions? Is it expected that the “In-App Purchases” section is missing from the version page in this case? Has anyone experienced this “subscriptions unavailable” issue while IAPs are still “Waiting for Review”? I feel like I’m stuck in a loop where: The app needs IAP to pass review But IAP are not available yet during review Any advice on the correct process would be greatly appreciated. Thanks!
1
0
25
1d
Technical Inquiry: User-Centric Accounting and Multiple Concurrent Subscriptions
We are developing a platform (Ferve) where users subscribe to individual artists to access exclusive content. We use a user-centric remuneration model: each artist has an independent income pool, and funds from a specific subscription must be attributed solely to that artist. We have two critical challenges regarding our integration: Granular Financial Reporting for User-Centric Payouts As the Merchant of Record, Apple provides aggregate Financial Reports. However, these reports do not provide a breakdown of taxes, commissions, or exact exchange rates used for individual transactionId records. Though we can keep records of each transaction in our database, thus linking them with which artist they belong to, we are unable to collect fees/taxes applied to each individual transaction. Because our payouts are artist-specific, we need to deduct the exact regional taxes and Apple commissions from each transaction to calculate the artist's due balance. Currently, we can only see the final consolidated balance in BRL (Brazilian Reals) at the end of the month. Is there an API or report that provides the net proceeds and tax breakdown per transaction ID? How can we retrieve the exact exchange rate applied to foreign currency sales (e.g., EUR to BRL) before the final consolidation? Supporting Multiple Concurrent Subscriptions Our current App Store Connect configuration uses a single 'Subscription Group' for all artist 'Clubs' since they share the same price points. However, we have found that users cannot subscribe to more than one product within the same group simultaneously (the App Store treats this as an upgrade/downgrade). On our platform, a user must be able to subscribe to Artist A and Artist B at the same time. What is the recommended architecture for this? Should we dynamically create a unique Subscription Group for every artist onboarded to our platform? If we use unique groups, is there a limit to the number of Subscription Groups one app can have? We appreciate the help, Ferve
1
0
170
3d
Auto-renewable subscriptions stuck in “Missing Metadata” with all fields completed
Hello, I’m experiencing an issue with auto-renewable subscriptions in App Store Connect and would appreciate any guidance. I have created two subscriptions (monthly and yearly), and all required metadata appears to be fully completed: pricing (price tiers set and saved) availability (countries selected) localization (titles and descriptions added) App Review screenshot uploaded However, both subscriptions remain in the “Missing Metadata” status, and the “Submit for Review” option is not available. Because of this, I am unable to attach the subscriptions to my app version and proceed with App Review (Guideline 2.1(b) - App Completeness). What I have already tried: re-saving all fields multiple times re-uploading the App Review screenshot verifying pricing and availability checking localization reviewing introductory offers The issue persists. Has anyone encountered this before or knows what might be causing this status, even when all fields seem complete? Any help would be greatly appreciated. Thank you!
2
0
74
5d
Unexpected appAccountToken mutation in JWSRenewalInfo during in-app crossgrade
Hello Apple Developer Support / StoreKit Team, We recently observed a behavior regarding the appAccountToken in App Store Server Notifications v2 that seems to completely contradict the official documentation. According to the Set App Account Token documentation: The same appAccountToken continues to apply to renewal transactions if the customer upgrades, downgrades, or cross-grades the subscription. However, we encountered a scenario where an active in-app crossgrade resulted in an updated/overwritten appAccountToken inside the subsequent JWSRenewalInfoDecodedPayload, despite our backend never calling the Set App Account Token REST API. Our Observation: A user subscribes to our 1-month plan (Product A). Apple generates an originalTransactionId bound to their initial appAccountToken (Token A). Later, a crossgrade to a 1-year plan (Product B) is initiated from within the app while the user is logged into a different account in our system (Token B), but using the same underlying Apple ID on the device. When the crossgrade takes effect at the next renewal date, we receive a DID_RENEW webhook. The Anomaly (See Attached Screenshots): Upon decoding the JWSRenewalInfoDecodedPayload from the webhook, we noticed that the appAccountToken had unexpectedly changed to the new token (Token B). As shown in the attached redacted screenshots: Screenshot 1 (Before/Original): JWSRenewalInfoDecodedPayload for Product 00001 shows the appAccountToken ending in ...e9a. Screenshot 2 (After Crossgrade): JWSRenewalInfoDecodedPayload for Product yearly_saver shows the appAccountToken has mutated to ending in ...507, even though the originalTransactionId remains exactly the same. To reiterate, our server did not call the POST /inApps/v1/subscriptions/appAccountToken/{originalTransactionId} endpoint to manually overwrite this token at any point. Our Questions: Is this the intended StoreKit 2 behavior? Does Apple automatically overwrite the base appAccountToken in the RenewalInfo if a new token is somehow associated during an active in-app crossgrade transaction? If this is intended, could the documentation be clarified? The current phrasing strongly suggests the token is permanently locked to the initial purchase and will never change during crossgrades unless the REST API is explicitly called. While this behavior is actually quite helpful for our backend to track multi-account users, we want to ensure we aren't relying on an undocumented bug that might be patched unexpectedly. Any insights from the StoreKit engineering team would be highly appreciated. Thank you!
0
0
34
5d
Recent 502 errors on the verifyReceipt API
Recently we are seeing 502 errors on the receipt validating API, documented here: https://aninterestingwebsite.com/documentation/appstorereceipts/verify-receipt 502 Bad Gateway: "<html><EOL><EOL><head><title>502 Bad Gateway</title></head><EOL><EOL><body><EOL><EOL><center><h1>502 Bad Gateway</h1></center><EOL><EOL><hr><center>Apple</center><EOL><EOL></body><EOL><EOL></html><EOL><EOL>" Here are logs of the occurrences: ・2026/03/20 17:03:21 - 17:04:41:10 cases ・2026/03/22 01:44:33:1 case ・2026/03/22 15:03:02:1 case ・2026/03/24 17:05:08 - 17:20:53:62 cases ・2026/03/25 06:34:56 - 06:37:21:18 cases Has anyone else seen problems like these recently? We are planning to move to the newer (non-deprecated) APIs, but are expecting that to take "a minute".
1
1
97
5d
Stuck with subscription review
I've published my app with subscriptions (app changed from paid to subscription model). I've have succesfully pass review process and app was published to App Store without subscription store, so no one can buy app (still working as paid, but will expire in few days forcing users to subscribe). I want to attach subscriptions to new build, but I can't - there are no options mentioned in documentation. I'm stuck. There is no any contact point to review team. I've created 3 cases, nobody reads them (oldest 3 weeks). The whole approval process looks broken, Apple team shouldn't approve app with subscriptions without subscriptions added to review. I must immediately publish my app with critical fixes, but I can't. I am devastated, i don't know what to do...
4
0
134
1w
how to disable streamline purchasing
how to disable streamline purchasing, when I click turn off, it show error Streamlined purchasing cannot be turned off because your latest approved binary doesn’t include the required StoreKit APIs My app has subscribe button to click before start to use though not need to login, chatgpt had done the store kit and subscription part, do not understand why it can not turn off streamlined purchasing
1
0
60
1w
Transaction.currentEntitlements sometimes does not emit a result until device is reboot
I have the typical StoreKit 2 manager class, where I check currentEntitlements for subscription. I have filed a feedback (FB22349195), I hope someone can take a look at it. func updateCustomerProductStatus() async { var activeSubscription: String? = nil // BUG: In some cases the currentEntitlements does not emit a transaction until the device is reboot for await result in Transaction.currentEntitlements { print("Found transaction: \(result)") // This print does not appear until a restart! do { let transaction = try checkVerified(result) // Skip revoked transactions if transaction.revocationDate != nil { print("Skipping revoked transaction for \(transaction.productID)") continue } // Skip expired subscriptions if let expirationDate = transaction.expirationDate, expirationDate < Date() { print("Skipping expired subscription for \(transaction.productID)") continue } // Check product type switch transaction.productType { case .autoRenewable: activeSubscription = transaction.productID default: break } } catch { print("Unable to verify transaction: \(error)") } } // Update state once after processing all entitlements self.activeSubscription = activeSubscription print("updateCustomerProductStatus() activeSubscription: \(activeSubscription ?? "nil")") } There is some unexpected behavior where the currentEntitlements does not emit a result until the iPhone device is reboot. This bug appeared in iOS 26.4 (and in the betas).
0
1
66
1w
how to turn off streamlined purchasing
how to disable streamline purchasing, when I click turn off, it show error Streamlined purchasing cannot be turned off because your latest approved binary doesn’t include the required StoreKit APIs My app has subscribe button to click before start to use though not need to login, chatgpt had done the store kit and subscription part, do not understand why it can not turn off streamlined purchasing
0
0
26
1w
Custom Capacitor 6 plugin with SPM: "plugin is not implemented on ios" despite being compiled
Hi everyone, I'm building an iOS app using Capacitor 6 with Swift Package Manager (SPM). I have a custom native plugin (AppleIAPPlugin) for StoreKit 2 In-App Purchases that lives in the App target (not as an SPM package). Despite compiling successfully, the JavaScript bridge throws: "AppleIAP" plugin is not implemented on ios Setup AppleIAPPlugin.swift: swift import Foundation import Capacitor import StoreKit @objc(AppleIAPPlugin) public class AppleIAPPlugin: CAPPlugin, CAPBridgedPlugin { public let identifier = "AppleIAPPlugin" public let jsName = "AppleIAP" public let pluginMethods: [CAPPluginMethod] = [ CAPPluginMethod(name: "getProducts", returnType: CAPPluginReturnPromise), CAPPluginMethod(name: "purchase", returnType: CAPPluginReturnPromise), CAPPluginMethod(name: "restorePurchases", returnType: CAPPluginReturnPromise), CAPPluginMethod(name: "getCurrentEntitlements", returnType: CAPPluginReturnPromise), CAPPluginMethod(name: "openManageSubscriptions", returnType: CAPPluginReturnPromise), ] @objc func getProducts(_ call: CAPPluginCall) { /* StoreKit 2 implementation */ } @objc func purchase(_ call: CAPPluginCall) { /* ... */ } // etc. } AppleIAPPlugin.m: objc #import <Foundation/Foundation.h> #import <Capacitor/Capacitor.h> CAP_PLUGIN(AppleIAPPlugin, "AppleIAP", CAP_PLUGIN_METHOD(getProducts, CAPPluginReturnPromise); CAP_PLUGIN_METHOD(purchase, CAPPluginReturnPromise); CAP_PLUGIN_METHOD(restorePurchases, CAPPluginReturnPromise); CAP_PLUGIN_METHOD(getCurrentEntitlements, CAPPluginReturnPromise); CAP_PLUGIN_METHOD(openManageSubscriptions, CAPPluginReturnPromise); ) MyBridgeViewController.swift (custom bridge to register the plugin): swift import UIKit import Capacitor class MyBridgeViewController: CAPBridgeViewController { override open func capacitorDidLoad() { bridge?.registerPluginType(AppleIAPPlugin.self) } } Main.storyboard points to MyBridgeViewController (module: App) instead of CAPBridgeViewController. TypeScript side: typescript import { registerPlugin } from "@capacitor/core"; export const AppleIAP = registerPlugin("AppleIAP"); What I've verified Both .swift and .m files are in the Xcode project's Compile Sources build phase nm on the compiled binary confirms OBJC_CLASS_$_AppleIAPPlugin symbol exists The build succeeds with zero errors Other SPM-based Capacitor plugins (Share, Media, NativeAudio) work fine — they have pluginMethods and jsName symbols in the binary; my custom plugin does NOT A bridging header (App-Bridging-Header.h) is configured with #import <Capacitor/Capacitor.h> What I've tried (all failed) .m file with CAP_PLUGIN macro only (no CAPBridgedPlugin in Swift) Added CAPBridgedPlugin protocol conformance to Swift class Created MyBridgeViewController subclass with registerPluginType() in capacitorDidLoad() Removed/added override public func load() method Added #import <Foundation/Foundation.h> to .m file Various bridging header configurations Multiple clean builds and derived data wipes Environment Xcode 16 Capacitor 6 (via SPM, binary xcframework) iOS 17+ deployment target Physical device testing (not simulator) Question How should a custom plugin in the App target be registered with Capacitor 6 when using SPM? The SPM-based plugins from node_modules get auto-discovered, but my custom plugin in the App target does not. Is there a step I'm missing to make registerPluginType() work, or should I structure my custom plugin as a local SPM package instead? Any guidance would be greatly appreciated.
1
0
40
1w
URGENT: Developer Program Expired – No Renewal Option – App Removed from App Store
Hello, We are currently experiencing a serious issue with our Apple Developer Program membership. Our membership has expired, but there is no option to renew the membership anywhere: Not on the Apple Developer website Not in the Apple Developer app Attempting to start enrollment again redirects to the main page Account details: Team ID: RZR56J4QQ8 Organization: E. V. I. ELECTRIC CARS LTD Role: Account Holder Because of this issue: All App Store agreements show as expired Our app has been removed from the App Store We are currently unable to restore service to users We already opened a Developer Support ticket about a week ago, but have not received any response. This is causing business impact, and we cannot find any way to trigger the renewal flow. Has anyone experienced this issue before, where the Renew Membership button does not appear at all? If anyone from Apple Developer Support / Apple Staff is able to assist or escalate this issue, it would be greatly appreciated. Thank you.
Replies
3
Boosts
0
Views
36
Activity
6h
Apple Developer Program paid on March 31 but still not activated - No response from Support
Hi everyone, I am writing to seek help regarding my Apple Developer Program enrollment. I successfully paid the $99 USD enrollment fee on March 31, 2026. I received the official invoice (Web Order Number: D009560930), and my credit card was successfully charged. However, as of today, my developer account is still pending and has not been activated. I have already sent two separate emails to Apple Developer Support requesting assistance over the past few days, but I have not received any response or update from them yet. Has anyone experienced a similar delay recently? Is there any other way to escalate this issue or contact support directly to get my account activated? I have attached my invoice for reference. Any advice or help from the Apple team would be greatly appreciated! Thank you.
Replies
0
Boosts
0
Views
23
Activity
6h
Developer Program Payment Issues
Hello Everyone and @Apple Developer Support , I subscribed to the Apple Developer Program today, April 5th, 2026. The payment has already been charged to my bank account, but my account still shows the status “Purchase your membership. To continue your enrollment, complete your purchase now. Your purchase may take up to 48 hours to process.” In my naivety, I clicked it again, assuming the payment hadn’t gone through. As a result, I’ve now paid for the membership twice and been billed twice. Thanks in advance for your help and feedback! Gibril
Replies
0
Boosts
0
Views
8
Activity
6h
App aguardando revisão
Enviei meu app (xek) pra revisão desde terça feira. Recebi a solicitação de ajustes na quarta e depois de ajusta-lo na quarta mesmo, ele ficou travado em “Aguardando revisão” desde então. Um app simples que está no processo de liberação desde terça e desde quarta sem nenhum retorno da Apple, isso eh normal? Tenho outro app que nunca demorou tanto nas aprovações. mandei mensagem por outros canais e nada. Vamos ver se por aqui tenho algum retorno.
Replies
0
Boosts
0
Views
16
Activity
1d
Clarification on In-App Purchase entitlement assignment to another user account (including new user onboarding scenario)
Description: We are implementing an in-app purchase (IAP) feature using StoreKit where one user can purchase a non-consumable or one-time product for another user within the same app. We would like to confirm whether our implementation approach aligns with Apple’s guidelines for digital content and in-app purchases, specifically regarding entitlement assignment across user accounts. Implementation Context: The app is built using React Native. We use a StoreKit wrapper library (react-native-iap) to initiate and manage in-app purchases. All transactions are completed using Apple’s In-App Purchase system. Receipts are validated on our backend server before granting any entitlements. Use Case Overview: The app supports a family-style model where multiple users (accounts) can be connected. We have two related scenarios: Scenario 1: Existing Connected User User A (purchaser) and User B (recipient) are already connected within the app. User A selects User B and purchases a one-time digital product using Apple In-App Purchase. The app validates the transaction and sends the receipt and transaction identifier to our backend. The backend verifies the transaction and assigns the entitlement to User B’s account. When User B logs into the app, access is granted based on entitlement status. Scenario 2: New User (Not Yet Registered at Time of Purchase) User A purchases a one-time digital product using Apple In-App Purchase and specifies a recipient email address. The backend records the purchase and associates it with the recipient’s email address along with a secure, single-use claim token. The recipient (User B) receives an email containing a secure link and later installs the app and creates an account or logs into an existing account. After authentication and validation of the claim token, the backend attaches the entitlement to User B’s account. When User B logs into the app, access is granted based on entitlement status without requiring any explicit “redeem,” “claim,” or “accept” action within the app. Important Details: All purchases are completed using Apple’s In-App Purchase system. No external payment methods, codes, or alternative purchasing mechanisms are used. The app does not present any in-app UI for entering codes or manually redeeming purchases. Entitlements are applied automatically by the backend after transaction validation. For new users, entitlement is granted only after secure verification (e.g., a single-use token delivered via email) and not based solely on email address matching. The app only reflects entitlement state after user authentication. Cross-Platform Consideration: User accounts may be accessed across platforms (iOS and Android). Entitlements are associated with the user account and reflected after login. Specific Questions: Is it acceptable to assign an IAP entitlement purchased by one user (User A) to another user account (User B), provided the purchase is completed via Apple IAP and the recipient does not perform any in-app redemption or activation action? In Scenario 2 (new user onboarding), is it acceptable to associate a purchase with a recipient email and, after the user signs up and logs in, attach the entitlement to their account following secure verification (e.g., using a single-use claim token), without presenting any in-app redemption or activation flow? Are there any restrictions or recommended practices for granting access to digital content on iOS devices to a user who did not directly initiate the purchase but is the intended recipient within the app’s account system? For cross-platform usage, is it acceptable for an entitlement originating from an Apple IAP transaction to be associated with a user account and reflected across platforms after login? Are there any StoreKit-specific considerations (such as transaction handling, receipt validation, or appAccountToken usage) when assigning a transaction’s entitlement to a different user account than the purchaser? Expected Outcome: We would like confirmation that the described approaches are compliant with Apple’s guidelines and do not violate policies related to unlocking digital content or bypassing In-App Purchase mechanisms. If any part of these flows is not recommended, we would appreciate guidance on the correct implementation approach. Additional Notes: We have reviewed App Store Review Guidelines section 3.1.1 and want to ensure that our implementation aligns with the intended usage.
Replies
0
Boosts
0
Views
74
Activity
1d
In-App Purchases section missing in App Store Connect for new version submission (subscriptions)
Hi everyone, I am experiencing an issue with App Store Connect and subscriptions. My app (Couple Organizer, App ID: 6748842796) already has an approved subscription group (Premium Plans) with Monthly and Yearly Premium options. Version 1.0.0 is live in the App Store, subscriptions are working. But - When preparing version 1.1.0 for submission the “In-App Purchases and Subscriptions” section is not visible on the submission page so I am unable to attach them to the new version of the app. I tried removing the build from review and re-adding another one but the section still does not appear. Subscriptions show status approved and ready for sale . My questions: Are subscriptions automatically carried forward to new app versions once approved in the first release? Or is there a step I’m missing to explicitly attach them again in every new version? Is this the expected behavior, or is it a bug in App Store Connect UI? Screenshots available if needed. Any advice would be appreciated!
Replies
2
Boosts
0
Views
252
Activity
1d
Testing IAP in sandbox (sandbox - testflight)
Hi all ! I'm a new developer on iOs and I' struggling to get my IAP subscription working in sandbox. I've got it working in debug mode on my test env, where I purposely activate the subscription when in my test backend. So that part works. But now, I want to test in testflight with sandbox user credentials. And I see conflicting instructions. My developer account has accepted the Paid Apps Agreement. I've created a subscription group with localized description in both language my app supports. In that group, I've created 2 products with description, duration, pricing, localized name and description and a review screenshot. At that stage, the subscription is at the state "ready to submit". From what I read, I then need to submit them as part of a version submission to activate the IAP. So I did. But then the app was rejected because IAP don't work. I later found out that I need to attach the IAP to the submission, but I couldn't do it, because the IAP where now in "developer action needed". And even after modifying them to reset the state of the localization, the locale are pending submit, but the subscription is still in developer action needed. So in the end, I re-created 2 new subscriptions (with 2 new product ids). At this point, I see posts and replies in reddit and other places that specifically says that the IAP need to be reviewed and approved by apple to be usable in sandbox. But I also see others that specifically says the opposite, that the IAP only need to be in ready to submit. So which is it ? If I submit again the app, I'll end up with subscriptions that are unusable that I can't get back to ready to submit without sending them for review. Thanks for any hints !
Replies
1
Boosts
0
Views
23
Activity
1d
Stuck submitting subscription for review
We are stuck in AppStoreConnect limbo. We have a new subscription group + two Subscriptions in Ready To Review state in appstoreconnect, but Apple Review rejected our latest app version because they weren't included with the version. Our app version has been rejected for a few issues before this which maybe broke something. When I go to edit the version, there is no Subscriptions & Purchases section to add them for review. I tried editing the subscriptions and subscription group localization to see if that got it out of Waiting For Review state or showed the version section but no luck. So we can't add the Subscriptions for review and we are rejected from App Review if we don't. I submitted an Apple support email 8 days ago and haven't received any response. Does anyone know of a way to get this unblocked?
Replies
4
Boosts
0
Views
49
Activity
1d
In-App Purchases “Waiting for Review” but not available during App Review (subscriptions unavailable)
Hi everyone, I’m stuck in the App Review process with In-App Purchases (subscriptions) and would really appreciate some guidance. Situation: I have an app with subscriptions (Premium Monthly and Premium Yearly) Both subscriptions are in “Waiting for Review” status I submitted a new app version for review Issue: The app was rejected with: “subscriptions were unavailable at time of review” Before that, I also received a rejection saying the reviewer could not locate the In-App Purchases. What’s confusing: Subscriptions are not yet approved (still “Waiting for Review”) In the current app version page, I do not see the “In-App Purchases” section at all, so I cannot confirm whether they are attached to this build The app correctly loads products via StoreKit, but returns empty when products are not available Questions: Do subscriptions need to be approved before they can be used during app review? Should I reject the current version and resubmit while manually attaching the subscriptions? Is it expected that the “In-App Purchases” section is missing from the version page in this case? Has anyone experienced this “subscriptions unavailable” issue while IAPs are still “Waiting for Review”? I feel like I’m stuck in a loop where: The app needs IAP to pass review But IAP are not available yet during review Any advice on the correct process would be greatly appreciated. Thanks!
Replies
1
Boosts
0
Views
25
Activity
1d
Technical Inquiry: User-Centric Accounting and Multiple Concurrent Subscriptions
We are developing a platform (Ferve) where users subscribe to individual artists to access exclusive content. We use a user-centric remuneration model: each artist has an independent income pool, and funds from a specific subscription must be attributed solely to that artist. We have two critical challenges regarding our integration: Granular Financial Reporting for User-Centric Payouts As the Merchant of Record, Apple provides aggregate Financial Reports. However, these reports do not provide a breakdown of taxes, commissions, or exact exchange rates used for individual transactionId records. Though we can keep records of each transaction in our database, thus linking them with which artist they belong to, we are unable to collect fees/taxes applied to each individual transaction. Because our payouts are artist-specific, we need to deduct the exact regional taxes and Apple commissions from each transaction to calculate the artist's due balance. Currently, we can only see the final consolidated balance in BRL (Brazilian Reals) at the end of the month. Is there an API or report that provides the net proceeds and tax breakdown per transaction ID? How can we retrieve the exact exchange rate applied to foreign currency sales (e.g., EUR to BRL) before the final consolidation? Supporting Multiple Concurrent Subscriptions Our current App Store Connect configuration uses a single 'Subscription Group' for all artist 'Clubs' since they share the same price points. However, we have found that users cannot subscribe to more than one product within the same group simultaneously (the App Store treats this as an upgrade/downgrade). On our platform, a user must be able to subscribe to Artist A and Artist B at the same time. What is the recommended architecture for this? Should we dynamically create a unique Subscription Group for every artist onboarded to our platform? If we use unique groups, is there a limit to the number of Subscription Groups one app can have? We appreciate the help, Ferve
Replies
1
Boosts
0
Views
170
Activity
3d
Subscription waiting for review
Hi, I am trying to get my subscription reviewed. Its sitting there as “waiting for review“ and its been nearly 1 week. I’ve tried msging and replying to the Apple review team to request the review bur so far no luck. Can I please kindly get assistance as to how I can get it reviewed? Any help will be much appreciated.
Replies
1
Boosts
0
Views
46
Activity
4d
Auto-renewable subscriptions stuck in “Missing Metadata” with all fields completed
Hello, I’m experiencing an issue with auto-renewable subscriptions in App Store Connect and would appreciate any guidance. I have created two subscriptions (monthly and yearly), and all required metadata appears to be fully completed: pricing (price tiers set and saved) availability (countries selected) localization (titles and descriptions added) App Review screenshot uploaded However, both subscriptions remain in the “Missing Metadata” status, and the “Submit for Review” option is not available. Because of this, I am unable to attach the subscriptions to my app version and proceed with App Review (Guideline 2.1(b) - App Completeness). What I have already tried: re-saving all fields multiple times re-uploading the App Review screenshot verifying pricing and availability checking localization reviewing introductory offers The issue persists. Has anyone encountered this before or knows what might be causing this status, even when all fields seem complete? Any help would be greatly appreciated. Thank you!
Replies
2
Boosts
0
Views
74
Activity
5d
Unexpected appAccountToken mutation in JWSRenewalInfo during in-app crossgrade
Hello Apple Developer Support / StoreKit Team, We recently observed a behavior regarding the appAccountToken in App Store Server Notifications v2 that seems to completely contradict the official documentation. According to the Set App Account Token documentation: The same appAccountToken continues to apply to renewal transactions if the customer upgrades, downgrades, or cross-grades the subscription. However, we encountered a scenario where an active in-app crossgrade resulted in an updated/overwritten appAccountToken inside the subsequent JWSRenewalInfoDecodedPayload, despite our backend never calling the Set App Account Token REST API. Our Observation: A user subscribes to our 1-month plan (Product A). Apple generates an originalTransactionId bound to their initial appAccountToken (Token A). Later, a crossgrade to a 1-year plan (Product B) is initiated from within the app while the user is logged into a different account in our system (Token B), but using the same underlying Apple ID on the device. When the crossgrade takes effect at the next renewal date, we receive a DID_RENEW webhook. The Anomaly (See Attached Screenshots): Upon decoding the JWSRenewalInfoDecodedPayload from the webhook, we noticed that the appAccountToken had unexpectedly changed to the new token (Token B). As shown in the attached redacted screenshots: Screenshot 1 (Before/Original): JWSRenewalInfoDecodedPayload for Product 00001 shows the appAccountToken ending in ...e9a. Screenshot 2 (After Crossgrade): JWSRenewalInfoDecodedPayload for Product yearly_saver shows the appAccountToken has mutated to ending in ...507, even though the originalTransactionId remains exactly the same. To reiterate, our server did not call the POST /inApps/v1/subscriptions/appAccountToken/{originalTransactionId} endpoint to manually overwrite this token at any point. Our Questions: Is this the intended StoreKit 2 behavior? Does Apple automatically overwrite the base appAccountToken in the RenewalInfo if a new token is somehow associated during an active in-app crossgrade transaction? If this is intended, could the documentation be clarified? The current phrasing strongly suggests the token is permanently locked to the initial purchase and will never change during crossgrades unless the REST API is explicitly called. While this behavior is actually quite helpful for our backend to track multi-account users, we want to ensure we aren't relying on an undocumented bug that might be patched unexpectedly. Any insights from the StoreKit engineering team would be highly appreciated. Thank you!
Replies
0
Boosts
0
Views
34
Activity
5d
Recent 502 errors on the verifyReceipt API
Recently we are seeing 502 errors on the receipt validating API, documented here: https://aninterestingwebsite.com/documentation/appstorereceipts/verify-receipt 502 Bad Gateway: "<html><EOL><EOL><head><title>502 Bad Gateway</title></head><EOL><EOL><body><EOL><EOL><center><h1>502 Bad Gateway</h1></center><EOL><EOL><hr><center>Apple</center><EOL><EOL></body><EOL><EOL></html><EOL><EOL>" Here are logs of the occurrences: ・2026/03/20 17:03:21 - 17:04:41:10 cases ・2026/03/22 01:44:33:1 case ・2026/03/22 15:03:02:1 case ・2026/03/24 17:05:08 - 17:20:53:62 cases ・2026/03/25 06:34:56 - 06:37:21:18 cases Has anyone else seen problems like these recently? We are planning to move to the newer (non-deprecated) APIs, but are expecting that to take "a minute".
Replies
1
Boosts
1
Views
97
Activity
5d
Stuck with subscription review
I've published my app with subscriptions (app changed from paid to subscription model). I've have succesfully pass review process and app was published to App Store without subscription store, so no one can buy app (still working as paid, but will expire in few days forcing users to subscribe). I want to attach subscriptions to new build, but I can't - there are no options mentioned in documentation. I'm stuck. There is no any contact point to review team. I've created 3 cases, nobody reads them (oldest 3 weeks). The whole approval process looks broken, Apple team shouldn't approve app with subscriptions without subscriptions added to review. I must immediately publish my app with critical fixes, but I can't. I am devastated, i don't know what to do...
Replies
4
Boosts
0
Views
134
Activity
1w
how to disable streamline purchasing
how to disable streamline purchasing, when I click turn off, it show error Streamlined purchasing cannot be turned off because your latest approved binary doesn’t include the required StoreKit APIs My app has subscribe button to click before start to use though not need to login, chatgpt had done the store kit and subscription part, do not understand why it can not turn off streamlined purchasing
Replies
1
Boosts
0
Views
60
Activity
1w
Transaction.currentEntitlements sometimes does not emit a result until device is reboot
I have the typical StoreKit 2 manager class, where I check currentEntitlements for subscription. I have filed a feedback (FB22349195), I hope someone can take a look at it. func updateCustomerProductStatus() async { var activeSubscription: String? = nil // BUG: In some cases the currentEntitlements does not emit a transaction until the device is reboot for await result in Transaction.currentEntitlements { print("Found transaction: \(result)") // This print does not appear until a restart! do { let transaction = try checkVerified(result) // Skip revoked transactions if transaction.revocationDate != nil { print("Skipping revoked transaction for \(transaction.productID)") continue } // Skip expired subscriptions if let expirationDate = transaction.expirationDate, expirationDate < Date() { print("Skipping expired subscription for \(transaction.productID)") continue } // Check product type switch transaction.productType { case .autoRenewable: activeSubscription = transaction.productID default: break } } catch { print("Unable to verify transaction: \(error)") } } // Update state once after processing all entitlements self.activeSubscription = activeSubscription print("updateCustomerProductStatus() activeSubscription: \(activeSubscription ?? "nil")") } There is some unexpected behavior where the currentEntitlements does not emit a result until the iPhone device is reboot. This bug appeared in iOS 26.4 (and in the betas).
Replies
0
Boosts
1
Views
66
Activity
1w
how to turn off streamlined purchasing
how to disable streamline purchasing, when I click turn off, it show error Streamlined purchasing cannot be turned off because your latest approved binary doesn’t include the required StoreKit APIs My app has subscribe button to click before start to use though not need to login, chatgpt had done the store kit and subscription part, do not understand why it can not turn off streamlined purchasing
Replies
0
Boosts
0
Views
26
Activity
1w
Custom Capacitor 6 plugin with SPM: "plugin is not implemented on ios" despite being compiled
Hi everyone, I'm building an iOS app using Capacitor 6 with Swift Package Manager (SPM). I have a custom native plugin (AppleIAPPlugin) for StoreKit 2 In-App Purchases that lives in the App target (not as an SPM package). Despite compiling successfully, the JavaScript bridge throws: "AppleIAP" plugin is not implemented on ios Setup AppleIAPPlugin.swift: swift import Foundation import Capacitor import StoreKit @objc(AppleIAPPlugin) public class AppleIAPPlugin: CAPPlugin, CAPBridgedPlugin { public let identifier = "AppleIAPPlugin" public let jsName = "AppleIAP" public let pluginMethods: [CAPPluginMethod] = [ CAPPluginMethod(name: "getProducts", returnType: CAPPluginReturnPromise), CAPPluginMethod(name: "purchase", returnType: CAPPluginReturnPromise), CAPPluginMethod(name: "restorePurchases", returnType: CAPPluginReturnPromise), CAPPluginMethod(name: "getCurrentEntitlements", returnType: CAPPluginReturnPromise), CAPPluginMethod(name: "openManageSubscriptions", returnType: CAPPluginReturnPromise), ] @objc func getProducts(_ call: CAPPluginCall) { /* StoreKit 2 implementation */ } @objc func purchase(_ call: CAPPluginCall) { /* ... */ } // etc. } AppleIAPPlugin.m: objc #import <Foundation/Foundation.h> #import <Capacitor/Capacitor.h> CAP_PLUGIN(AppleIAPPlugin, "AppleIAP", CAP_PLUGIN_METHOD(getProducts, CAPPluginReturnPromise); CAP_PLUGIN_METHOD(purchase, CAPPluginReturnPromise); CAP_PLUGIN_METHOD(restorePurchases, CAPPluginReturnPromise); CAP_PLUGIN_METHOD(getCurrentEntitlements, CAPPluginReturnPromise); CAP_PLUGIN_METHOD(openManageSubscriptions, CAPPluginReturnPromise); ) MyBridgeViewController.swift (custom bridge to register the plugin): swift import UIKit import Capacitor class MyBridgeViewController: CAPBridgeViewController { override open func capacitorDidLoad() { bridge?.registerPluginType(AppleIAPPlugin.self) } } Main.storyboard points to MyBridgeViewController (module: App) instead of CAPBridgeViewController. TypeScript side: typescript import { registerPlugin } from "@capacitor/core"; export const AppleIAP = registerPlugin("AppleIAP"); What I've verified Both .swift and .m files are in the Xcode project's Compile Sources build phase nm on the compiled binary confirms OBJC_CLASS_$_AppleIAPPlugin symbol exists The build succeeds with zero errors Other SPM-based Capacitor plugins (Share, Media, NativeAudio) work fine — they have pluginMethods and jsName symbols in the binary; my custom plugin does NOT A bridging header (App-Bridging-Header.h) is configured with #import <Capacitor/Capacitor.h> What I've tried (all failed) .m file with CAP_PLUGIN macro only (no CAPBridgedPlugin in Swift) Added CAPBridgedPlugin protocol conformance to Swift class Created MyBridgeViewController subclass with registerPluginType() in capacitorDidLoad() Removed/added override public func load() method Added #import <Foundation/Foundation.h> to .m file Various bridging header configurations Multiple clean builds and derived data wipes Environment Xcode 16 Capacitor 6 (via SPM, binary xcframework) iOS 17+ deployment target Physical device testing (not simulator) Question How should a custom plugin in the App target be registered with Capacitor 6 when using SPM? The SPM-based plugins from node_modules get auto-discovered, but my custom plugin in the App target does not. Is there a step I'm missing to make registerPluginType() work, or should I structure my custom plugin as a local SPM package instead? Any guidance would be greatly appreciated.
Replies
1
Boosts
0
Views
40
Activity
1w
Guideline 2.1(b) - Performance - App Completeness
We have returned your In-App Purchase products to you as the required binary was not submitted. When you are ready to submit the binary, please resubmit the In-App Purchase products with the binary. we have tried everything; there is no button to add for review.
Replies
0
Boosts
0
Views
38
Activity
1w