Skip to main content

Transfer Events


Forum|alt.badge.img+8

What are Transfer Events?

Transfer events are when a transfer of transactions and entitlements was initiated between one App User ID(s) to another. This event is from RevenueCat to inform you of purchases being transferred between users of your app.

 

Why do Transfers Happen?

Transfer events occur if a user claims the purchases of another user, which will happen if both users are logged into the same underlying store account, and if the user attempts to restore purchases. This is because RevenueCat will detect that the purchases belong to that app store account and will then transfer the purchases to the new user so they can access their purchases. RevenueCat is able to detect this because transactions are associated to the underlying store account.

 

FAQs

Can I have multiple RevenueCat users for the same Apple/Android account?

You cannot have multiple users with the same underlying store account as they will always share purchases.

 

How do I prevent transfers?

To prevent all transfers, you’ll want to use the ‘Keep with original user id’ transfer behavior. This will prevent all transfers by returning an error if the App User ID attempting to restore purchase or make a new purchase is different from the original App User ID that made the purchase.

To prevent transfers once a purchase has been made, you’ll want to use the ‘Transfer if there are no active subscriptions’ transfer behavior. This is less strict than the former and will transfer the purchases to the new App User ID unless they contain an active subscription.

For more information on transfers, and how to prevent it from occurring in certain cases, see: Restoring Purchases.

 

Is it possible to make transfers with the ‘Keep with original user id’ or ‘Transfer if there are no active subscriptions’ transfer behaviors?

Yes this is possible. While the users themselves will not be able to initiate this in your app via restoring purchases, you can manually do this in the RevenueCat dashboard. You’ll want to go into the customer history of the user you want to transfer purchases from, and then in the ‘Entitlements’ card there is a ‘Transfer’ button at the top right. This will transfer all purchases from that user to another. For our guide on doing this, see: Transferring entitlements

 

When I make a purchase, instead of getting an initial purchase I receive a transfer events that does not have the product id?

If you are using the same underlying store account while creating different app user ids in RevenueCat, then when you go to make a purchase, if you currently own the subscription with the other app user id, this will make a transfer event occur as restore purchases will be triggered. You can then view the corresponding initial purchase or renewal that was transferred from the previous user to see the product id.

 

Related Documentation:

https://www.revenuecat.com/docs/restoring-purchases

https://www.revenuecat.com/docs/active-entitlements#transferring-entitlements

https://www.revenuecat.com/docs/event-flows#transfer-flow

https://www.revenuecat.com/docs/support-first-steps#️-a-users-purchases-were-mistakenly-transferred

4 replies

So while testing my purchase flow on my Android device that is tied to a google play “Licensed Test Account”, apparently I transferred purchases from one app account I created to another different account I created on the same device, by hitting “Restore Purchase”. 

Just checking to make sure that this works as intended, as I see that “transactions are associated to the underlying store account.” And in this case, even a test account.


Ryan Glanz
RevenueCat Staff
Forum|alt.badge.img+8
  • RevenueCat Staff
  • 383 replies
  • February 19, 2025

@agustincards14 yes, that is expected to transfer the purchase to the new App User Id in that case. And transfers work in sandbox as well as production.


Forum|alt.badge.img+7
  • Member
  • 9 replies
  • February 20, 2025

In my app, it is very hard to write code that will facilitate a transfer between two app user ids. This is because a subscription is tied to many specific things related to the user who bought it originally. Is the suggested approach here to just use “Keep with original user id” and let the user see the “you’ve already purchased this” modal if they happen to log into a second account?

Lets say I have userA and userB and they have the same underlying Apple / Play store account.
Lets also say my transfer behavior on RC is set to “Keep with original user id”. If userA had bought a subscription and it is still active, then logs into userB they will see “You’ve already purchased this” if they click the subscription. In this case no transfer event will be fired. Will the user still be paying for that subscription and when it renews the new webhook goes to userA again? If userB then buys a subscription that’s different, will userB start getting webhooks for userB’s subscriptions?


Ryan Glanz
RevenueCat Staff
Forum|alt.badge.img+8
  • RevenueCat Staff
  • 383 replies
  • February 26, 2025

Will the user still be paying for that subscription and when it renews the new webhook goes to userA again? If userB then buys a subscription that’s different, will userB start getting webhooks for userB’s subscriptions?

These are both correct. Because they are different store accounts, they will be billed separately, and renewal webhooks will be for the purchasing App User ID.


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