Skip to content

Migration, into Orca, and out again

Data Transfers? Why
App Store and Google Play subscriptions Yes They belong to the store. Once Orca has your store credentials it reads the same subscriptions any provider would.
Stripe and GoCardless subscriptions Yes They live in your own Stripe/GoCardless accounts; Orca connects to those accounts.
Entitlement configuration Re-created You define entitlements and link products in the Orca dashboard.
Customer identity Mapped Orca keys access by email. Customers known only by an anonymous ID in the old system need an email before they can be looked up in Orca.
Historical analytics from a previous provider No Those are the provider’s derived data. Export them before you leave.
Customers and entitlements Yes, bulk import Import your existing customers and their entitlements in one step so access is correct before the first client build ships.
  1. Inventory. List every product per store and the access it grants. This becomes your entitlement map.
  2. Sandbox first. Connect stores in sandbox, create entitlements, make a sandbox purchase.
  3. Bulk import. Import customers and entitlements so Orca already knows who has access.
  4. Parallel run. Ship a client build that calls identify(email) and reads Orca entitlements but still grants access from the old system. Log disagreements.
  5. Reconcile. For the logged disagreements, decide which system is right and why. Common causes: missing email mapping, a product not linked, a store notification URL still pointing at the old provider.
  6. Server first, then clients. Move the access decision to getActiveEntitlements on your server while old clients keep working. Then move purchases to the Orca client SDKs release by release.
  7. Cut over store notifications. Point App Store Server Notifications and Play RTDN at Orca. Note: Apple allows one production notification URL per app, so this step is the real cutover for Apple.
  8. Keep a rollback build for one release cycle, with the old provider’s credentials still valid.

Customer impact, done this way, is nil: nobody is asked to re-purchase, and access is granted by whichever system is authoritative at each step.

The same table applies in reverse. Your next provider (or your own backend) reads the store subscriptions from the same store credentials. Export customer and entitlement information from the dashboard and use it to seed the new entitlement map. Stripe and GoCardless subscriptions stay where they are.

Transaction-identifier mapping between providers and any provider-specific anonymous IDs are out of scope here because the behaviour depends on the other provider. If you are migrating from a named provider, read their export documentation alongside this page.