---
id: "revenuecat-support/common-tickets/update-after-developer-account-transfer"
title: "Update RevenueCat after an Apple or Google developer-account transfer"
description: "This article shows you how to update RevenueCat after an app moves to another App Store Connect or Google Play developer account. By the end, RevenueCat will use credentials owned or authorized by the recipient account and will continue receiving store events for the same app."
permalink: "/docs/revenuecat-support/common-tickets/update-after-developer-account-transfer"
slug: "update-after-developer-account-transfer"
version: "current"
original_source: "docs/revenuecat-support/common-tickets/update-after-developer-account-transfer.mdx"
---

> **AI agents:** This is the Markdown version of a RevenueCat documentation page. For the complete documentation index, see [llms.txt](https://www.revenuecat.com/docs/llms.txt).

This article shows you how to update RevenueCat after an app moves to another App Store Connect or Google Play developer account. By the end, RevenueCat will use credentials owned or authorized by the recipient account and will continue receiving store events for the same app.

The store transfer and a RevenueCat project ownership transfer are separate operations. If the RevenueCat project is also changing owners, complete the [project ownership transfer](https://www.revenuecat.com/docs/projects/overview#transferring-ownership) separately.

## Prerequisites

- Admin access to the RevenueCat project and its app settings
- Coordinated access to the source and recipient store developer accounts
- The same Bundle ID or package name and Product identifiers after the official store transfer
- Active store agreements and payment information in the recipient account
- Time to replace credentials as soon as the store marks the transfer complete

Record the current RevenueCat app configuration, credentials, and notification status before the store transfer. Don't copy private keys into notes, tickets, or chat messages.

## 1. Keep the app identity and RevenueCat configuration

An Apple or Google developer-account transfer keeps the app's Bundle ID or package name. Keep the existing RevenueCat app configuration and public SDK key when only the store ownership changes.

Don't create a replacement RevenueCat app configuration unless the app is also moving to another RevenueCat project. Creating one unnecessarily separates future activity from the app's existing Customer and purchase history.

Historical RevenueCat charts, Customers, subscriptions, and revenue remain attached to the existing app configuration. You don't need to change the RevenueCat public SDK key or release an app update for the store transfer.

## 2. Prepare credentials before the transfer

Prepare credentials in the recipient account before starting the store transfer:

- **Apple:** Generate or identify an active In-App Purchase key and an App Store Connect API key in the recipient account. Confirm that the source app's app-specific shared secret is valid as a fallback during the transfer.
- **Google:** Generate a new Google Cloud service account and JSON credentials controlled by the recipient. Google Play service credentials can take up to 36 hours to activate, so create them early.

You still need to add the transferred app to the credentials and upload them to its RevenueCat app configuration after the store transfer completes.

Before starting the transfer, test the recipient's credentials with a temporary RevenueCat app configuration or project when possible. Wait until RevenueCat validates the credentials and complete a Sandbox purchase against an app in the recipient's store account. Continue using the existing RevenueCat app configuration for the transferred production app.

## 3. Complete the store transfer

Follow Apple or Google's transfer requirements. The receiving account must accept the app and complete any required agreements before RevenueCat can validate recipient-owned credentials.

For Apple, confirm that the receiving account has an active Paid Applications Agreement. For Google Play, confirm that the app appears in the receiving account and that the recipient can manage orders, subscriptions, and app permissions.

## 4. Update Apple credentials

After an App Store Connect transfer:

1. Open the transferred app in the RevenueCat dashboard.
2. Replace the [In-App Purchase key](https://www.revenuecat.com/docs/service-credentials/itunesconnect-app-specific-shared-secret/in-app-purchase-key-configuration) with an active key from the receiving App Store Connect account.
3. Replace or confirm the [app-specific shared secret](https://www.revenuecat.com/docs/service-credentials/itunesconnect-app-specific-shared-secret).
4. Replace the [App Store Connect API key](https://www.revenuecat.com/docs/service-credentials/itunesconnect-app-specific-shared-secret/app-store-connect-api-key-configuration).
5. Save the app settings and resolve every credential validation error.

Credentials belong to an App Store Connect account, not to the RevenueCat project. A credential from the previous owner may stop working after the transfer even though the Bundle ID and Products stay the same.

You can use the same active In-App Purchase key and team App Store Connect API key for multiple apps in the receiving account. Upload and validate them in each RevenueCat app configuration.

Apple purchases and renewals continue during the transfer. However, invalid credentials can delay RevenueCat's transaction validation and Entitlement updates until valid credentials are available and RevenueCat receives the purchase again.

## 5. Update Google Play credentials

After a Google Play developer-account transfer:

1. Confirm that the Google Cloud project used for RevenueCat is linked to the receiving Google Play developer account.
2. Open **Users and permissions** in the receiving Google Play Console account.
3. Grant the service account access to the transferred app and all permissions listed in the [Google Play service credentials guide](https://www.revenuecat.com/docs/service-credentials/creating-play-service-credentials#2-add-the-service-account-to-your-app-in-google-play-console).
4. [Upload the new Google Play service credentials](https://www.revenuecat.com/docs/service-credentials/creating-play-service-credentials) to the existing RevenueCat app configuration.
5. Run all credential checks.
6. If a check remains unresolved, wait for Google to apply the credential and permission changes, then run validation again.

Generating new service credentials is the recommended path. Keep an existing service account only when the recipient also controls its Google Cloud project and private key, and the receiving Google Play account authorizes it for the transferred app.

If validation remains unresolved, follow the [Google Play credential troubleshooting checklist](https://www.revenuecat.com/docs/service-credentials/creating-play-service-credentials#troubleshooting).

## 6. Verify server notifications

Review the store notification setup after the transfer, even if the destination appears unchanged.

For Apple:

1. In the existing RevenueCat app configuration, select **Apply in App Store Connect**.
2. Confirm that App Store Connect has the RevenueCat URL in both the production and Sandbox fields.
3. After Apple sends an event, confirm that the latest notification timestamp updates in RevenueCat.

For Google:

1. Reconnect the existing RevenueCat app configuration to Google and copy its Pub/Sub topic ID.
2. Confirm that the topic ID is set under **Monetization setup** in Google Play Console.
3. Send a test Real-Time Developer Notification.
4. Confirm that RevenueCat shows a recent **Last received** timestamp.
5. If the test fails, grant `google-play-developer-notifications@system.gserviceaccount.com` the **Pub/Sub Publisher** role on the topic.

See [Platform Server Notifications](https://www.revenuecat.com/docs/platform-resources/server-notifications) for store-specific instructions.

## 7. Test purchases and restores

Before considering the transfer complete:

- Import the expected Products from the store.
- Fetch the expected Offering in the app.
- Complete a Sandbox purchase.
- Restore a purchase with an existing test store account.
- Confirm that RevenueCat activates the expected Entitlement.
- Confirm that webhooks and integrations receive the resulting events.

Existing production Customers shouldn't need to repurchase because the store app identity and RevenueCat app configuration remain the same.

## Limitations

Google Play transfers subscriptions and related app data, but pre-transfer orders remain associated with the source developer account. Keep access to the source account when you may need to review or refund those orders. Future renewals appear in the receiving account.

This Google Play order-history split doesn't remove historical data from RevenueCat.

## Troubleshooting

### Product import fails after the transfer

Replace or reauthorize the store-management credential. For Google Play, confirm that the service account has the **Manage store presence** permission. Purchase validation and Product import may use different permissions, so one can work while the other fails.

### Google Play checks remain unresolved

Confirm that the Google Cloud project is linked to the receiving Google Play developer account. Then confirm that the service account is active, assigned to the transferred app, and has every required permission.

New credentials and permission changes can take up to 36 hours to propagate through Google's systems.

### Apple checks remain unresolved

Confirm that the key, Key ID, and Issuer ID all belong to the receiving App Store Connect account. Apple credentials may take time to propagate after the transfer completes.

### Subscriptions remain stale after credentials validate

RevenueCat revalidates an affected Customer's purchases after a new store event or purchase sync. Customers affected during a credential gap may not all update at once.

Ask an affected Customer to reopen the app. If the subscription remains stale, trigger a purchase sync or [restore purchases](https://www.revenuecat.com/docs/getting-started/restoring-purchases) so RevenueCat can fetch the current state from the store.

### Store events arrive late or not at all

Recheck server notifications. Valid purchase credentials don't prove that App Store Server Notifications or Google Real-Time Developer Notifications are configured correctly.

## Next steps

- [Correct a Bundle ID or package name mismatch](https://www.revenuecat.com/docs/revenuecat-support/common-tickets/correct-app-identifier)
- [Set up Platform Server Notifications](https://www.revenuecat.com/docs/platform-resources/server-notifications)
- [Transfer RevenueCat project ownership](https://www.revenuecat.com/docs/projects/overview#transferring-ownership)
