---
title: Store Credential Security
description: How Apptonomy secures your App Store and Google Play credentials, and what happens if a credential stops working.
---

Linking a store gives Apptonomy access to publish listing changes and read your performance data on your behalf. This page explains how those credentials are protected, and how Apptonomy tells you when one needs attention.

## How your keys are stored

Apptonomy encrypts your keys in the browser using asymmetric encryption before uploading them to our servers. The keys are re-encrypted on our servers using industry-standard encryption via Google Key Management Service (KMS). We use a double-wrapping approach to further limit vulnerability to various attacks.

The keys are never stored in plain text in our systems. Decryption happens on demand, just before performing a transaction with the App Store or Play Store API.

:::note[Keyless Google Play linking stores no key at all]
If you link Google Play using the recommended [keyless method](/docs/store-setup/playstore-credential#keyless-linking-recommended), there is no key file to secure — you grant access to an Apptonomy-managed service account inside your Play Console, and you can revoke it there at any time.
:::

## When a credential stops working

Store credentials can stop working for reasons outside Apptonomy — a key is revoked, a role is removed, an Apple team membership changes, or Google Play permissions are altered. Apptonomy watches for these failures and surfaces them rather than failing silently.

When Apptonomy detects that a credential has become invalid, it:

1. Raises a **credential error banner** on the project's Watchtower with a link to fix it.
2. Sends an **invalid store credential** notification to the project's [notification feed](/docs/monitoring/notifications).

Once you fix the underlying access and the next check succeeds, Apptonomy clears the banner and posts a **credential recovered** notification, so you know the connection is healthy again without having to re-check manually.

## Fixing an invalid credential

The fix depends on the store:

- **App Store** — regenerate the API key with both required roles and re-enter it. See [App Store troubleshooting](/docs/store-setup/appstore-credential#troubleshooting).
- **Google Play (keyless)** — confirm the Apptonomy service account still has its roles in Play Console, then use **Re-verify** on the error banner. See [Google Play troubleshooting](/docs/store-setup/playstore-credential#troubleshooting).
- **Google Play (bring-your-own-key)** — if the key was revoked, create a new one and re-upload it.

## Revoking Apptonomy's access

You remain in control of access at all times:

- **App Store** — revoke the API key in App Store Connect, or remove the required roles.
- **Google Play** — remove the invited service account (keyless) or revoke the key (bring-your-own-key) in your Google Cloud or Play Console.

## Related

- [App Store Linking](/docs/store-setup/appstore-credential)
- [Google Play Linking](/docs/store-setup/playstore-credential)
- [Project notifications](/docs/monitoring/notifications)
