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.

Subscriptions Documentation

Posts under Subscriptions tag

360 Posts
Sort by:
Post not yet marked as solved
0 Replies
40 Views
Hello, I need to be sure we are doing correct. Can we clarify we can present list of available subscriptions and current subscription to the user in the iOS app where we don't use any payments inside. We have payments only on the web page. Basically our subscriptions allow users to extent hardware devices our consumers buy at us. It's clear for us that we are not able to call for actions for payments and we are not able to user other payment methods in the app. But it's not clear for me if we are allowed to show subscriptions without any action for payments. Here is Description of Business Model In one of the first submissions of our app to the app store about 5 years ago we clarified our business model in detail during the review and it was confirmed that it is fine for this model to collect a fee outside of the app. The main reason was that the value creation happens fully outside of the app. The model did not change since. We are happy to describe here our business model in more detail. The Solar Manager System comprises a hardware https://www.solarmanager.ch/produkt/gateways/,, a backend, a web application and an app (the one under review). The hardware gateway is optimizing the own consumption of solar systems in residential homes. This hardware gateway is locally installed in the home of the user and communicating to many home appliances (battery, PV inverter, car charger, …). The main value creation to the end user is that his home appliances are controlled such to optimize for highest solar consumption and in some cases dynamic electricity tariffs. This means our hardware is starting / stopping / controlling theses devices locally directly via different interfaces. Different algorithms are running directly on the hardware to perform such optimizations. Our backend and web front-end are used to configure the devices and prioritize devices according to the user need. For the first year in 2018 our system was running without any app. It was only hardware, backend and front-end. Also we have a support team answering questions and phone calls from users that have a problem with the system. For this system we have a one time fee to buy the hardware device that is then installed locally in the home of the user. Additional we have a yearly fee to cover cost for data storage, development costs of backend and front-end, and to cover our support. This fee is collected through a payment system in our backend. It can be accessed from the front-end. Depending on the amount of data stored, number of external devices connected to our hardware and the amount of support given to the user there are different levels for the fee. The fee is directly related to the data storage cost, the backend needs, and the support effort. The fee is not collected for digital content consumed through the app. Thanks.
Posted
by shevchykv.
Last updated
.
Post marked as solved
5 Replies
3.3k Views
Dear all, This is my first post in this forum - and, in fact, my first app, too! I'm glad to be here, and thanks in advance for your help. I'm looking to offer an app for a one-time payment. I'd also like people to be able to try the app for a week. It seems that the "Pricing and Availability" section in App Store Connect is not the right place to configure this kind of offer. It does allow me to set a one-time price, but I cannot find a trial-period there (or am I missing something?) Two different strategies seem possible here: Using in-app-purchases: make the actual app free, but ask users after a week to buy a non-consumable IAP. The problem with that: I need to verify that the app has been installed for seven days ... even if it has been uninstalled at some point. Using subscriptions: There is a "free trial" option for subscriptions. But after that free trial, subscriptions are being payed periodically. I'd rather have the user only pay once for lifetime-access. Some apps seem to use strategy 1 - I believe the "Lap swim" app does. But still it seems like a bit of a hack - is there a more elegant way to achieve this?
Posted Last updated
.
Post not yet marked as solved
0 Replies
57 Views
Before few days we enabled auto-renewable subscription for an app. The problem we are facing is that, in Sales and Trends option, the tab Subscriptions is missing. As result we cannot view how many subscriptions we have, retention etc.. I opened a ticket to Apple, but no response.... Can anyone please help?
Posted
by gvdiakak.
Last updated
.
Post not yet marked as solved
0 Replies
56 Views
Hello! Why is it that the old endpoint returns nicely what subscriptions are in the application, while the new one returns an empty result? **Old: https://api.appstoreconnect.apple.com/v1/apps/{appid}/inAppPurchases ** {"data":[{"type":"inAppPurchases","id":"{id}","attributes":{"referenceName":"{referenceName}","productId":"{productId}","inAppPurchaseType":"AUTOMATICALLY_RENEWABLE_SUBSCRIPTION","state":"APPROVED"},"links":{"self":"https://api.appstoreconnect.apple.com/v1/inAppPurchases/{id}"}}],"links":{"self":"https://api.appstoreconnect.apple.com/v1/apps/{appId}/inAppPurchases"},"meta":{"paging":{"total":1,"limit":50}}} **New: https://api.appstoreconnect.apple.com/v1/apps/{appid}/inAppPurchasesV2 ** {"data":[],"links":{"self":"https://api.appstoreconnect.apple.com/v1/apps/{appId}/inAppPurchasesV2"},"meta":{"paging":{"total":0,"limit":50}}}
Posted
by csoki19.
Last updated
.
Post not yet marked as solved
0 Replies
76 Views
Hello, I found a user that has two originalTransactionIds for the same subscriptionGroupIdentifier. I thought that: originalTransactionId does not change in case of upgrade/downgrade, cancellation/re-subscribtion user can see only products within single subscription group A, so if there is a subscription group B, user will not use any products from B (so new originalTransactionId will not be created because we're still within same subscription group) I can see for this user that new originalTransactionId was given when transactionReason was PURCHASE and storefrontId, price and currency have changed in comparison to previous RENEWAL transactions. Can new originalTransactionId be given to the user when purchasing subscription from different country than previously? Thanks a lot for clarification, Best regards, Maria
Posted
by mariadab.
Last updated
.
Post not yet marked as solved
0 Replies
121 Views
Hi all, first post ever here so apologies if information are not enough and thanks in advance for your help. PRODUCT & TECH INFO Ionic + Angular app with subscription plans to be activated via IAP with newly enabled third party subscriptions management platform (Recurly). CONTEXT After activating and migrating our clients to the new platform, the users with IAP subscriptions could not be linked with the platform but their Apple subscription remained active. QUESTIONS What will happen if we ask users to retry the purchase of their exact active subscription through our mobile app checkout when coming to the Apple subscription panel? If the plan is the same, is Apple gonna be smart enough to reconnect the active subscription to the purchase without processing a new payment? The issue is that - at the moment - some users are paying their subscription with Apple but are not active in our Recurly platform so they look like not-subscribed users. Hope I could explain our issue properly! Thanks again in advance for the help!
Posted Last updated
.
Post not yet marked as solved
0 Replies
126 Views
Hello, I've successfully tested my macOS app's subscription purchases in Sandbox mode, but I'm unsure how to test in Production mode, as I read that "Developer ID" profiles don't allow testing subscription purchases. Since Mac can't use an Ad Hoc profile, is there a recommended method for testing in-app purchases in Production mode for macOS apps? I need to test by myself (preferring to avoid Test Flight, if that is even an option for this purpose). My app subscription processes work in the Sandbox environment, but an Apple reviewer could not retrieve the subscription details. (I'm using RevenueCat and see nothing that I need to change). Thank you for your assistance.
Posted
by PhillipW.
Last updated
.
Post not yet marked as solved
1 Replies
176 Views
Struggling for weeks to publish a new update of my app, which includes the first-time submission of a subscription with auto-renewal. It's constantly being rejected due to the following issue: We have started the review of your app, but we are still not able to continue because we cannot locate the in-app purchases within your app at this time. Next Steps To help us proceed with the review of your app, please reply to this message providing the steps for locating the in-app purchases in your app. If you are restricting access to in-app purchases based on factors such as storefront or device configurations, please include this information in your reply along with steps to enable the in-app purchases for our review. No further information is provided, no communication on the steps being taken by Apple. Additionally, I have already provided a comprehensive description during submission on how to access the In-App Purchase (IAP) as text and video. What's kind of interesting: the app got rejected, but the related subscription is still in state "waiting for review". Has anyone else experienced a similar issue?
Posted Last updated
.
Post not yet marked as solved
0 Replies
115 Views
I've had a number of schools want to buy a bulk license for my subscription-based app. However, many schools want me to set them up so the app can be loaded onto school-owned devices. With our app each use requires a separate Apple ID which apparently won't work for schools. Is there a way around this situation or some 3rd party that can help?
Posted Last updated
.
Post not yet marked as solved
0 Replies
137 Views
Our company that has a desktop application currently available for free on the Mac App Store. We are planning to introduce a premium feature within the app and are considering the best method to implement this, in line with Mac App Store policies. Our application is developed in Python, uses Flask for the backend, and is not a typical Xcode project. Given this setup, we are evaluating two potential payment methods: Implementing a non-renewing subscription model via In-App Purchase as detailed here: [https://developer.apple.com/in-app-purchase/] Using Apple Pay through our web portal as detailed here: [https://developer.apple.com/apple-pay/] We understand that the first option could be complex due to our app’s technical framework. We prefer the second option as it seems technically easier to integrate with our existing infrastructure. Anyone with the prior knowledget can clarify if using Apple Pay on our web portal would comply with Mac App Store policies, or must we implement the payment feature strictly through In-App Purchase to adhere to the guidelines?
Posted Last updated
.
Post not yet marked as solved
0 Replies
125 Views
We have the system for which we want to create an iOS app. It is book app and we are not sure if that system of purchase will be approved from Apple Store review team. App is a multi-platform (Windows, Android, and macOS outside the Apple Store) and people currently buy license codes that unlock the full data. They buy it from the main website and from independent resellers. Because the app is multi-platform, according to 3.1.3.b (Apple in-App purchase), the iOS version allows users to access the content that they bought for other platforms (Windows, Android, macOS). This is done by giving the option to enter the license code in the EE9 registration sheet in the app. The iOS app however does NOT let you buy license codes elsewhere, and does not tell users where to buy them. People can only enter the code if they already have it, and no additional information is given on where and how to buy that outside if in-app. If you don't already have a license code, the only way to buy it is to use in-app purchases. After a successful in-app purchase, the iOS app uses the in-app purchase system to give full data access to the user, but at the same time it also generates a license code that the user can use in the Windows or Android or macOS versions to get the full data there as well. (After a successful purchase the iOS app uses an API on our backend server, sending it the in-app purchase code, and the backend server "trusts" the iOS app and returns a license code to the app. The app shows the code to the user, and the user can use it on Windows, Android, etc.. If the iOS app is uninstalled and installed again, the system will still work, because our server has associated the in-app purchase code with the app proprietary code system, so whenever required, our server will return the same license code associated to the same in-app purchase code. In summary, the iOS app allows license owners from other platform to use their code in the iOS app as well, but new users can only buy the license via in-app purchase. And when users buy the license from Apple, they can use it on all other platform as well. The end result is that the same license code will give you full access on all platforms, regardless of which platform you originally bought the code for.
Posted
by nikolayu.
Last updated
.
Post not yet marked as solved
0 Replies
118 Views
续订 Apple Developer Program 会员资格后,是否需要重新打包并安装经过测试的 App
Posted Last updated
.
Post not yet marked as solved
0 Replies
160 Views
Apple automatically refunds the prorated amount on the original subscription after it is upgraded. Since upgrades happen immediately and start a new billing cycle beginning from the day of upgrade, the previous original subscription is refunded for the prorated amount. Is there any way to retrieve the amount that was refunded by Apple? The transaction that was upgraded is marked with isUpgraded flag to true but the price field on it still shows the full amount and there is no App Store Server Notification that tells us how much was the refund. How do I get the refunded amount?
Posted
by kalehv.
Last updated
.
Post not yet marked as solved
1 Replies
146 Views
Hi. We have recently switched to server notification V2. Based on this documentation (notificationType): If the subtype is GRACE_PERIOD, continue to provide service through the grace period. If the subtype is empty, the subscription isn’t in a grace period and you can stop providing the subscription service. Also, base on another documentation (StoreKit): Throughout the billing grace period, the value of isInBillingRetry is true, which indicates that Apple is attempting to automatically renew the subscription. Now, I'm receiving DID_FAIL_TO_RENEW server notification with GRACE_PERIOD subtype where gracePeriodExpiresDate is in the future, but isInBillingRetryPeriod is false (additional note: user has been in trial period and now must be charged as trial has ended). The question is: Is this situation a valid Grace Period even if user is not in billing retry period? And if yes, please elaborate why this is the case. Thank you!
Posted Last updated
.
Post not yet marked as solved
0 Replies
170 Views
I can't find any clear information on this: how can I test offers for active subscription plan without affecting the real users? I have an cleared for sale in-app subscription plan. I want to create introductory offer for it. I had read official document, and I don't understand how to test my new offers. Since my plan is already active, if I set the intro offer with a start date the current date, then it will affect my real users. But if I set the intro offer to start from the future, then the system Apple dialog that shows the price actually shows (and buys) the regular price.
Posted
by dxPred.
Last updated
.
Post not yet marked as solved
2 Replies
222 Views
I have an app with IAP which uses a URLSession object to download files from a server. The download part of the code is: let request = URLRequest(url: fromURL, cachePolicy: .reloadIgnoringLocalCacheData, timeoutInterval: timeoutInterval) let (data, response) = try await downloadSession.data(for: request) This code has been working without trouble for over a year with thousands of downloads. Now I have a user with a new iPhone (iOS 17.3.1) which refuses to download, failing at the above code (judging by the high level logs). My question is this: What sort of things should we be looking at in order to diagnose this issue? So far we have done the following: He has no general download issue (eg Safari works fine) His network access is 'normal' and the problem persists when the network is changed (4G, wifi etc) He runs a VPN (Nord) but the problem persists when this is off He has no 3rd party AV software His phone is not in lockdown mode Any pointers would be appreciated! NB I have no physical access to his device (yet!)
Posted
by Baylward.
Last updated
.
Post not yet marked as solved
0 Replies
131 Views
Hi, impossible for me to pay the annual apple developer subscription. This has been going on for days I tried everything and contacted support several times.
Posted
by SabriAbid.
Last updated
.
Post not yet marked as solved
0 Replies
308 Views
Hi, I have a 12 months subscription which I generated some offer codes for. I generated 25000 of them manually in App Store Connect (One-Time Use Codes). I want to send those codes to users by push notifications and I need to show the final price when the code will be applied. The problem is that I use the native sheet, which only shows the price after the user entered the code. Is there an API that I can hook into to retrieve that price? Otherwise, the best I could do would be to calculate ActualPrice * Discount (because I know the discount since I created the codes), but I am afraid it will not be accurate enough, because it is not possible to select price for offer codes with that precision.
Posted Last updated
.
Post not yet marked as solved
0 Replies
168 Views
I have enrolled, gave credit card, got ack and nothing! I opened 2 support tickets and still nothing... I tried calling apple loccal support they see it and can not help.
Posted Last updated
.