StoreKit

RSS for tag

Support in-app purchases and interactions with the App Store using StoreKit.

StoreKit Documentation

Post

Replies

Boosts

Views

Activity

6 active Subscriptions in one Group
Hello everyone, we have 6 subscription models in only one subscription group, of which we only show 2 (monthly and yearly) via RevenueCat. So we have 3 prices (offer, normal price and another one that we use later to increase the price) Now we were approached by a customer that she could choose the subscription model of the 3 monthly subscriptions when renewing her subscription. That would of course be fatal for us if that were the case. We have already sold the app over 1000 times and it has been running for almost 6 months. When I look at the statistics at RevenueCat, everything is ok, those who bought for the offer could also continue to run for the offer price. and those for the normal price too. We have set the app to free because we allow downloading and installation and you only then take out the subscription in the app. Of course, we point this out to customers. What is your experience? Does anyone know who can tell me whether I can continue with this or whether I should deactivate the other outdated subscriptions first, for example? Of course, I still need to find out how this works with Google and the Google Play Store. Of course, we've done the same thing there. Best Regards
2
0
447
Nov ’23
App Store Server Notifications V2. Empty body.
Hello. We used App Store Server Notifications V1 for purchase notifications. And we decided to switch to version 2. We got a problem. If we use v2 and make a test purchase, the callback will receive a call with an empty requestBody. If we use v1, then a call comes with data. If we use https://api.storekit-sandbox.itunes.apple.com/inApps/v1/notifications/test for simulate notification, when version 2 is enabled, callback receive call with correct requestBody. What could be the problem? Thank you.
3
0
764
Nov ’23
Indicating premium content in screenshots / videos
Dear All, I have a paid app which has in-app purchases to unlock additional content. In my App Store screenshots and preview videos, I used to indicate which content was paid and which was free with labels superimposed over the screen captures. App store review guideline 2.3.2 supports doing this - in fact, it seems to require it: 2.3.2 If your app includes in-app purchases, make sure your app description, screenshots, and previews clearly indicate whether any featured items, levels, subscriptions, etc. require additional purchases. But App Review don't like it. Some years ago they complained about the labels on the screenshots, which I removed. Now they are complaining about the preview videos. They cite guideline 2.3.7, which says (in part, my emphasis): 2.3.7 ... Metadata such as app names, subtitles, screenshots, and previews should not include prices, terms, or descriptions that are not specific to the metadata type. ... So these guidelines seem to be contradictory. If I label a screenshot as "free" or "paid", they consider that to violate 2.3.7. (I'm not showing an actual "$1.23" price, just "free" or "paid".) But I need to indicate whether the content shown is "free" or "paid" in order to comply with 2.3.2. (And I want to label it as such, because I don't want users to misunderstand what is included with their initial purchase.) Has anyone else had this problem? I wonder if there is some particular wording that they require, e.g. "Requires in-app purchase" rather than "Paid". Or something rather than "free". There is a limit to how much text I can legibly add without obscuring the actual content, so I have tried to keep it brief. I did refer to 2.3.2 in my reply to App Review, but they haven't addressed that; they've accepted the update as a bug fix. Ultimately I'll just do what they want - it always seems easiest - but I do have real concern that my customers are worse off without these annotations.
2
0
989
Nov ’23
DID_RENEW notification with cancellation_date field completed
Hello, We have a few FAMILY_SHARED subscriptions which received a DID_RENEW notification, with all the cancellation fields completed, the expiration date in the future and no pending_renewal_info array in it. We are not sure why did we get the DID_RENEW notification with the cancelation details, shouldn't we get a REVOKE notification? We found this in the Apple documentation: The pending_renewal_info array is returned only for app receipts that contain auto-renewable subscriptions. If customers voluntarily cancel a subscription renewal while in the grace period, the App Store pauses billing retry, and removes the transaction from pending_renewal_info. The subscription is in the grace period if the key grace_period_expires_date_ms is present and the expiration date hasn't passed. We do not handle any cancelation related logic for the DID_RENEW notification. Should we adjust the logic for this scenario or there should be a different notification type sent out. This is how the latest element looks like from the lattest_recipt_info: "auto_renew_status": "true", "unified_receipt": { "status": 0, "environment": "Production", "latest_receipt_info": [{ "quantity": "1", "product_id": "product_id", "transaction_id": "transaction_id", "purchase_date": "2023-11-07 23:01:41 Etc/GMT", "purchase_date_ms": "1699398101000", "purchase_date_pst": "2023-11-07 15:01:41 America/Los_Angeles", "original_purchase_date": "2021-10-07 22:01:42 Etc/GMT", "original_purchase_date_ms": "1633644102000", "original_purchase_date_pst": "2021-10-07 15:01:42 America/Los_Angeles", "expires_date": "2024-11-07 23:01:41 Etc/GMT", "expires_date_ms": "1731020501000", "expires_date_pst": "2024-11-07 15:01:41 America/Los_Angeles", "web_order_line_item_id": "web_order_line_item_id", "is_trial_period": "false", "is_in_intro_offer_period": "false", "original_transaction_id": "original_transaction_id", "cancellation_date": "2023-11-07 15:37:03 Etc/GMT", "cancellation_date_ms": "1699371423020", "cancellation_date_pst": "2023-11-07 07:37:03 America/Los_Angeles", "cancellation_reason": "0", "in_app_ownership_type": "FAMILY_SHARED", "subscription_group_identifier": "subscription_group_identifier" }
1
0
585
Dec ’23
Delete Subscription - An error has occurred. Try again later.
Hi I am unable to delete a subscription, it keeps giving an error message "An error has occurred. Try again later." Some background : I have submitted my app along with subscription for review and it got rejected with the message - Guideline 3.1.2 - Business - Payments - Subscriptions When I tried to edit the exisiting rejected subscription by changing the localisation or review screenshot it is giving an error. Then I decided to delete this subscription itself and create a new one, that also giving an error. Spend whole day trying to figure out this issue still no luck , anyone else experienced this ?
0
0
461
Dec ’23
How to cancel Auto-renewable subscription bought in TestFlight?
I've read several topics on cancelling subscriptions in sandbox environment, but it seems to me that it could not be applied to TestFlight. I can cancel sandbox subscriptions through Settings > App Store > Sandbox account But since TestFlight does not use sandbox account I cannot cancel a sub from there. Also, TF purchase does not appear in the list of regular subscriptions (Settings > Profile > Media & Purchases). So my question is: is there any way to manually cancel auto-renewable subscription bought in TestFlight build of the app?
5
3
2.3k
Dec ’23
Can't publish my app due to NFTs transactions
Hello, dear community! We are developing an NFTs marketplace where users can create, buy, and sell NFTs. Additionally, our app is intended to transfer and purchase our cryptocurrency like any other crypto wallet. When users create their own NFT using our app, they can set the price (in our cryptocurrency) of the asset they create. However, Apple's review team rejected our app submission due to in-app purchases that we don't have. . OUR ACTION PLAN: We are planning to develop "Packages" for buying our cryptocurrency, like gems in a game, to buy any other NFT within the app, but we are not sure if this strategy can help us pass the app review. . Do you know if we have to add any other configuration in the app store connect to attend the wallet functionality, to buy and transfer our cryptocurrency? Do you have any recommendations for passing the app review? Our app is designed to work like: Metamask (for buying our crypto currency and transfer). Coinbase (for buying our crypto currency). Jump.trade (for NFTs Marketplace and create NFTs). Bitso (for buying our crypto currency). NFT GO (for NFTs Marketplace and create NFTs). Thanks in advance! ❤️
1
0
539
Dec ’23
in app consumable purchase stay in pending state. never ends with success or failure
The app is in beta testing. I want to test the consumable IAP in the sandbox before pushing it to the external beta testers. however, the in-app purchase stays pending and never reaches success or failure. Also when I attempt to make a purchase, the purchase prompt closes with a success tone after giving the password but keeps appearing again. this is happening in a loop. I tried with multiple sandbox user accounts but no luck. any help here, please?
0
0
248
Dec ’23
buymeacoffee/ko-fi link inside app
Hi! Is it allowed by Apple's rules to add an in app link to a buymeacoffe/ko-fi type donation page? Short context: in the middle of wrapping up v1.0 for my first ever app, and I would like to publish it. However I dont think I have the capacity to implement in app purchases for v1.0. I was thinking maybe if I add this type of donation oportunity, it is better than nothing. For the technicalities, I'm would like to use ko-fi, where they have a neat web widget style donation interface, and I just wrap that in a webview. Thanks!
2
0
532
Dec ’23
Not fetching auto-renewal subscription information (price) in China market
My app (Apple ID: 6473235939) first released on Dec 2 2023 to App Store for China market, and it has auto-renewal subscription. However, the user in China downloaded, installed and launched it, and he can't see the price, looks the app can't fetch the purchase product information, so the user can't subscribe. However, in the info section of app store the in-app purchase price is listed and right. The app was tested ok based in Canada, and the right subscription price is showing. Does the auto-subscription is blocked for China market? Any help? Thanks a lot.
0
0
368
Dec ’23
EXPIRED notification is no longer received
Hello, I have configured V2 server notifications for my applications. I am receiving different types of notifications (https://developer.apple.com/documentation/appstoreservernotifications/notificationtype) in my webhook. Something changed after November 18th. EXPIRED notifications are no longer received. Has something changed in the API? Other notification types still work.
2
0
704
Dec ’23
Use of SubscriptionStoreView
I am developing my first app and having issues understanding how SubscriptionStoreView works. I used some business logic available from Apple, but I see other resources that insinuate the StoreKit views can handle all of the business logic itself, and all I need is the config file. Can anyone confirm? When I'm previewing SubscriptionStoreView, It just says, "The subscription is unavailable in the current storefront," and I cannot find what that means or what to fix.
1
0
1.5k
Dec ’23
Delay in response for sandbox environment
we are dealing with subscriptions using sandbox environment , we are depending our the backend server to tell if user is subscribed or not, but after each subscription or any action on subscription we have observed a delay in response from appstore to our backend server, which is restricting user to perform actions on the app, Is this delay expected behaviour? , is delay because we are using sandbox environment?, will it be the same in real time produtcion environment as well?
0
0
304
Dec ’23
Transaction.currentEntitlements never returns if there are no entitlements?
I'm uncertain about the reason behind Transaction.currentEntitlements not returning nil when there are no current entitlements. The challenge I'm facing is that, in the scenario where a trial period concludes, Transaction.currentEntitlements seems to perpetually withhold any response, leaving me without a means to discern the conclusion of the trial. I'm puzzled as to why this method doesn't simply return nil when no entitlements are detected. It would be immensely helpful if someone could shed light on the rationale behind this behavior or point out any potential errors in my understanding. Your insights would be greatly appreciated. Thanks.
0
0
538
Dec ’23
Not receiving REFUND notifications in sandbox
Hi, I am following https://developer.apple.com/documentation/storekit/transaction/testing_refund_requests and trying to test refund requests. I am able to trigger refund requests from my app (in sandbox) using https://developer.apple.com/documentation/swiftui/view/refundrequestsheet(for:ispresented:ondismiss:) I do see that the notification URL receives a NotificationTypeV2.CONSUMPTION_REQUEST but it's not receiving NotificationTypeV2.REFUND The product for which the refund is triggered is a consumable type Is this expected behavior? How can I test REFUND without this? Thanks
4
0
903
Dec ’23