# Manage your app's versions and releases Learn about app versioning and releases to ship new versions of your app and manage changes over time. In Stripe Apps, a *version* is a framework to help you manage changes to your app over time. A *release* is a version of your app that you decide to publish—either to your own account or on the *Stripe App Marketplace* (A marketplace to browse, search, and install Stripe apps) after passing app review. ## Versions overview The `version` property in the *app manifest* (In a Stripe App, the app manifest is a stripe-app.json file in your app's root directory. It defines your app's ID, views, permissions, and other essential properties) lets you specify the version of your app. Stripe doesn’t enforce a specific versioning schema for apps, but we recommend following an established pattern, like [semantic versioning](https://semver.org/). Stripe users who install your app don’t have to think about the version number. Stripe automatically upgrades them to the latest release of an app. The app functions in a similar manner to apps updating automatically on your phone. The only exception is cases where the permissions scope changes. If you change the permissions, users of your app are prompted to re-authorize your app and its new permissions. ## How to upload a new app version 1. Change the `version` property in the [app manifest](https://docs.stripe.com/stripe-apps/reference/app-manifest.md). 1. Upload the new app version to Stripe. Follow the same [upload process](https://docs.stripe.com/stripe-apps/upload-install-app.md) that you used when creating an app. ## Changing between app versions in test mode You can change between different app versions in test mode and *sandbox* (A sandbox is an isolated test environment that allows you to test Stripe functionality in your account without affecting your live integration. Use sandboxes to safely experiment with new features and changes) environments before creating a release. 1. In the Stripe Dashboard, go to [Apps](https://dashboard.stripe.com/apps). 1. Select the app you want to create a new version for, and view **App Details**. 1. In the version history table, click the overflow menu (⋯) of the new version. 1. Select **Install in test mode** and complete the installation. ## Releases overview To distribute your app in live mode for users, create a new release. You can publish it to your own account or to the [App Marketplace](https://docs.stripe.com/stripe-apps/publish-app.md). To be listed in the App Marketplace, releases must go through [App Review](https://docs.stripe.com/stripe-apps/review-requirements.md). ## How to create a new release 1. In the Stripe Dashboard, go to [Apps](https://dashboard.stripe.com/apps). 1. Select the app you want to create a new version for, and view **App Details**. 1. Click **Create new release**. 1. Follow the steps to create a new release. When your release passes app review, all users are automatically upgraded to the latest released version. ## How to remove an app listing or change a release App releases can only be fixed forward. To remove an app listing or change an app release that had accidental changes, bump the app version and make a new release of the app. Since we don’t enforce a versioning structure, an incremental release is any release created after the current live version. For example, if version 2.0.0 was uploaded before version 1.0.0, version 2.0.0 won’t be available to create a release. To remove an app or an app release from Stripe, contact Stripe according to the [terms of the App Marketplace Agreement](https://stripe.com/legal/app-marketplace-agreement), specifically the “Takedowns” section. ## How app permission updates affect app users When you release a version of your app with changed permissions, your app’s users must reauthorize it by approving any new permissions. If the app tries to perform an action without the required permissions, Stripe returns an “invalid request” error. For more information about specific permissions and the functionality they control, see the [Permissions reference](https://docs.stripe.com/stripe-apps/reference/permissions.md). When an app requires reauthorization, Stripe notifies users by email and through their Dashboards. ![App reauthorization notification](https://b.stripecdn.com/docs-statics-srv/assets/app-detail-reauth.18c8b4edc12f85d66af7ad3b2d9ae510.png) App reauthorization notification ![App reauth flow](https://b.stripecdn.com/docs-statics-srv/assets/app-modal-reauth.37afad3db136c57e84e1c1f3ab3d6287.png) Authorize new permissions ## See also - [Upload your app](https://docs.stripe.com/stripe-apps/upload-install-app.md) - [Publish your app](https://docs.stripe.com/stripe-apps/publish-app.md) - [App review requirements](https://docs.stripe.com/stripe-apps/review-requirements.md)