If you’ve ever bought a subscription in an iOS app and later decided that you wanted to cancel it, upgrade or downgrade, or request a refund, you may have struggled figuring out how to make that request or change. Some people still believe today that they can stop their subscription fees simply by deleting an app from their iPhone. Others may unsuccessfully poke around their iPhone’s settings or the app store to find out how to request a refund. With the updates Apple made in. announced StoreKit 2 Things could get a little easier for app customers during this week’s Worldwide Developers Conference.
StoreKit is Apple’s developer framework for managing in-app purchases – an area that has become more complex in recent years as apps have moved from one-time purchases to ongoing subscriptions with varying levels, lengths, and feature sets.
Currently users who want to manage or Cancel subscriptions can do this through the App Store or their iPhone settings. What some don’t know is that from Settings, the path to this section starts by tapping your Apple ID (your name and profile photo at the top of the screen). They can also get frustrated if they are not familiar with navigating their settings or the App Store.
Meanwhile there is a various possibilities Users can request refunds for their in-app subscriptions. You can search for your Apple receipt in your inbox, then click the “Report a problem” link on it to request a refund if something went wrong. This can be useful in scenarios where you accidentally bought a subscription (or your child did!) Or where the promised features didn’t work as intended.
Apple too offers a special website where users can request refunds for apps or content directly. (If you google something like “Request a Refund Apple” or similar searches, a page will usually appear at the top of the search results explaining the process.)
Still, many users are not tech savvy. For them, the easiest way to manage subscriptions or request refunds would be to do it through the app itself. For this reason, many conscientious app developers tend to include links in their apps to direct customers to Apple’s pages for subscription management or refunds.
But StoreKit 2 introduces new tools that allow developers to implement this type of functionality more easily.
A new tool is a subscription management API that allows an app developer to display the subscription management page for their customer right in their app – without redirecting the customer to the app store. Optionally, developers can display a “Save Offer” screen to give the customer a discount so they don’t cancel, or display an exit survey so you can ask the customer why they decided to end their subscription.
Once implemented, the customer can view a screen in the app that looks exactly like the one they would visit in the App Store to cancel or change a subscription. Once canceled, they will be presented with a confirmation screen with the cancellation details and the expiration date of the service.
If the customer wants to request a refund, a new refund request API enables the customer to start their refund request directly in the app – again without being redirected to the app store or any other website. On the screen that appears, the customer can choose which item to refund and review the reason for the request. Apple handles the refund process and sends either an approval or a refund denied notification back to the developer’s server.
However, some developers argue that the changes don’t go far enough. You want to manage customer subscriptions and process refunds yourself through programmatic means. In addition, Apple take up to 48 hours so that the customer can get an update on their refund request, which can be confusing.
“They made the process a little smoother, but developers still can’t initiate refunds or cancellations themselves,” notes Sales Cat CEO Jacob Eiting, whose company provides app developers with tools to manage their in-app purchases. “It’s a step in the right direction, but it could actually lead to more confusion between developers and consumers as to who is responsible for issuing refunds.”
In other words, with the forms now more accessible within the app, the customer might believe that the developer is handling the refund process while Apple is actually still doing it.
Some developers pointed out that there are other scenarios that this process does not address. For example, if the customer has already uninstalled the app or no longer owns the device in question, they must be referred to other refund options as before.
For consumers, however, such subscription management tools mean that more developers may start placing buttons to manage subscriptions and request refunds right from their app, which is a better experience. Over time, as customers learn that it is easier for them to use the app and manage subscriptions, app developers may see better customer loyalty, engagement, and ratings in the App Store, Apple notes.
The StoreKit 2 changes weren’t limited to APIs for managing subscriptions and refunds.
Developers also get access to a new Invoice Lookup API, which enables them to look up the in-app purchases for the customer, validate their invoice and identify any issues with the purchase – for example, if refunds have already been provided by the app became business.
A new API for refunded purchases allows developers to look up all refunds for the customer.
And a new Renewal Extensions API allows developers to extend the renewal dates for paid, active subscriptions in the event of an outage – for example, customer support issues when a streaming service is down. With this API, developers can renew the subscription up to twice per calendar year, each up to 90 days in the future.
Another change will help customers when they reinstall apps or download them to new devices. Previously, users had to manually “restore purchases” to sync the status of completed transactions with this newly downloaded or reinstalled app. Now this information is automatically retrieved from StoreKit 2 so that the apps are instantly up to date for what the user paid for.
While the changes overall represent a major update to the StoreKit framework, Apple’s reluctance to give developers more control over their own subscription-based customers speaks in part to how much Apple wants to control in-app purchases. Perhaps this is because it was burned in the past trying to allow developers to manage their own refunds.
How The Verge recorded last month During the Epic Games-Apple cartel process, Apple had once granted Hulu access to a subscription API and then discovered that Hulu had offered a way to automatically cancel subscriptions made through the App Store when customers wanted to upgrade to a higher-priced subscription. Apple realized it needed to take steps to protect against this misuse of the API, and Hulu later lost access. It hasn’t made this API more widely available since then.
On the flip side, Apple’s responsibility for subscription management and refunds, not developers, means Apple’s responsibility for preventing fraud – including fraud committed by both customers and developers. Customers may also prefer a single point of contact to manage their subscription billing: Apple. You may not want to have to deal with each developer individually as their experiences would end up being contradictory.
These changes are important as subscription revenue is a significant part of Apple’s lucrative App Store business. Prior to WWDC 21, Apple reported that sales of digital goods and services on the App Store rose to $ 86 billion in 2020, up 40% year over year. Earlier this year, Apple did said it paid out more than $ 200 billion to developers since the App Store launched in 2008.