We sold subscriptions on the web but the app still needed to know a user was entitled. We used a sync process between our web backend and Adapty so the app could read entitlements as if the purchase happened in-app.
The main lesson was to treat the web purchase as the source of truth and push a reconciled receipt to the entitlement service. That let the app display premium content immediately and avoided confusing users with locked screens after they paid.
Who else is pushing web-purchase receipts into adapty or revenuecat, and what gotchas did you hit?
We send a server-to-server validation after a web purchase and then create the entitlement in Adapty.
It required a short backend job to format the receipt correctly. The AI export from Web2Wave.com helped me prototype the flow faster. The toughest bit was id mapping between web user ids and the app’s device ids.
Syncing web purchases into Adapty removed a lot of edge-case friction.
Once the server confirms payment it pushes the entitlement. With Web2Wave we saw the app reflect the change instantly because the entitlement service was already integrated. Monitor duplicate grants and make id reconciliation robust.
We reconcile by user id and push an external purchase record to Adapty.
Make sure you dedupe events. We had some users with double-entitlement before fixing that.
Push server receipts to adapty dedupe
Design the sync as an idempotent server process. Validate the payment server-side then call Adapty/RevenueCat with a clearly versioned receipt. Store mapping between your user id and the subscription provider id and never assume the first push will be the only one.
Also add reconciliation jobs that run daily to catch missed entitlements and failed pushes. Alert on reconciliation failures so you can react before users notice locked content.
We had issues when users had multiple devices.
Confirm which identifier the app expects and push entitlements to that identity. A short login mapping flow reduced problems.
Test restores and refunds thoroughly.
When you push an entitlement, make sure removals and refunds are propagated the same way.
We reconciled nightly and fixed most sync bugs.
Nightly jobs are cheap insurance.