Omnichannel Subscriptions Migration Guide
Overview
This document describes how to migrate subscriptions from the Apple App Store and Google Play Store to Chargebee’s Omnichannel solution. The goal is to ensure a seamless transition with no downtime while maintaining accurate subscription states during migration.
Apple App Store migration
Prerequisites for Apple App Store migration
Before you begin, ensure the following:
-
Connect your Apple apps with in-app subscriptions to Chargebee. Learn more.
-
Ensure valid Apple transaction IDs are available.
-
Create customers in Chargebee for all users whose subscriptions you plan to migrate.
-
Configure the webhook notification URL generated by Chargebee in your backend.
Note
Don’t change the notification URL in App Store Connect until migration is complete. Changing it may disrupt service for existing users.
Key constraints for Apple App Store migration
Apple enforces strict rate limits:
- ~3,500 requests per minute
- ~430 subscriptions per hour
Additional considerations:
- Large migrations (100K–200K subscriptions) can take significant time.
- Apple supports only one webhook notification URL.
Migration approach for Apple App Store
1. Parallel system setup
To sync new subscriptions during migration:
- Record transactions in your backend when users create subscriptions in your Apple app.
- Call the Create Customer API and Record a Purchase API to create the customer and corresponding Omnichannel subscription in Chargebee.
2. Webhook events handling
Apple supports only one notification URL.
-
Configure either:
- the Chargebee notification URL, or
- your backend URL in App Store Connect
-
If you use your backend URL:
- Forward webhook events to the Chargebee notification URL.
3. Subscription import process
Import subscriptions in batches:
- Call the Record a Purchase API in a loop.
- Limit requests to 430 per hour.
Example
If you need to import 1,200 subscriptions:
- Create 3 batches
- Each batch contains ~400 transaction IDs
Handling rate limits
If you exceed the limit:
- You may receive an HTTP 429 RateLimitExceededError.
- Log the failure.
- Retry the job later using a queue.
4. Post-migration validation
After migration:
- Verify imported subscriptions using the List Omnichannel Subscriptions API.
Key considerations during Apple App Store migration
- Continue provisioning access through your existing system until your backend switches to Chargebee webhook events.
- Migration duration depends on total subscription volume.
Google Play Store migration
Prerequisites for Google Play Store migration
Before you begin, ensure the following:
-
Connect your Google apps to Chargebee.
-
Ensure valid Google order IDs are available.
-
Create customers in Chargebee for all users whose subscriptions you plan to migrate.
-
Subscribe Chargebee to the Play Store Pub/Sub topic configured in Google Cloud Console. Learn more.
Migration approach for Google Play Store
1. Parallel system setup
To sync new subscriptions during migration:
- Record order IDs in your backend when users create subscriptions in your Google app.
- Call the Create Customer API and Record a Purchase API to create the customer and corresponding Omnichannel subscription in Chargebee.
2. Webhook events handling
Subscribing to the Play Store Pub/Sub topic ensures:
- Chargebee receives webhook events
- Subscription states stay up to date
3. Subscription import process
Import subscriptions by calling the Record a Purchase API in a loop.
Rate limits
-
Google supports ~3,000 API calls per minute.
-
To account for internal processing, use:
- 400 API calls per minute
- ~24,000 per hour
4. Post-migration validation
After migration:
- Verify imported subscriptions using the List Omnichannel Subscriptions API
Key considerations during Google Play Store migration
- Continue provisioning access through your existing system until your backend switches to Chargebee webhook events.
- Migration duration depends on total subscription volume.
Was this article helpful?