In-App Purchase

RSS for tag

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

Posts under In-App Purchase tag

200 Posts
Sort by:

Post

Replies

Boosts

Views

Activity

Monthly Subscription is Changed to One-Time Purchase on Apple Store
We set up monthly subscription with a 1-month free trial. We tested it with Sandbox and TestFlight, and the subscription worked as expected. The app is now available on Apple Store, but the monthly subscription is changed to One-Time Charge on Apple Store. When we try to download our app, it asks One-Time Charge with the cost of the subscription fee before downloading the app. However, in our testing, the app was able to be installed without this One-Time Charge, and both free trial and subscription worked well. Does anyone have had the similar issue before? How would you suggest the fixing? Thanks in advance!
1
0
45
Mar ’25
StoreKit.product.purchase returns success, but subscription does not appear in Settings
Description: We are developing an iOS app that offers only one auto-renewable subscription. Recently, a user who had not subscribed for over a year purchased the subscription again through our app. However, when they checked Settings > Subscriptions, the new subscription did not appear. Instead, only their past subscription history was visible, and there was no option to cancel the new subscription. We have verified this issue with a screenshot provided by the user. Additionally, we checked our app’s logs and confirmed that StoreKit.product.purchase successfully returned .success, indicating that the purchase was processed correctly. Code used for purchase: let result = try await product? .purchase(options: [ .appAccountToken(uuid) ]) switch result { case .success(let verificationResult): switch verificationResult { case .verified(let transaction): addPurchaseLog("verificationResult.verified.") case .unverified(_, let verificationError): addPurchaseLog("verificationResult.unverified.") case .userCancelled, .pending, .none: addPurchaseLog("verificationResult.userCancelled or .pending or .none") @unknown default: addPurchaseLog("verificationResult.unknown.") } Despite the successful purchase, the new subscription does not appear under the user's active subscriptions. Could this be a bug in StoreKit? If there are any known issues or workarounds, we would appreciate any guidance. Environment: Xcode: 16.2 iOS version: 16.0+
4
0
143
May ’25
Enterprise and Individual Purchases
Our app is in early stages of development. The app will include a portion of the content/functionality for free and will also have premium content (non-consumable). The intent is to offer purchase via 2 distinct pathways. for individuals: in-app one-time purchase for enterprise customers: bulk purchase for their employees who can subsequently gain access to the content using an invitation code within the app. Section 3.1.3(c) of the App Review Guidelines begins with "If your app is only sold directly by you to organizations or groups for their employees or students..." Is it permitted under the App Review Guidelines to provide in-app purchasing for individuals as well as a pathway for enterprise clients to purchase for their employees or students? Additionally, is it permissible within the app to indicate to an individual user that an enterprise method is available to purchase access as an organization?
1
0
47
Mar ’25
Price Increase Notifications Not Present
Context: Back on March 4th, we scheduled a price increase for April 16th on one of our monthly subscription plans with several hundred active subscribers, to change the price from $18.99/mo to $19.99/mo and it has sat unedited in App Store Connect since. Expected: Based on this documentation (Increase the price of an auto-renewable subscription), I would expect that 27 days prior to the price increase (which would be 4 days ago, on March 20th), that users would start receiving notifications about the price increase in the form of emails to their Apple IDs and push notifications when they open up the app. We also have App Store Server Notifications V2 set up. Therefore, I expected to start receiving PRICE_INCREASE notifications as users either got emails and/or push notifications. Actual: We have yet to see any PRICE_INCREASE events come through. Additionally, we have one employee subscribed to this plan on production with a subscription that would renew on April 17th, which would mean that the 21st (3 days ago) was 27 days prior to his subscription renewing. He has checked his email and the app and has still not been notified in any way about the price increase and his subscription manager shows he will renew April 17th at the same price. Questions: Is there some other step that needs to happen for the price increase to take place? Are my expectations wrong about what we should see by this point, or else why might we not have had any indication of customer notifications of the price increase occuring yet?
0
4
53
Mar ’25
Can I not list in-app-purchase in some of the countries?
Hi! My app has a free feature and another feature require in-app-purchase to unlock. I am not listing the app in EU region due to digital service act. It is not a good idea to publish all my personal information on appstore. I just wonder if it is possible to still list my app on EU appstore but not the in-app-purchase. It will be great if the free feature still available to EU users. There will be a purchase button created using SwiftUI product view. In this case, users in EU will be very confused because the in-app-purchase will not be located. Not really sure if apple will allow my app to be listed and the in-app-purchase product view would be causing confusion to user. If anyone got any suggestion, please let me know!
0
0
39
Mar ’25
Transaction ID Misassociation in IAP Subscription API
Dear Apple Support Team, Hello! I am currently developing the in-app subscription functionality using Apple IAP API and have encountered a serious technical issue while processing subscription data. I would like to report this issue to you. Issue Description: When calling the subscription API endpoint, the same OriginalTransactionId returns inconsistent results. Specifically, a particular transaction ID (let's call it TransactionId_A) should belong to the subscription order with OriginalTransactionId_A, but it is currently incorrectly associated with OriginalTransactionId_B. This issue severely affects our ability to accurately manage and process subscription data. Here are the relevant log details for your reference: API Endpoint Requested: https://api.storekit.itunes.apple.com/inApps/v1/subscriptions/{TransactionId_A} (Note: The link is a placeholder for the actual API endpoint.) Log Information on February 21, 2025, at 09:40:09: { "AppAccountToken": "{AppAccountToken}", "BundleId": "{BundleId}", "Currency": "CNY", "Environment": "Production", "ExpiresDate": {ExpiresDate}, "InAppOwnershipType": "PURCHASED", "IsUpgraded": false, "OfferDiscountType": "", "OfferIdentifier": "", "OfferType": 0, "OriginalPurchaseDate": {OriginalPurchaseDate}, "OriginalTransactionId": "{OriginalTransactionId_A}", "Price": {Price}, "ProductId": "{ProductId}", "PurchaseDate": {PurchaseDate}, "Quantity": 1, "RevocationDate": 0, "RevocationReason": 0, "SignedDate": {SignedDate}, "Storefront": "CHN", "StorefrontId": {StorefrontId}, "SubscriptionGroupIdentifier": "{SubscriptionGroupIdentifier}", "TransactionId": "{TransactionId_A}", "TransactionReason": "PURCHASE", "Type": "Auto-Renewable Subscription", "WebOrderLineItemId": "{WebOrderLineItemId}" } Log Information on March 21, 2025, at 09:38:49: { "AppAccountToken": "{AppAccountToken}", "BundleId": "{BundleId}", "Currency": "CNY", "Environment": "Production", "ExpiresDate": {ExpiresDate}, "InAppOwnershipType": "PURCHASED", "IsUpgraded": false, "OfferDiscountType": "", "OfferIdentifier": "", "OfferType": 0, "OriginalPurchaseDate": {OriginalPurchaseDate}, "OriginalTransactionId": "{OriginalTransactionId_B}", "Price": {Price}, "ProductId": "{ProductId}", "PurchaseDate": {PurchaseDate}, "Quantity": 1, "RevocationDate": 0, "RevocationReason": 0, "SignedDate": {SignedDate}, "Storefront": "CHN", "StorefrontId": {StorefrontId}, "SubscriptionGroupIdentifier": "{SubscriptionGroupIdentifier}", "TransactionId": "{TransactionId_A}", "TransactionReason": "PURCHASE", "Type": "Auto-Renewable Subscription", "WebOrderLineItemId": "{WebOrderLineItemId}" } From the above logs, it is evident that the same transaction (TransactionId_A) returns different OriginalTransactionId values at different times, which is clearly not expected and severely impacts our ability to correctly process and manage subscription data. I hope you can address and investigate this issue as soon as possible. If you need any further information or assistance, please feel free to contact me. Thank you for your support! Best regards!
6
4
820
Apr ’25
Transaction ID Misassociation in IAP Subscription API
Dear Apple Support Team, Hello! I am currently developing the in-app subscription functionality using Apple IAP API and have encountered a serious technical issue while processing subscription data. I would like to report this issue to you. Issue Description: When calling the subscription API endpoint, the same OriginalTransactionId returns inconsistent results. Specifically, a particular transaction ID (let's call it TransactionId_A) should belong to the subscription order with OriginalTransactionId_A, but it is currently incorrectly associated with OriginalTransactionId_B. This issue severely affects our ability to accurately manage and process subscription data. Here are the relevant log details for your reference: API Endpoint Requested: https://api.storekit.itunes.apple.com/inApps/v1/subscriptions/{TransactionId_A} (Note: The link is a placeholder for the actual API endpoint.) Log Information on February 21, 2025, at 09:40:09: { "AppAccountToken": "{AppAccountToken}", "BundleId": "{BundleId}", "Currency": "CNY", "Environment": "Production", "ExpiresDate": {ExpiresDate}, "InAppOwnershipType": "PURCHASED", "IsUpgraded": false, "OfferDiscountType": "", "OfferIdentifier": "", "OfferType": 0, "OriginalPurchaseDate": {OriginalPurchaseDate}, "OriginalTransactionId": "{OriginalTransactionId_A}", "Price": {Price}, "ProductId": "{ProductId}", "PurchaseDate": {PurchaseDate}, "Quantity": 1, "RevocationDate": 0, "RevocationReason": 0, "SignedDate": {SignedDate}, "Storefront": "CHN", "StorefrontId": {StorefrontId}, "SubscriptionGroupIdentifier": "{SubscriptionGroupIdentifier}", "TransactionId": "{TransactionId_A}", "TransactionReason": "PURCHASE", "Type": "Auto-Renewable Subscription", "WebOrderLineItemId": "{WebOrderLineItemId}" } Log Information on March 21, 2025, at 09:38:49: { "AppAccountToken": "{AppAccountToken}", "BundleId": "{BundleId}", "Currency": "CNY", "Environment": "Production", "ExpiresDate": {ExpiresDate}, "InAppOwnershipType": "PURCHASED", "IsUpgraded": false, "OfferDiscountType": "", "OfferIdentifier": "", "OfferType": 0, "OriginalPurchaseDate": {OriginalPurchaseDate}, "OriginalTransactionId": "{OriginalTransactionId_B}", "Price": {Price}, "ProductId": "{ProductId}", "PurchaseDate": {PurchaseDate}, "Quantity": 1, "RevocationDate": 0, "RevocationReason": 0, "SignedDate": {SignedDate}, "Storefront": "CHN", "StorefrontId": {StorefrontId}, "SubscriptionGroupIdentifier": "{SubscriptionGroupIdentifier}", "TransactionId": "{TransactionId_A}", "TransactionReason": "PURCHASE", "Type": "Auto-Renewable Subscription", "WebOrderLineItemId": "{WebOrderLineItemId}" } From the above logs, it is evident that the same transaction (TransactionId_A) returns different OriginalTransactionId values at different times, which is clearly not expected and severely impacts our ability to correctly process and manage subscription data. I hope you can address and investigate this issue as soon as possible. If you need any further information or assistance, please feel free to contact me. Thank you for your support! Best regards!
3
3
261
Mar ’25
Old developer account still receiving payments after migration
Hi, I've migrated my app to another developer account more than half a year ago, but I'm still receiving a few transaction payments in the old developer account, which currently has no app. The payment date shown in the report is last month. I'm wondering how could this happen. Is it possible for users to initiate a transaction half a year ago and only successfully pay it now?
1
0
46
Mar ’25
To get the original_transaction_id for a specific period of time in bulk.
We are distributing an application using in-app-purchase with subscription. In order to expand customer support and more optimally timed marketing activities, We want to retrieve the billing status and number of billing users managed on the Apple side and regularly verify that the data we are aware of on the server side is up-to-date. Currently, the App Store Server API provides a way to retrieve status using individual original_transaction_id, but there seems to be no official way to retrieve original_transaction_id for a specific period at once. The same was also true for App Store Server Notifications. Is there a way to specify a period of time, the Apple ID of an app, etc., and obtain the original_transaction_id or transaction_id for a specific period of time?
0
1
123
Mar ’25
In-App Subscription
Hi, I have a problem with StoreKit regarding in-app subscription purchases. When I upload the app to TestFlight and during the review process, it doesn’t work on a real device. However, it works fine on the simulator. I get the error: "Subscription unavailable" (see image). Does anyone know what might be causing this and how to fix it? Please help!
1
0
177
Mar ’25
How does Apple determine consumptionStatus for subscription refunds?
Hello, We are an app developer offering subscription-based services, and we want to better understand how Apple determines the consumptionStatus when processing refund requests for in-app subscriptions. Based on Apple’s documentation on subscription refund requests, we understand that the consumptionStatus value plays a key role in Apple’s refund decision-making process. However, the documentation does not provide a clear guideline on how much usage qualifies as consumptionStatus = 2 (partially used) vs. consumptionStatus = 3 (fully used). Our key questions: 1. Usage Threshold: Does Apple have a specific percentage of subscription duration (e.g., 20% of the subscription period) that determines whether a subscription is considered “fully used”? 2. Function-Based Usage: Does Apple prioritize certain types of user actions (e.g., unlocking premium content, engaging with subscription features) when evaluating consumptionStatus? 3. Best Practices: Are there recommended best practices to increase the credibility of our consumptionStatus = 3 submission to minimize unjustified refunds? 4. Refund Preference Impact: If we set refundPreference = 2 (deny refund), how much influence does it actually have on Apple’s decision? We aim to reduce unnecessary refunds while ensuring fairness to our users. Any official guidance or insights from other developers would be greatly appreciated! Thank you!
0
0
165
Mar ’25
IOS IAP initialization failed: NoProductsAvailable - No Product returned from store but this app works on Android and google play store
works perfectly on android but doesn't work at all on IOS and i have used the same bundle id and product ids on both stores. The error that i get on IOS is : "IAP initialization failed: NoProductsAvailable - No Product returned from store" Here are the things that i've done: Created an App ID on the apple developer portal with the correct capabilities I have enabled the correct capabilities on the xcode project Unity Framework is embed and signed, Storekit (do not embed) In singin and capabilities in-app purchases is there I am using testflight to submit the app with a distribution certificate that appears to be valid I've checked the the bundle identifier and it's the same everywhere (unity project, xcode project, App ID) All of the products are cleared for sale and are in the status "ready to submit" I always uninstall the old app version before testing the new one My banking updates are still processing does this effect TestFlight IAP Paid Apps Agreement is in Pending User Info state does this effect also I still haven't filled out the tax forms, so I'm wondering if I need to complete them before my app's in-app purchases (IAPs) work in TestFlight.
3
0
324
Apr ’25
How to handle external purchases on iOS 15.4 - 17.3 without StoreKit modal?
Hello everyone, I’m implementing external purchases in my app and I’m using ExternalPurchase.linkToExternalPurchase() on iOS 17.4+ to display the Apple modal for external purchases. However, I need to handle purchases on iOS 15.4 - 17.3, where StoreKit’s external purchase APIs do not provide tokens and return false. Questions: What is the recommended fallback for iOS 15.4 - 17.3 since the Apple modal is not available? Should I display a custom modal or directly open a WebView with the purchase page? On iOS < 15.4, since external purchase APIs are unavailable, is it acceptable to open the external purchase page directly in Safari instead of within the app? Will Apple reject the app if I use a custom modal for purchases on iOS 15.4 - 17.3 instead of the Apple-provided one on iOS 17.4+? I want to make sure my implementation complies with Apple’s guidelines while providing the best experience for users on older iOS versions. Thanks in advance for your help!
1
0
170
Mar ’25
app signatures do not appear in sandbox
I've been trying to make my app available on the App Store for a month now, but I can't because the signatures I created don't appear in the sandbox app. I did all the configuration in the store and in the app. I tested the same code in another app with signatures and it was loaded, but the signature for that specific app doesn't appear. I've tried contacting Apple support, but they can't help me. It almost seems like it's on purpose. I'm treated like crap and they don't even give me an explanation about what's happening. Can anyone help me?
0
1
143
Mar ’25
How to remove an In-App Purchase from App Store Connect that's "In Review"
Our app is getting rejected because they can not find our lifetime offering in app purchase. We added it as a test, but now would like to remove it from App Store connect, but in the UI on the website, I see no option to remove it. It has been "In Review" for a while. We marked it as "Remove from Sale", but we are still getting rejected. Any advice?
1
0
264
Mar ’25