In-App Purchase

RSS for tag

Offer extra content, digital goods, and features directly within your app using in-app purchases.

In-App Purchase Documentation

Posts under In-App Purchase tag

569 Posts
Sort by:
Post not yet marked as solved
0 Replies
43 Views
I have an app where fans can subscribe to multiple content creators and this is implemented using a sub group for each creator. I want to add a new "all access" subscription that gets them access to everything. We are treating this as an upgrade from the individual sub. Is there a way to cancel (or swap) the individual sub when they subscribe to the bundled sub? I know within a sub group it is possible to go between sub levels, but not sure about across sub groups.
Posted
by ypp.
Last updated
.
Post not yet marked as solved
2 Replies
331 Views
I Implement a 'SubscriptionStoreView' using 'groupID' into a project (iOS is targeting 17.2 and macOS is targeting 14.1).Build/run the application locally (both production and development environments will work fine), however once the application is live on the AppStore in AppStoreConnect, SubscriptionStoreView no longer shows products and only shows 'Subscription Unavailable' and 'The subscription is unavailable in the current storefront.' - this message is shown live in production for both iOS and macOS targets. There is no log messages shown in the Console that indicate anything going wrong with StoreKit 2, but I haven't made any changes to my code and noticed this first start appearing about 5 days ago. I expect the subscription store to be visible to all users and for my products to display. My application is live on both the iOS and macOS AppStores, it passed App Review and I have users who have previously been able to subscribe and use my application, I have not pushed any new changes, so something has changed in StoreKit2 which is causing unexpected behaviour and for this error message to display. As 'SubscriptionStoreView' is a view provided by Apple, I'm really not sure on the pathway forward other than going back to StoreKit1 which I really don't want to do. Is there any further error information that can be provided on what might be causing this and how I can fix it? (I have created a feedback ticket FB13658521)
Posted
by Lukesrad.
Last updated
.
Post not yet marked as solved
2 Replies
167 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
1 Replies
179 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
2 Replies
113 Views
Hi, I am processing both REFUNDED and REVOKED transactions on the client-side and on the server using Apple's App Store Server Notifications (V2). For transactions with an inAppOwnershipType of FAMILY_SHARED, I receive REVOKE notifications that (sometimes) do not include a revocationDate. What does this imply, and what actions should I take? Additionally, when I query their transaction IDs using the App Store API, they also lack a revocationDate and do not appear in the results when I filter for revoked transactions. Is it appropriate to block these users? Why are server-to-server REVOKE notifications sent in the first place if the transaction does not appear as revoked in the API? Thanks
Posted
by nktbcc.
Last updated
.
Post not yet marked as solved
0 Replies
101 Views
I have been trying to enable in app purchase in sandbox environment but instead it keeps performing transactions in Xcode. Also Apple says in its docs to set up sandbox tester account in Settings > App store without signing out from the non sandbox account, and says the sign in will appear as soon as we perform a transaction on device, but it does not worked for me I have ensured and tried following things: Created sand box tester id Storekit configured , all the plans fetched Has development team Tried signing in Sandbox account Checked whether I am testing in production or development build by if else (It was in development) Tested on real device Please help me get through this
Posted Last updated
.
Post not yet marked as solved
0 Replies
74 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.4k 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
9 Replies
499 Views
The exchange rates seems to be completely off. If i choose 1.49€ as base it gets converted to 0,99$ but it should be 1,63 US Dollar, or at least more than 0,99$. The other way round is the same. If I choose 1.49$ it converts to 1.99€. That makes no sense. I would set the prices manually but there seem no upload csv files or something with prices and set them all manually would take years. On Google Play you can set pricing templates (but you don't need to because the automatic conversion works there) but in App Store you can only set prices manually or automatic with wrong conversion rates.
Posted Last updated
.
Post not yet marked as solved
0 Replies
135 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
143 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
0 Replies
125 Views
Hello! We have an application where users get access to cameras and intercoms in their residential complexes. Now there is a need to integrate and automate payments within the application using mobile SDK with payment through an online cash register. Please tell me whether there may be a conflict with the AppStore rules for integrating in-app purchases using a third-party mobile SDK to pay for services for video surveillance and intercom. Is a commission required for the AppStore? Custom path: The user logs into the application, sees that the subscription payment period for the service is coming to an end and proceeds to the payment form. Enter the required payment period and personal account number and generate and post the payment. Referring to paragraph 3.1.3(e), it seems that there should be no problems. But I could be wrong.
Posted
by a1key.
Last updated
.
Post not yet marked as solved
2 Replies
122 Views
Hi I'm working on IAP for my app, with all products being consumables. If I use App Store Server Notifications, will I get updates on the payment status (successful, failed, pending, etc.) of my products? I've worked on Android IAP, which provides such updates via subscriptions on Google Cloud Console. Does App Store Server Notifications work the same? The reason I need this is for the cases where the payment is slow, interrupted or any other potential issues.
Posted
by nmtuan14.
Last updated
.
Post not yet marked as solved
1 Replies
217 Views
We have been using the In-app-purchase API to manage Apple Store product prices, but since April 11, 2024, it started showing anomalies. For example, we would use this API to fetch the manually set prices for current products: https://developer.apple.com/documentation/appstoreconnectapi/read_price_information_for_an_in-app_purchase_price_schedule The URI with query and filter conditions is as follows: https://api.appstoreconnect.apple.com/v1/inAppPurchasePriceSchedules/product_id/manualPrices?fields[inAppPurchasePricePoints]=customerPrice,priceTier,proceeds,territory&fields[inAppPurchasePrices]=endDate,inAppPurchasePricePoint,manual,startDate,territory&include=inAppPurchasePricePoint,territory&fields[territories]=currency It was running normally at first, but after April 11, we started encountering an error: {"errors": [{"id": "e193b752-3012-49db-8b0e-1d08c8980b77","status": "400","code": "PARAMETER_ERROR.INVALID","title": "A parameter has an invalid value","detail": "'priceTier' is not a valid field name","source": {"parameter": "fields[inAppPurchasePricePoints]"}}] This is strange as there have been no similar cases reported online, and there are no mentions in the API documentation and update records either. Please help us check what the issue might be. Thanks!
Posted
by John-Pai.
Last updated
.
Post not yet marked as solved
0 Replies
139 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
137 Views
Hello everyone, I am developing a parking app where users can find and pay for parking. Instead of directly paying with real money, users can reload their points or stars balance and then pay with that virtual money. Would using Apple's IAP be compulsory or can I integrate my third-party payment system within the app? If not, what if I direct the user to a website? Thank you!
Posted
by mubin.
Last updated
.
Post not yet marked as solved
0 Replies
139 Views
Hey everyone, My app was just rejected with the follow reason: "We are unable to complete the review of your app because one or more of your in-app purchase products have not been submitted for review." However, _my app does not have any IAP. _ Apple notes that: To resolve this issue, please be sure to take action and submit your in-app purchases and upload a new binary in App Store Connect so we can proceed with our review. What should I do? Would submitting a fresh new meta data file rectify this? I'm not sure what to do.
Posted
by rbalbi44.
Last updated
.