Skip to main content
Solved

Transfer user generated content with purchase restore

  • March 26, 2025
  • 1 reply
  • 17 views

Forum|alt.badge.img+3

My app requires a user account login before purchasing a subscription. It allows the account owner to create, edit and share content. I only have one subscription type & it’s required to create content. I will not allow family sharing of subscriptions. It’s important the content ownership is under the user account, this allows them to edit the content across platforms (Android, IOS, Web).

My question is regarding the Restore Purchases option required on IOS. I see two scenarios here:

  1. Subscription is already associated with currently logged in user - no-op: I tell the user they’re already subscribed (the SDK Purchases object should already know that).
  2. Subscription was created in user account A, and they’re logged into user account B.

For scenario 2, the only useful thing I could do is remove the content owned in account A and add it to account B. This could actually be useful for my app, if the user ever losses access to their original account A, I can tell them to create a new account B and use “Restore Purchases” to move their content to this new account.

In a sense this makes the users device account the parent of the app user account.

The only downside I can see is a nefarious actor grabbing the users phone and transferring their content into a new account, owned by the bad guy, however I believe there’s OS level security around the transfer (i.e. prompting).

Can you see any issues with doing this?

Best answer by jeffrey_bunn

Hi ​@jonathan-matthews-dd22fa! On the platform level, purchases are associated with the underlying Apple ID / Google Play ID. Also, all purchases made from an Apple ID within an app (regardless of the user ID within the app itself) are contained within a single receipt. This receipt is what RevenueCat uses to unlock entitlements. 

For scenario 2, the only useful thing I could do is remove the content owned in account A and add it to account B. This could actually be useful for my app, if the user ever losses access to their original account A, I can tell them to create a new account B and use “Restore Purchases” to move their content to this new account.

If the user hits restore purchases in account B and you have our default transfer setting enabled, RevenueCat will automatically transfer the purchases to account B.

The only downside I can see is a nefarious actor grabbing the users phone and transferring their content into a new account, owned by the bad guy, however I believe there’s OS level security around the transfer (i.e. prompting).

In this scenario, all the original user would have to do is open the app and hit restore purchases again. As their Apple ID is the one that made the original purchase, restoring purchases will send the underlying receipt to RevenueCat and we will transfer the entitlements to the currently logged-in app user ID. 

Let me know if I can clarify or if you have additional questions! I’m happy to help.

View original
Did this post help you find an answer to your question?

1 reply

jeffrey_bunn
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • 277 replies
  • Answer
  • March 28, 2025

Hi ​@jonathan-matthews-dd22fa! On the platform level, purchases are associated with the underlying Apple ID / Google Play ID. Also, all purchases made from an Apple ID within an app (regardless of the user ID within the app itself) are contained within a single receipt. This receipt is what RevenueCat uses to unlock entitlements. 

For scenario 2, the only useful thing I could do is remove the content owned in account A and add it to account B. This could actually be useful for my app, if the user ever losses access to their original account A, I can tell them to create a new account B and use “Restore Purchases” to move their content to this new account.

If the user hits restore purchases in account B and you have our default transfer setting enabled, RevenueCat will automatically transfer the purchases to account B.

The only downside I can see is a nefarious actor grabbing the users phone and transferring their content into a new account, owned by the bad guy, however I believe there’s OS level security around the transfer (i.e. prompting).

In this scenario, all the original user would have to do is open the app and hit restore purchases again. As their Apple ID is the one that made the original purchase, restoring purchases will send the underlying receipt to RevenueCat and we will transfer the entitlements to the currently logged-in app user ID. 

Let me know if I can clarify or if you have additional questions! I’m happy to help.


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings