After successfully passing the review for version 1.0, I was consistently rejected after updating to version 1.0.1 with 4.3 (a). However, I only added some paid products to the original features, and did not make any changes to the layout or UI design. Why do you keep rejecting me.
Multiline
BlockQuote
hello,
Thank you for your message.
Regarding Guideline 4.3(a), we continue to notice that your app shares a similar binary, metadata, and/or concept as apps submitted to the App Store by other developers, with only minor differences.
Some factors that contribute to a spam rejection may include:
Submitting an app with the same source code or assets as other apps already submitted to the App Store
Creating and submitting multiple similar apps using a repackaged app template
Purchasing an app template with problematic code from a third party
Submitting several similar apps across multiple accounts
We hope that you will make the appropriate changes to your app to bring it into compliance with the App Store Review Guidelines and resubmit your app for review.
Best regards,
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
I recently submitted an App update, but it was rejected several times, because the free 3-day trial of the subscription product was not displayed, but the app interface advertised the free trial.
At present, this subscription product has been approved by AppStore. Previous versions have 3 days of free promotional information appeared.
This version was rejected after the update, after local testing found that even if we use the new sandbox test account test, always can not get free 3-day discount information. I then tested other apps that had already been developed and were unable to get the 3-day free offer.
However, my application update this time did not change the code logic related to in-app purchase, but the experience optimization of other functions.
I guess it is because of the new product conference of Apple on September 10th, and whether Apple's policies and systems have been updated?
Since this pop-up interface is StoreKit pop-up, the developer can not do anything about it.
I wonder if anyone else has had the same problem as me?
I hope relevant developers or technicians can provide technical help, thank you very much!
I recently submitted an App update, but it was rejected several times, because the free 3-day trial of the subscription product was not displayed, but the app interface advertised the free trial.
At present, this subscription product has been approved by AppStore. Previous versions have 3 days of free promotional information appeared.
This version was rejected after the update, after local testing found that even if we use the new sandbox test account test, always can not get free 3-day discount information. I then tested other apps that had already been developed and were unable to get the 3-day free offer.
However, my application update this time did not change the code logic related to in-app purchase, but the experience optimization of other functions.
I guess it is because of the new product conference of Apple on September 10th, and whether Apple's policies and systems have been updated?
Since this pop-up interface is StoreKit pop-up, the developer can not do anything about it.
I wonder if anyone else has had the same problem as me?
I hope relevant developers or technicians can provide technical help, thank you very much!
Hello there,
I understand that the "transaction_id" key is always unique whenever any transaction happens, whether it occurs due to auto-renewal of a subscription.
The "original_transaction_id" always remains the same across all transactions of a single subscription. But why does it stay the same when the subscription expires or is canceled, and we purchase the same subscription again with the same Apple account? Why does the "original_transaction_id" stay the same?
The reason I'm concerned is this: let's consider a situation where User1 purchases a subscription, and then their subscription is canceled or expires. Then User2, using the same Apple account, purchases the same type of subscription, and we get the same "original_transaction_id" for User2 as well. In this case, User1’s receipt also gets updated with the latest "expires_date_ms," which can cause one subscription to benefit two users.
I hope I explained my query correctly.
Regards,
Shivam
Hello,
Our project did not approve because of the in-app purchase did not work, i need help! (Guideline 2.1 - Performance - App Completeness)
We've done it several times in TestFlight and sorry the in-app purchase connection doesn't work, before getting the final output the in-app purchase debugging is done correctly in editor unity, i wanted to make sure before testing the in-app purchase whether the bank account form Should it be approved?
Because of the bank account form, I could not find the code and branch, so I sent a ticket to financial support and sent the bank documents and I am waiting for the answer.
Regards,
Hi, My account is a fee-waived account. I need to sign the Paid App Agreement for in-app purchases. But it doesn't appear in the agreements section. Not only that, it doesn't appear in the area where I enter my bank account information. Does anyone have any information?
We recently submitted an update to an existing app that already has an in app purchase for an annual subscription which works perfectly fine. However, the update has been rejected 5 times by Apple stating the in app purchase does not work. We have not made any changes to the update regarding the in app purchase AND the in app purchase works perfectly fine on device testing AND in flight test.
Can some one please help? Anyone know what is going on?
Dear Apple Development Team,
I would like to draw attention to certain aspects of working with Server Notifications for In-App Purchases that could be improved to enhance development convenience and API efficiency.
1. Lack of Information on Non-Consumable Purchases in Server Notifications
Currently, Server Notifications do not provide information about non-consumable purchases. This creates certain inconveniences when validating such purchases on the server. It would be extremely useful to have the ability to verify non-consumable purchases in the same way as subscriptions.
Moreover, there is currently no way to obtain information about the amounts paid for non-consumable purchases, even with additional API requests. This limitation significantly complicates financial reporting and analytics for apps that utilize non-consumable purchases. While we can obtain information about the amount paid by the user for a subscription, we have no equivalent capability for non-consumable purchases.
Adding this information to Server Notifications or providing an API endpoint to retrieve it would greatly improve our ability to track and analyze non-consumable purchase data without relying on client-side reporting.
2. Inconsistency in Token and Signature Handling
There is some inconsistency in the approaches to authentication and verification between various Apple APIs. For example:
When using Sign In with Apple, the approach with keyid is applied for JWT verification.
In Server Notifications for In-App Purchases, certificate information is repeatedly duplicated in each notification.
This leads to the need to implement different methods of JWT verification depending on the API being used. Additionally, the current approach with Server Notifications results in data redundancy: the useful payload is about 1.5 KB, while repetitive certificate information takes up about 17 KB in each notification.
Unifying authentication and verification approaches across different APIs could significantly simplify development and improve data processing efficiency.
We would appreciate consideration of these suggestions for API improvement. This could substantially simplify developers' work and increase the efficiency of integrating Apple services into applications.
Thank you for your attention to this matter.
Hey everyone 👋
I am wondering how to create a dynamic multiple subscriptions in the same app
scenario -> the app has multiple creators [Streamer] and user can subscribe monthly to each one as a separate subscription.
how to develop this approach using in-app purchases?
thanks
Hello,
I am making an e-commerce app. We plan to charge user's to make a listing for 15% of the sale price capped at £35, and are trying to figure out if we need to use IAP?
From what I can find, other companies in the same area don't use them - for example Autotrader takes you off their app to there website when you try to make a listing, and you pay for the listing there.
Any advice would be greatly appreciated.
Hello, I'm using 'App Store Server Notifications V2'.
I have a question about 'CONSUMPTION_REQUEST' notification in 'notificationType'.
What problems can occur if the send consumption information API is called without user consent? For example, could there be penalties such as refusing to update the app or blocking the service?
It seems that starting from around 2024-08-20T10:28:00 UTC, both the "trialPeriod" and "introOfferPeriod" fields are set to true in the receipt data of free-trial subscriptions. Before that time only trialPeriod was set to true while introOfferPeriod was false.
Just want to confirm whether this is an expected and permanent change?
Thanks.
Hi all, i have a question: with a individual account, is it possible to add a bank account belonging to an organization/company/enterprise? If so, what additional information do I need to provide to Apple, and how long does it take for Apple to approve?
Thank a lot!
When verifying the receipt to 'https://sandbox.itunes.apple.com/verifyReceipt', the status code 21199 is always returned. Even if the verification is performed again after an interval, the status code 21199 is still returned. How can this problem be solved?
Hello, The guide document guides 'This endpoint isn't available in the sandbox environment.' Why does the Sandbox URL exist?
Will the order ID be created if purchase occurs in the Sandbox environment?
https://developer.apple.com/documentation/appstoreserverapi/look_up_order_id
Two issues:
In-app promo code for a consumable item is not delivering/unlocking that item for the customer. The promo code says it's redeemed and can't be re-used, which shows the customer is following the correct process.
In-app promo code for a subscription will not unlock. It claims the code can only be used from a gift card ('This requires a gift card with a box around the code'), and tells the customer to use a camera with the nonexistent gift card. Obviously we have given a code to the user, not a gift card.
Both in-apps work correctly if purchased from within the app as a test purcase, so it's not a code/setup problem.
It's not user error.
The app has been live for at least 6 years.
What's changed?
Sever notifications v1 is already deprecated and we are supposed to use the new v2 server notifications and yet arguably the most important notification type is not available for production.
Hello everyone, we have a question, so currently we are trying to publish our course app, but we need to implement in app payment for the digital content, okay this is understood, but we also have in person consultation that will be reserved from the application, either for one day or multiple day, the question is, this won't be digital and will require in person, can we in this case use webview for this specific payment or provide external web link for the reservation, as this is not digital content, we want confirmation and more info on this, Thanks all!.
Hi everyone,
I'm encountering an issue while testing a subscription purchase with a promotional offer using StoreKit in the Xcode debug environment. I’ve created a subscription in the StoreKit configuration file and added a promotional offer. However, when I attempt to make a purchase with the promotional offer, the process fails, and I receive an alert with the message:
"Unable to purchase"
"Contact the developer for more information."
Here’s the error that is printed in the Xcode logs:
Purchase did not return a transaction: Error Domain=ASDErrorDomain Code=3903 "Received failure in response from Xcode" UserInfo={NSDebugDescription=Received failure in response from Xcode, NSUnderlyingError=0x303346b50 {Error Domain=AMSErrorDomain Code=305 "Server Error" UserInfo={NSLocalizedDescription=Server Error, AMSServerErrorCode=3903, AMSServerPayload={
"cancel-purchase-batch" = 1;
dialog = {
defaultButton = ok;
explanation = "Contact the developer for more information.\n\n[Environment: Xcode]";
initialCheckboxValue = 1;
"m-allowed" = 0;
message = "Unable to Purchase";
okButtonString = OK;
};
dsid = 17322632127;
failureType = 3903;
jingleAction = inAppBuy;
jingleDocType = inAppSuccess;
pings = (
);
}, AMSURL=http://localhost:49300/WebObjects/MZBuy.woa/wa/inAppBuy, AMSStatusCode=200, NSLocalizedFailureReason=The server encountered an error}}}
Has anyone encountered a similar issue, or does anyone have insights into what might be causing this? I’m using StoreKit 2 methods for handling subscriptions, and this error only occurs when attempting to apply the promotional offer. Any help or suggestions would be greatly appreciated!
Thanks in advance!
I’m developing an app similar to Patreon where creators can decide if they want to charge either $5 or $10 a month for users to be able to view their content (each creator can only have one subscription price defined)
I came across information that the only way users can subscribe to multiple subscriptions (each from a different creator) in one app, those subscriptions need to be defined in their own Subscription Group. However, it seems that Subscription Groups need to be manually, pre-defined through an online portal and go through an approval process. So the number of Subscription Groups created would have to match the number of creators.
This wouldn’t scale because I need the ability for those subscriptions to be created on the fly when new creators sign up.
Am I understanding that correctly? If so, how can I get around this?