We started selling subscriptions on the web and needed the app to recognise those purchases. I integrated RevenueCat (Adapty would work the same) to sync entitlements immediately after a web checkout. The web call writes the purchase to our backend and RevenueCat maps it to the user so the app can unlock features on first open.
That handoff reduced post-install churn because users saw perks right away instead of wondering if the purchase worked. The tricky bits were matching identities reliably across browser cookie clearance and installs. We solved that with a short verification flow in the app that linked the device to the web purchase.
How are you handling identity stitching between web buyers and app installs?
I used RevenueCat to keep entitlements in sync.
After a web purchase our backend calls RevenueCat to grant the entitlement and returns a token the app can redeem.
It is simple and avoided writing custom receipt validation. I used parts of the Web2Wave example integration to speed up wiring.
We wrote the purchase on the web to RevenueCat so the app sees the entitlement on first open.
That allowed personalized win-back messages based on purchase status and removed a common confusion point after installation.
Using a web platform that syncs with RevenueCat made this process repeatable across campaigns.
Link web purchases to RevenueCat or Adapty.
Then make the app check for entitlements on first open.
Users appreciate seeing features unlocked straight away.
RevenueCat solved our entitlement sync
The most robust approach is to surface a short verification step inside the app that asks the user to confirm their email or paste a code from the web receipt. Then call RevenueCat to reconcile entitlements server-side. This avoids relying on device identifiers or fragile deep links. It adds one small friction but removes the confusion of ‘did my purchase land or not’ which otherwise drives churn and support tickets.
We generate a short one-time code after the web checkout.
The app asks for it on first open and we use it to match the payment and grant entitlement via RevenueCat.
Low friction and low support load.
I make the app call RevenueCat on open and reconcile web purchases.
Works well and keeps support down.