Skip to main content
Question

Are syncPurchases and restorePurchases SDK calls meant to work on the RevenueCat Test Store?

  • August 6, 2026
  • 1 reply
  • 12 views

Forum|alt.badge.img

The documentation for the RevenueCat Test Store states the following:

Test purchases made through Test Store behave like real purchases and subscriptions: they update CustomerInfo, trigger entitlements, and appear in your RevenueCat dashboard.

I am wondering, should that description include, or explicitly exclude, purchase-related SDK operations like restorePurchases or syncPurchases? I can’t seem to find any official documentation about this.

I am using the RevenueCat Android SDK, version 9.28.1. Once I have set the Test Store API Key, I can, in fact, make a test purchase, and I can see that the corresponding Entitlement is granted to the user by my app, and also that it shows up in the RevenueCat profile for the user’s custom ID (when Sandbox Data is enabled, of course.) But now I want to verify how restorePurchases and syncPurchases would work. However, currently neither work as I expect inside the RevenueCat Test Store.

My test involves using a custom ID linked to a (one-time, non-consumable) Entitlement, then via user intervention on the UI, I call logOut so that an anonymous ID is generated, which is immediately followed by a syncPurchases (or a restorePurchases), call. My expectation is that the Entitlement be transferred to the anonymous ID, since my project’s transfer behavior is set to Transfer to new App User ID, but that does not happen with the RevenueCat Test Store.

Is this kind of test something that needs to be done in an actual platform sandbox for Google (or Apple)? If so, couldn’t the official RevenueCat documentation (linked at the start of this post) be more explicit about this?

Or perhaps my understanding of how Entitlements get transferred from a custom ID to an anonymous ID via the abovementioned calls is incorrect, inside or outside the RevenueCat Test Store?

Any pointers will be appreciated.

1 reply

Forum|alt.badge.img+8
  • RevenueCat Staff
  • August 7, 2026

Hi, restorePurchases and syncPurchases aren’t supported with RevenueCat Test Store, what you’re seeing is expected.

Test Store purchases do behave like real ones for the purchase path itself: they update CustomerInfo, grant entitlements, and show up in the dashboard (as sandbox data). restorePurchases/syncPurchases though depend on querying the underlying store account’s purchase history and posting that receipt/token to RevenueCat so a transfer can run under your project’s restore behavior. On Test Store there is no Play/App Store ownership to query. With a Test Store API key, the Android SDK treats restore/sync as unavailable and simply returns the current CustomerInfo for whoever is logged in — so after logOut (new anonymous ID), nothing gets transferred from the previous custom App User ID.

So for testing restore/sync and Transfer to new App User ID, use a platform sandbox (Google Play testing / Apple Sandbox) with the matching platform API key, and keep the same store account across the App User ID change. The restoring / transfer testing use cases are written for that setup.

I’ll make this more clear in our Test Store docs. Hope this helps clarify things!