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

Post

Replies

Boosts

Views

Activity

IAP Product Fetch Returns Empty Array in React Native iOS App
We're experiencing an issue with in-app purchases in our React Native iOS app where RNIap.getProducts() is consistently returning an empty array, preventing users from making purchases. Technical Details: Using react-native-iap library Product ID: '[REDACTED]' Platform: iOS Product Type: Consumable (one-time payment, NOT subscription) Error in logs: "No products returned from App Store. Check App Store Connect." Debugging shows: Products Fetched: [] Steps to Reproduce: Open app and navigate to the quiz feature Attempt to purchase additional quiz attempts Modal opens but fails to load product information What We've Confirmed: IAP Connection initializes successfully No error is thrown during product fetch, just an empty array returned App is configured with correct Bundle ID Using Apple Sandbox test account We are implementing consumable purchases (one-time payments) Potential Issues to Investigate: Product configuration in App Store Connect Ensure product is set as "Consumable" type in App Store Connect Sandbox tester account permissions/activation Bundle ID matching between app and App Store Connect Product ID case sensitivity or typos
0
0
49
Apr ’25
Error of in app purchase Error Domain=ASDErrorDomain Code=500 "(null)"
I would like to inquire about an error that has started occurring while debugging AppStore billing. (In sandbox environment) This error occurs after entering a password and completing the purchase process, and in this case, no completion alert appears. The error doesn't seem to depend on the purchase item, sandbox account, or device, and shows unstable behavior - sometimes succeeding and sometimes failing. Additionally, this error started occurring after special debugging where the network was disconnected during the purchase process. Moreover, the same error occurs in the TestFlight version of our already released normal (supposedly) version. I think this might be a sandbox-specific error where the system has temporarily become unstable, but what do you think? If so, how can I resolve this issue? I would appreciate your insights on the cause and appropriate response. Error details below: <SKPaymentQueue: 0x283b3d070>: Payment completed with error: Error Domain=ASDErrorDomain Code=500 "(null)" UserInfo={NSUnderlyingError=0x28364d770 {Error Domain=AMSErrorDomain Code=305 "Purchase Failed" UserInfo={NSLocalizedDescription=Purchase Failed, AMSStatusCode=200, AMSServerPayload={ "cancel-purchase-batch" = 1; customerMessage = "Unauthorized_message"; failureType = ""; "m-allowed" = 0; pings = ( ); }, NSLocalizedFailureReason=Server canceled the purchase}}, storefront-country-code=JPN, client-environment-type=Sandbox}
0
0
58
Apr ’25
Payment completed with error: Error Domain=ASDErrorDomain Code=500 "(null)"
I would like to inquire about an error that has started occurring while debugging AppStore billing. (In sandbox environment) This error occurs after entering a password and completing the purchase process, and in this case, no completion alert appears. The error doesn't seem to depend on the purchase item, sandbox account, or device, and shows unstable behavior - sometimes succeeding and sometimes failing. Additionally, this error started occurring after special debugging where the network was disconnected during the purchase process. Moreover, the same error occurs in the TestFlight version of our already released normal (supposedly) version. I think this might be a sandbox-specific error where the system has temporarily become unstable, but what do you think? If so, how can I resolve this issue? I would appreciate your insights on the cause and appropriate response. Error details below: <SKPaymentQueue: 0x283b3d070>: Payment completed with error: Error Domain=ASDErrorDomain Code=500 "(null)" UserInfo={NSUnderlyingError=0x28364d770 {Error Domain=AMSErrorDomain Code=305 "Purchase Failed" UserInfo={NSLocalizedDescription=Purchase Failed, AMSURL=https://sandbox.itunes.apple.com/WebObjects/MZBuy.woa/wa/inAppBuy?guid=d743a4b05f8f6a6c4f3**********************, AMSStatusCode=200, AMSServerPayload={ "cancel-purchase-batch" = 1; customerMessage = "Unauthorized_message"; failureType = ""; "m-allowed" = 0; pings = ( ); }, NSLocalizedFailureReason=Server canceled the purchase}}, storefront-country-code=JPN, client-environment-type=Sandbox}
0
1
84
Apr ’25
Storekit, how to change and retrieve current user storefront
I've been struggling to work with the Storekit framework and specifically to find the current Storefront used by the user of the app. Context : My app needs to behave differently depending on the country of the user. For me relying on Locale.current.region?.identifier does not seem very reliable, the user can change it really easily. I'm trying to use the Storekit framework like so : if let storefront = await StoreKit.Storefront.current{ return storefront.countryCode } As per Apple's Storekit documentation : Use current to determine a customer's current storefront region and offer in-app products suitable for that region. You maintain your own list of product identifiers and the storefronts in which you make them available. But I just can't find out what I need to change in my current configuration to get another country. The code keeps returning my original storefront (which is France) I've tried login in with a sandbox user defined on another country. Changed all settings on my device to another country. Changed my Apple's account region as described here. Also tried to logout from everything. The only thing that works is setting a local .storekit file as described here and changing the default storefront. Is Xcode overriding the default storefront when building on debug or TestFlight? does anyone know how can I test different storefronts with sandbox users without the local storekit file ? Thank you in advance.
2
0
286
Apr ’25
App Store Review Loop: Is It Even Possible to Launch a Cross-Platform App?
Fellow developers, have you ever faced this situation? You’ve worked hard on a cross-platform app, finally ready to launch on the App Store—only to find yourself stuck in an endless policy loop that makes approval impossible. Apple’s “No-Win” Formula Let’s break down Apple’s brilliantly engineered review process: Want to use Apple’s IAP? Sure! But you must first create an in-app purchase (IAP) item. Created an IAP? Not so fast! Apple requires your first IAP to be submitted together with a new app version, but your version 1.0 can’t submit an IAP. Okay, let’s submit 1.0 without IAP first? Nope! Rejected under 3.1.3(b) because your app has in-app purchases on other platforms, so iOS must have them too. Fine, I’ll use a third-party payment system (like WeChat Pay) for now. Nice try! Rejected under 3.1.1 because third-party payment systems aren’t allowed. So, no matter what you do, your app gets rejected. Is This Really a “Mistake”? Or… Apple is a company full of brilliant minds—they surely see this contradiction. This isn’t a bug; it’s a feature. This policy ensures that cross-platform apps are either fully locked into Apple’s IAP or kept out of the App Store entirely. Think about it: If this were just an oversight, why hasn’t it been fixed? Why does Apple remain completely unresponsive to appeals? Why can they adjust policies elsewhere but refuse to budge when it comes to IAP revenue? Developers, What Can We Do? I’ve already sent multiple appeals, all ignored by Apple. If you’ve encountered the same issue, let’s discuss it here. Maybe together, we can find a workaround—or better yet, apply pressure to Apple to explain why launching a cross-platform app on iOS feels less like a review process and more like an impossible puzzle.
2
0
64
Mar ’25
Requirements for Courses-Based App
Hi, I have a question about Section 3.1.1 of the App Store Review Guidelines regarding In-App Purchases. Is it mandatory to include In-App Purchases in my app? My app is an extension of my website, which has been online for four years and serves a large student base. We offer courses that students purchase through the website. Once purchased, they can access lessons, watch videos, download files, answer quizzes (optional), participate in group chats, and review courses. In the app, users can view all courses and categories, access some free lessons to decide if they want to buy the course, and search for courses—similar to platforms like Udemy. I do not wish to use In-App Purchases or any external payment systems within my app. Instead, I prefer that users purchase courses on the website and then access them via the app. I will not include external links, calls to action, or any mentions that direct users to purchase from the website. Essentially, I plan to inform users that purchases are not supported in the app, and they will understand this implicitly. Is this approach acceptable?
1
0
374
Mar ’25
How to Verify the Authenticity of an In-App Purchase Receipt from Apple Pay?
I am an app developer, and I have implemented in-app purchases in my application. When a user completes a purchase, Apple displays a success popup. After the user taps "OK", I send the receiptData to my server to add points to their account. However, I have encountered cases where users either exit the app before tapping "OK" or experience network issues, preventing the receipt from being sent to my server. As a result, they do not receive their points. Later, some users send me a receipt from Apple Pay, claiming that the payment was successful. These receipts include details such as the orderId, email, and other transaction information. However, I am not certain whether the user actually completed the payment but encountered an issue, or if they are providing a fraudulent receipt. My question: How can I verify the authenticity of these receipts? Is there an official way to check if a given Apple Pay invoice corresponds to a real in-app purchase in my app? Any guidance or best practices would be greatly appreciated!
2
0
81
Mar ’25
Sandbox Testing Issue: 'Submit for Review' Button Missing for Subscription IAPSubmit
Hello Developers! I am trying to run a test In-App Purchase (IAP) for a renewable subscription product in the sandbox environment. I have set up everything required for sandbox testing, but it’s unclear whether the subscription product needs to be pre-approved by Apple for testing. If approval is required, I have already added the necessary metadata, but the status still shows "Ready for Submit." Additionally, when I save the page, a "Submit for Review" button briefly appears for a fraction of a second on the subscription page before disappearing. Is this button missing, or is there a known issue with this process? This is my first time running this test, and I would appreciate any pointers or suggestions. Thanks!
1
0
66
Mar ’25
iOS in-app purchasing in Unity app
Hi everyone, I am working on a Unity iOS app. I am adding in-app purchasing in my app. I have added Unity IAP to the Unity project, as well as the code for initialising and purchasing a subscription with the product ID. I have also added my certificates and provisioning profile in Xcode with in-app purchasing capabilities. Also, I have set up an App Store Connect page with a non-renewing subscription with a unique product ID and all required information. The subscription status is ready to submit. I have added a sandbox tester account in it. In unity editor, it is working fine with fake purchase receipt. While testing in an iOS device, apple ID is logged out. But there is an error occurs everytime : IAP not initialized. Also I have uploaded a newer version of app on app store connect, it is in waiting for review status. Is there any step or something I am missing that it is not working in iOS device? Please help
4
0
108
Mar ’25
Missing the Required "In-App Purchases and Subscriptions" Section in App Store Connect
CONTEXT: iOS: 18.2.1 || macOS: 15.4 || Xcode: 16.2 || App status: Not yet released || In-app purchase type: Subscription || App version: 1.0, Build 3 ISSUE:
 App Store Connect has rejected our latest app submission with the instructions “…submit your in-app purchases and upload a new binary in App Store Connect…”. Unfortunately, the required "In-App Purchases and Subscriptions" section is missing from the ‘version page’ of our submission. This is further complicated by the fact that we had already tested the subscription in App Store Connect’s sandbox, where it successfully returned the non-domestic storefront pricing for Hungary (HUF1,490.00/year). After reviewing nearly four dozen Apple pages of documentation and a dozen Apple forum posts, we found only one relevant link: https://developer.apple.com/help/app-store-connect/manage-submissions-to-app-review/submit-for-review Unfortunately, the instructions under the disclosure triangle: "Submit an in-app purchase for the first time" confirm that the "In-App Purchases and Subscriptions" section is missing from our version page. Additionally, review of the blue warning box on the Subscription page includes the following instructions: "…Create your subscription, then select it from the app’s In-App Purchases and Subscriptions section on the version page…" Unfortunately, this section does not exist on our version page, confirming that there is no specific section labeled "In-App Purchases and Subscriptions" available. Similar issues have been reported by other developers. See this Stack Overflow thread for additional context: https://stackoverflow.com/questions/73098652/app-store-connect-in-app-purchase-and-subscriptions-section-missing HISTORY: Successfully created and sandbox tested the subscription in App Store Connect. Reviewed over five dozen pages of Apple documentation and forum posts as well as Stack Overflow. Have repeatedly loaded and checked the 'version page' for the "In-App Purchases and Subscriptions" section, which is unfortunately missing from our submission. QUESTIONS: Where is the "In-App Purchases and Subscriptions" section located, if not on the 'version page' of our submission? Is there an alternative method to submit in-app purchases and upload a new binary in App Store Connect? Do we need to remove any part of the submission to access the "In-App Purchases and Subscriptions" section? What is the risk of losing our app name 'Concensus' in the Apple App Store if we delete any portion of the submission? We would appreciate guidance on how to proceed with submitting our in-app purchase subscription along with our new app version. Grateful Indeed.
1
0
115
Mar ’25
Payment System for Peer-to-peer Parking App.
Hello, I am in the process of developing a peer-to-peer parking app and would like clarification on whether my payment system requires In-App Purchases (IAP) or if I can use custom payment system embedded in-app such as Stripe for transactions. About the App: Users can add empty parking spots they find on a map. Other users can pay to unlock a group of spot coordinates (availability is not guaranteed). Users can also host their own occupied parking spot and sell it to another user, guaranteeing availability. The app uses a virtual currency (“coins”), which represent real money and are used to pay for unlocking spots and purchasing hosted spots. Users can fund their account with coins, and coins they earn from selling spots can be cashed out via PayPal once a minimum threshold is met. Users cannot cash out coins they purchased—only the ones they earned. The funds/coins are controlled by the app’s servers acting as a middleman. If a purchase transaction occurs, the app deducts the coins from the purchaser‘s account and credits the sellers account minus service fee of the app. My Question: Since the app facilitates real-world transactions between users, can I use Stripe to allow users to purchase coins, or does Apple require In-App Purchases (IAP) for funding accounts? If not do you have any suggestions on different methods? I want to ensure compliance with App Store policies before proceeding. Thank you! Best regards, Mubin
1
0
71
Mar ’25
Does originalTransactionId change if a user resubscribes?
Hello, For In App Purchases with a renewable subscription, does the originalTransactionId change in the following scenarios? Case 1: A user subscribes to a subscription A within a Subscription Group SG1. The user then cancels it at the end of the month. Comes back later to subscribe to the same subscription A within the same Subscription Group SG1. Case 2: A user subscribes to a subscription A within a Subscription Group SG1. The user then cancels it at the end of the month. Comes back later to subscribe to subscription B within the same Subscription Group SG1.
3
1
1k
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!
3
3
312
Mar ’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
201
Mar ’25
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
54
Mar ’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
58
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
83
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
50
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
57
Mar ’25