# App install Show a button to install an app. App install renders a component that enables your connected account to install an app. App install is a private preview component that requires using preview versions of Stripe SDKs. Read more about [private preview components](https://docs.stripe.com/connect/supported-embedded-components.md#preview-components). For full integration details, see the [Embedded Stripe Apps integration guide](https://docs.stripe.com/stripe-apps/embedded-apps.md). ### Create an Account Session When [creating an Account Session](https://docs.stripe.com/api/account_sessions/create.md), enable the App install component by specifying `app_install` in the `components` parameter. You must enable the app you want to install by specifying the `features` parameter under `allowed_apps`. ```curl curl https://api.stripe.com/v1/account_sessions \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview; embedded_connect_beta=v2;" \ -d "account={{CONNECTEDACCOUNT_ID}}" \ -d "components[app_install][enabled]=true" \ -d "components[app_install][features][allowed_apps][]=APP_ID" ``` After creating the account session and [initializing ConnectJS](https://docs.stripe.com/connect/get-started-connect-embedded-components.md#account-sessions), you can render the App install component in the front end: #### JavaScript ```js const appInstall = stripeConnectInstance.create('app-install'); appInstall.setApp('{{APP_ID}}'); container.appendChild(appInstall); ``` This embedded component supports the following parameters: #### HTML + JS | Method | Type | Description | | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `setApp` | `string` | Sets the ID of the App your connected account can install. See the list of [available apps](https://docs.stripe.com/stripe-apps/embedded-apps.md#app-select). | #### React | React prop | Type | Description | | ---------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `app` | `string` | The ID of the app that your connected account can install. See the list of [available apps](https://docs.stripe.com/stripe-apps/embedded-apps.md#app-select). | You can configure custom behavior based on the current or updated state of an install. #### JavaScript ```js // index.html
// index.js // Do something when install state fetched on render const handleAppInstallFetched = (response) => { console.log(`Install state fetched for app ${response.appId} to ${response.state}`); }; // Do something when install state changes const handleAppInstallChanged = (response) => { console.log(`Install state changed for app ${response.appId} to ${response.state}`); }; const container = document.getElementById('app-install-container'); const appInstall = stripeConnectInstance.create('app-install'); appInstall.setApp('{{APP_ID}}'); appInstall.setOnAppInstallStateFetched(handleAppInstallFetched); appInstall.setOnAppInstallStateChanged(handleAppInstallChanged); container.appendChild(appInstall); ``` #### HTML + JS | Method | Description | Variables | | ----------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | | `setOnAppInstallStateFetched` | Allows users to specify custom behavior in a callback function on install fetch. | - `response.appId`: The app installed - `response.state`: The state of the install `INSTALLED | UNINSTALLED` | | `setOnAppInstallStateChanged` | Allows users to specify custom behavior in a callback function when the install state has changed. | - `response.appId`: The app installed - `response.state`: The state of the install `INSTALLED | UNINSTALLED` | #### React | React prop | Description | Variables | | -------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | | `onAppInstallStateFetched` | Allows users to specify custom behavior in a callback function on install fetch. | - `response.appId`: The app installed - `response.state`: The state of the install `INSTALLED | UNINSTALLED` | | `onAppInstallStateChanged` | Allows users to specify custom behavior in a callback function when the install state has changed. | - `response.appId`: The app installed - `response.state`: The state of the install `INSTALLED | UNINSTALLED` | You can integrate our sample app (set `APP_ID` to `stripe.app-explorer`), which we’ve pre-approved for embedding on your platform. ## Request early access (Private preview) Sign in to request access to this Connect embedded component in preview. If you don’t have a Stripe account, you can [register now](https://dashboard.stripe.com/register).