# Upload and install your Stripe App

Make your app available to team members on your Stripe account.

Some Stripe Apps features also require you to upload your app. For more information, see:

- [Store secrets](https://docs.stripe.com/stripe-apps/store-secrets.md)
- [Add server-side functionality](https://docs.stripe.com/stripe-apps/build-backend.md)

To share your app with your *team members* (A team member is a user with controlled access to some features of your Stripe account, like an administrator, developer, or support specialist), install it on your Stripe account with two steps:

- [Upload your app](https://docs.stripe.com/stripe-apps/upload-install-app.md#install-your-app-in-test-mode)
- [Install in live mode](https://docs.stripe.com/stripe-apps/upload-install-app.md#install-in-live-mode)

Any team member with access to your Stripe account can run your installed apps. To give other Stripe accounts access, you can [publish your app](https://docs.stripe.com/stripe-apps/publish-app.md) on the Stripe App Marketplace. Your [app ID](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#schema) must be globally unique.

## Upload your app

Before uploading, run `stripe login` and log in to the account where you want to install the app:

- For a private app, log in to the sandbox where you want to test it.
- For a public app intended for live publication, log in to your live account. You can also upload from a supported sandbox or test-only account for external testing limited to other sandbox or test-only accounts.

For a public app that you want to test in a general sandbox, [update its manifest to support sandbox installs](https://docs.stripe.com/stripe-apps/enable-sandbox-support.md#update-the-app-manifest) before uploading.

Then run the following command from your project root directory:

```bash
stripe apps upload
```

Stripe validates your [app manifest](https://docs.stripe.com/stripe-apps/reference/app-manifest.md). After validation is complete, install the new version in a sandbox.

For a private app:

1. Go to [Created apps](https://dashboard.stripe.com/test/apps/created) in the Dashboard and select your app.
2. On the **Versions** tab, click **Install** or **Change version**.
3. Select the version to install, then click **Install** or **Change version** again.
4. On the **Details** tab, confirm the version appears under **Version installed in this sandbox**.

When you’re ready to install the private app in live mode, log in to your live account and upload the app again before following the live-mode installation steps.

For a public app uploaded from a live account, complete the remaining steps to [enable general sandbox support](https://docs.stripe.com/stripe-apps/enable-sandbox-support.md), then follow the [sandbox installation steps](https://docs.stripe.com/stripe-apps/enable-sandbox-support.md#test-your-app-in-a-sandbox). For a public app uploaded from a supported sandbox or test-only account, use [external testing](https://docs.stripe.com/stripe-apps/test-app.md) to install it on another sandbox or test-only account.

After this step:

- Team members with access to this sandbox can access your app.
- Your app can [store secrets](https://docs.stripe.com/stripe-apps/store-secrets.md) in this sandbox.
- You can access your app’s signing secret to connect it to a [backend](https://docs.stripe.com/stripe-apps/build-backend.md).

## Install in live mode

To access real customer data, install your app in live mode.

1. Go to [Created apps](https://dashboard.stripe.com/apps/created) in the Dashboard and select your app.
2. On the **Versions** tab, click **Install** or **Change version**.
3. Select the version to install, then click **Install** or **Change version** again.
4. On the **Details** tab, confirm the version appears under **Version installed in this account**.

After this step:

- Any team member can access your app in live mode in the Dashboard.
- Your app can [store secrets](https://docs.stripe.com/stripe-apps/store-secrets.md) in live mode.
- Your app’s signing secret remains available.

### Uninstall your app in live mode 

To switch between installing your app in live mode to publishing it on the *Stripe App Marketplace* (A marketplace to browse, search, and install Stripe apps), uninstall the app in live mode:

1. Go to the [Installed Apps page in the Dashboard](https://dashboard.stripe.com/settings/apps/), and find the app you want to uninstall.
2. Click the overflow menu ⋯ at the right side of your app, and click **View app details**.
3. Click **Uninstall app**, and click **Uninstall**.

After this step, you can [publish your app to the Stripe App Marketplace](https://docs.stripe.com/stripe-apps/publish-app.md).

## See also

- [Add deep links](https://docs.stripe.com/stripe-apps/deep-links.md)
- [Versions and releases](https://docs.stripe.com/stripe-apps/versions-and-releases.md)
