How would you go about handling this sort of situation?
An app has two tiers of non-consumable in-app purchases. The IAP simply unlocks a certain level of access in the app:
The first tier for $1.99 allows the user to add up to 50 things.
The second tier for $3.99 allows the user to add up to 200 things.
If the user has not bought an IAP the app will show the two tiers available for purchase.
The user then buys Tier 1 and happily goes about adding some things to the app.
The app now only shows Tier 2 available for purchase, because Tier 1 has been purchased.
A few weeks go by and they realise they need to add more than 50 things.
Would the user have to suck it up and just accept they should've paid the $3.99?
Or, could a new Tier 1.5 be added that's a kind of upgrade price of $2.00 (the difference between the two original tiers) to unlock the higher 200 things level? I doubt this would work properly, because although I can control that tier being displayed or not in the app, I cannot control it in the App Store product pages, and it would be displayed among the Tier 1 and Tier 2 levels, so people would just buy that rather than the full priced Tier 2.
How should I handle this situation? Just have the one tier (Tier 2) and make it simpler?
In-App Purchase
RSS for tagOffer 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
Does anyone know why I set the offer code in Apple Store Connect, but when I call SKPaymentQueue.default().presentCodeRedemptionSheet() in the app, the app icon does not appear and I cannot find the offer code?
THX
Does anyone know why I set the offer code in Apple Store Connect, but when I call SKPaymentQueue.default().presentCodeRedemptionSheet() in the app, the app icon does not appear and I cannot find the offer code?
Thx
Our macOS app has one in-app purchase (IAP) implemented using StoreKit 1. It works for us and beta testers but App Review get SKErrorDomain Error Code 0 / ASDErrorDomain Code 500 / AMSErrorDomain 305 on first attempt to make the in-app purchase.
However, the purchase succeeds at second attempt. We've looked through our entire IAP related code and App Store Connect setup but can’t find the reason. It's a standard implementation:
LegacyPaymentQueueObserver for SKPaymentQueue observation.
AppDelegate for initiation of payment queue observation on app launch
LegacyStoreKitPurchasableProduct for initiating a purchase and listening for the result
LegacyStoreKitProductsRequester for how we load the product before user can make in-app purchase. It happens this way:
PreviewResultsViewModelcalls loadProducts()on an instance of StoreKitPurchaseManager, which asks an instance of LegacyStoreKitProductsRequesterto requestProducts(forIdentifiers:)
Any guidance to resolve this would be appreciated.
I have been trying to do a post request on this appstore api endpoint to be able to set availability on USA territory. However even after following the payload body I still get the error of no matching resource was included.
Here is my payload:
payload = {
data: {
attributes: {
availableInNewTerritories: true
},
relationships:{
app:{
data: { type: "apps", id: app_id }
},
territoryAvailabilities: {
data: [{
id: "#{territory_id}",
type: "territoryAvailabilities"
}]
}
},
type: "appAvailabilities"
},
included: [{
id: "#{territory_id}",
type: "territoryAvailabilities"
}]
}
and this is the api error response I get:
{
"errors" : [ {
"id" : "2c42b5cc-4.....",
"status" : "409",
"code" : "ENTITY_ERROR.RELATIONSHIP.INVALID",
"title" : "The provided entity includes a relationship with an invalid value",
"detail" : "The relationship 'territoryAvailabilities' expects an included resource with type 'territoryAvailabilities' and id 'USA' but no matching resource was included.",
"source" : {
"pointer" : "/included"
}
} ]
}
I am confused as to what the error was referring to as I added the included payload as array and the ids and type match with the territoryAvailabilities relationships as well.
When I try to cancel it I get "Your request is temporarily unable to be processed. Please try again". I have since created a new test user from "Users and access", set the renewal for subscriptions to be at 5min. Added the new test user on my iPad where I am developing locally as a sandbox account, and then purchased the same subscription. And same problem happened - I can't cancel it from Apple ID -> Subscriptions. Getting the very same error. Also the subscription there seems to renew on a daily base and not on every 5 minute as I have set it. If I try "Clear purchase history" from the "Users and Access" from AppStore connect - nothing happens, I still see the subscription and I can't purchase it again.
Please advise how to proceed in this situation. This happens on iOS 15.5 if it does matter and I am using StoreKit2.
Regards,
Al
Situation
I have had IAPs rejected more than 10 times. My app only had one non-consumable product.
Now I developed a new feature that requires credits as it uses a paid-service in the background.
Notes from App Review
New type: Consumable
Previous type: Non-Consumable,
Recommend: Download
The binary of the app is new (more than 14 days).
What have I tried?
I have tried explaining them what are the different features, the one that can be used forever after buying the app, and the one that can be used with credits.
I have pushed the app's binary for review and it was approved. I canceled the release as it makes no sense without the new IAPs.
I tried sending them this note:
PLEASE: If you reject it, please, please please write a bit more than .
They rejected with the same copy-paste.
I have read the 3.1.1 and cannot identify what I am violating.
Any help is really appreciated.
We have in-app purchases live and working fine for standard subscriptions.
We also have promotional offers active for existing users (to give existing users a discount as a thank you).
Yet, regardless of the user type (existing vs new... we have tested with all types), we get the "Your account is not eligible for this offer" error message when clicking the discounted offer.
What is the logic for determining eligibility?
I'm trying to debug as it's not clear to me why this message would show up.
We are using React Native IAP.
In general, how does the eligibility check work? What conditions are being evaluated and compared? And what could break those conditions?
I appreciate your help!
DDD
When attempting to use apple promotional offers for subscriptions I consistently receive the popup that says "Offer Not Available" for both production and sandbox. Without offer code purchase working fine. I have verified the App Store Connect setup and client side code and even created new offer codes also, but I have hit a dead end.
Error:- (Error Domain=SKErrorDomain Code=18 "(null)" UserInfo={NSUnderlyingError=0x280dbb0f0 {Error Domain=ASDServerErrorDomain Code=3904 "Offer Not Available" UserInfo={NSLocalizedFailureReason=Offer Not Available}}})
Our problem is that our app was rejected for "Guideline 3.1.1 - Business - Payments - In-App Purchase". Specifically, "the app uses a promo code to unlock or enable paid features in store".
Our app does use promo codes. But these codes do not directly unlock paid functionality. What our app actually does with promo codes is as follows... We have products with ids "Product1" and "Product1_Discount1". These are both valid product definitions in Apple IAP. They enable the same features within the app but have different price definitions. We allow the user to enter an optional promo code. We consult our backend to see if the promo code allows the user the opportunity to purchase "Product1_Discount1", and if it does we display the info defined by "Product1_Discount1", otherwise, we display the info defined by "Product1".
We are trying to understand a) is it always going to be a guideline violation to offer our own promo codes for in-app purchases (these are not Apple generated codes, we generate them)?, or b) is there a scenario where it is acceptable to manage our own promo codes for in-app purchases?
We didn't see anything in the guidelines that prohibited us to define multiple IAP products that have different prices but enable the same functionality. Is this allowed?
Our business goal is to share revenue of purchases that our partners promote which we track using their designated promo codes. Is our approach a definite guideline violation? If so then what is the recommendation to achieve our business goal?
Thanks
We have some group of users who may be invited through offline events such as exhibition. is it possible we can offer a special offer of subscription for those visitors?
Hello Apple Developer Support,
I hope this post finds you well. I have several questions regarding the refund process, developer commission, and revenue payout, and I would appreciate your insights on the following:
1/ Refund Process:
When a customer cancels an order, when will Apple process the refund for the developer? How long does it typically take for developers to receive the refunded amount?
2/Developer Commission:
How does the commission for developers work in the event of a refund? Does Apple adjust the commission or deduct any percentage in case of a refund?
3/Refund Notifications:
Is there a notification system that alerts developers when a customer cancels an order and a refund is processed?
4/Revenue Payout:
How long does it take developers to receive the revenue from purchases, and is there a specific payout schedule for this?
5/Commission Percentage for Small Earnings:
If the developer's total earnings are under 1 million VND, what is the commission rate that applies?
Thank you in advance for your assistance. I look forward to your response.
We're experiencing an unusual issue with SKProductsRequest in our app's in-app purchases. Despite confirming that all our product IDs are correct, the invalidProductIdentifiers property of SKProductsResponse sometimes contains all the requested product IDs. Here are the specifics:
The issue occurs randomly and is not persistent.
For instance, around 2024-12-26 -8.0 01:06:04, this problem occurred 3 times in quick succession.
The didFailWithError method of SKRequestDelegate is not triggered, reporting no errors.
Some users report that after encountering this issue, it resolves itself after about an hour.
However, other users have reported this problem persisting for several days.
We have repeatedly verified the correctness of our product IDs. Given the intermittent nature of the problem, we suspect this might be an issue on the App Store server side. We're looking for suggestions to resolve or mitigate this issue to improve the reliability of in-app purchases in our application.
Has anyone encountered a similar issue? Or does anyone have suggestions that could help us further diagnose and resolve this problem?
I get these errors. I think I've checked everything possible.
"entitlements file, Identifiers etc."
but I couldn't find a solution. I tried manual signing as well. Same result.
The profiles I added also become invalid after a while.
Everything seems normal in my developer account.
I'm considering developing an app where users can create their own subscription plans by freely setting their prices, similar to YouTube's membership feature.
I understand that in-app purchases must be used to unlock features within the app. With that in mind, I searched for APIs to enable this functionality but couldn't find relevant information.
When I contacted Apple directly, they mentioned that they couldn't provide specific answers unless the app is under review.
If anyone has knowledge about the following points, I would greatly appreciate your response:
Is it possible to implement a feature similar to YouTube's membership using in-app purchase APIs?
If it's not feasible with in-app purchases, is it allowed to use external payment services like Stripe?
This question is about In-App Purchase.
This is an inquiry from one of our customers.
We have set up a free trial. This is your first time using the service, but you have stated that you have been charged.
Document.
https://developer.apple.com/documentation/appstorereceipts/is_trial_period
「You can use this value to determine whether the specific record is in a subscription trial period. If a previous subscription period in the receipt has the value "true" for either the is_trial_period or is_in_intro_offer_period keys, the user is not eligible for a free trial or introductory price within that subscription group.」
Our expectation is that is_trial_period is true.
Receipt is not contain is_trial_period : true or is_in_intro_offer_period : true.
Only one case has occurred. Other customers are no problem.
My in-game purchases have been consistently rejected and passed the review process for the first time. However, the in-game purchases have been waiting for review. I submitted a package with version number+1, but the in-game purchases are still waiting for review. I removed the old in-game purchases and re submitted them for review, but the in-game purchases have been consistently returned. What is the reason for this and how can I resolve it
First double charge in a same item, i ask the game developer they accept my refund request, but i don’t know why apple rejected my request, they said i haven’t strongly support? how can i send him the support? there are no attach button allow me the send him the conversatio via email. Then suddenly charge me 2 times i haven’t buy item. i request refund they also rejected…why? i didn’t get anything from the game but i had pay already. who can help me to get back my money. totalHK188 miss charged. this is not fair they stole my money. i don’t know why the game developers accept my refund request, who gave apple the right to reject
Hello,
I'm trying to create a subscription for one of my apps.
When I specify the Product ID yearly_3, I get the following error message: The Product ID you entered is already being used by another subscription.
This app does not have any other subscriptions with this Product ID.
But I have another app with a yearly_3 Product ID.
According to the official documentation, the Product ID is A unique ID specific to your app. So I thought it was possible to have the same Product ID between apps, but not for the same app.
What's the rule here?
Thanks,
Axel
I’m updating an old app which uses StoreKit and hosted in-app purchases (multimedia add-ons).
The original .pkgs are missing and the only known place they exist intact is on Apple’s servers.
The app is able to download and install the IAPs. Is there anyway to save them to the local device?