Picture this: a user has been subscribed to your app for several months, enjoying premium features. Recently, they decided to upgrade to a new phone. Excited to continue using your app, they download and install it on their new device, only to find that their subscription is no longer active. They need to purchase again to regain access to the content they’ve already paid for. What's next? Frustration, chatting with support, and maybe a negative review on the App Store or Google Play.
“How to avoid this?” you ask. “Implement a Restore Purchase flow,” we say. In this article, we’ll explain what Restore Purchase means, how to implement it on iOS and Android, and address common concerns such as double charging. We’ll also dive into advanced tips and best practices for optimizing the Restore Purchase flow in your app.
When users purchase non-consumables, auto-renewable subscriptions, or non-renewing subscriptions, they expect them to be available on all their devices so you as a developer or app owner should understand what restore purchase means and provide them with UI functionality for restoring purchases.
Restore Purchase: Meaning
Restore Purchase refers to a functionality in apps that allows users to regain access to previously purchased content or subscriptions without having to go through the purchase process again. This is typically implemented as a Restore Purchase button in the app's UI. When users tap this button, the app communicates with the platform’s (iOS or Android) servers to retrieve the purchase history and restore access to any eligible content.
In case you have an internal authorization logic that allows you to manage access without prompt screens, you can avoid placing this Restore Purchase button. However, the restore button is still the most common practice. This button should trigger the specific Restore method, which will unlock the needed permissions for your users.
When Restore Purchases?
The Restore Purchase feature is critical in several scenarios, ensuring that users maintain access to their paid content. Here are some common situations:
- Device Upgrade: When a user upgrades to a new device, they can restore their purchases to continue using the app without repurchasing content.
- App Reinstallation: If an app is deleted and reinstalled, the restore purchase feature allows users to regain access to their previous purchases.
- Factory Reset: After a factory reset, users can restore purchases to recover their subscriptions and non-consumable content.
- Multiple Devices: Users with multiple devices can restore purchases across each one, ensuring consistent access to their paid content.
Our recommendation though is to have this button by default. Why? Having a restore purchase feature set by default could be useful for your user:
- If the user has multiple devices signed in to the same account
- If the user upgraded their device
- If the user reset their device to factory settings
- If the app was deleted and reinstalled on a device
What Products Could Be Restored?
There are 3 types of In-App Purchases that can be restored:
- Non-consumables: a product in your app that customers purchase once. These don’t expire.
- Auto-renewable subscriptions: services or content access that customers purchase once.The auto-renewable subscriptions as the name suggests renew automatically on a recurring basis until customers decide to cancel.
- Non-renewing subscriptions: services or content access for a limited duration and without automatic renewal. These are typically accessible for customers to purchase them again.
Consumables purchases are not applicable for restoring as they are associated with the account. For example, if a user previously purchased “coins,” these purchases are connected to his account, and there is nothing to restore from StoreKit or Google Play Billing Library. Learn more on this in our guide about consumable and non-consumable purchases.
How to configure restore purchases on iOS?
On iOS, restoring purchases primarily involves refreshing the app receipt and redelivering the products listed on the receipt. The process ensures that users can access their purchases across any device linked to their Apple ID.
Refresh the App Receipt:Use the SKPaymentQueue restoreCompletedTransactions() method to start the restore process.
- Implement the paymentQueue(_:updatedTransactions:) method to handle the restored transactions and update the app UI accordingly.
Handle scenarios where the restore process might fail, such as network issues or invalid receipts. Providing error messages to users and logging errors for debugging are best practices.
Here's how to restore purchases using native StoreKit methods. By the way, we have more on StoreKit 2 and it's capabilities .
- Using Qonversion
If you're using Qonversion to manage in-app subscriptions, the process is even simpler:
How to Configure Restore Purchases on Android?
When compared to Apple, Google doesn’t have a specific process for restoring purchases. And with the recent Google Play Billing Library update, the methods previously used to retrieve older purchases have been deprecated in Billing Library 7.
As Google mentions,if an app wants track a user's purchase history, you need to keep track of the history on your apps backend.
If you use Qonversion to manage your in-app subscription, call this method, or check our documentation for more.
Does Restore Purchases Charge the User Again?
A common question from users is whether restoring purchases will result in additional charges. The answer is no — restoring purchases does not charge the user again. When users restore a purchase, they are simply reactivating access to content they’ve already paid for, it’s merely fetching the purchase history and reinstating access to previously bought content. If after hitting the Restore Purchase button your user is double charged, review the setup and use the methods described above.
Restore Purchase: Developer Tips and Best Practices
For developers aiming to optimize the restore purchase experience, here are some advanced tips:
Improve UI/UX- Ensure the "Restore Purchase" button is easily accessible within your app. Consider adding it to the settings menu or alongside other purchase-related options.
Provide clear feedback to users during the restore process, such as a loading indicator or success message.
Handle Errors GracefullyImplement error handling to manage cases where the restore process fails. Inform users of any issues and provide instructions for resolving common problems.
Test Across DevicesThoroughly test the restore purchase functionality across different devices and operating systems to ensure compatibility and a smooth user experience.
Leverage AnalyticsUse tools like Qonversion’s analytics to track restore purchase requests and identify patterns, such as frequent failures or high usage among certain user segments. This data can help you refine the restore process over time.
App Users' FAQ on Restoring Purchases
Here are some frequently asked questions that your users may have about the Restore Purchase functionality. Consider using these as tooltips or in other supporting content within your app to ensure your users fully understand and utilize the app's features as intended.
1. What happens when you restore a purchase?
When you restore a purchase, the app retrieves your previous purchase history from the platform (iOS or Android) and reactivates access to the content or subscription you’ve already paid for. This process ensures that you do not have to repurchase the content when switching devices, reinstalling the app, or after resetting your device.
2. Does restore purchase charge you?
No, restoring a purchase does not charge the app users again. When you use the "Restore Purchase" feature, the app simply verifies your previous purchases and reinstates access to them. It's a user-friendly way to ensure that you retain access to your purchases across all your devices.
3. How do I know if my purchase has been restored successfully?
After initiating the restore process, you should see a confirmation message or a notification within the app indicating that your purchase has been successfully restored. Depending on the platform (iOS or Android), the app may also automatically unlock the content or subscription tied to the restored purchase. If the process fails or if you don’t see the expected content, double check your internet connection or reach out to app support.
4. Can I restore purchases on multiple devices?
Yes, you can restore purchases on multiple devices, as long as they are associated with the same account (Apple ID on iOS or Google account on Android).
Conclusion
In this article, we explored what restore purchase means and the flow on how to configure restore purchases on iOS and Android. By implementing this feature, you can help customers continue their paid services with ease – and keep positive user reviews coming!
If you’re looking for a more streamlined and reliable way to manage in-app purchases and subscriptions, use Qonversion. We provide a complete cross-platform infrastructure that simplifies the restore purchase process, validates receipts, and keeps your app running smoothly across both iOS and Android.Ready to optimize your app’s purchase management? Contact us today to learn more about how Qonversion can help you build a better subscription experience.

Kate
ex. Head of Marketing at Qonversion
Kate led marketing at Qonversion, building the brand and community around subscription app monetization.




