# Add deep links Create deep links that navigate users to your Stripe app. A deep link is a URL that reduces the number of navigation steps required for the user to open your app in the Dashboard. You can share deep links in user interfaces such as an email or website or use them when [creating OAuth authorisation workflows](https://docs.stripe.com/stripe-apps/pkce-oauth-flow.md). ## Before you begin To navigate users to a Dashboard page that displays your app, you need an app with [UI functionality](https://docs.stripe.com/stripe-apps/build-ui.md). ## Create the deep link URL To create the URL of the deep link, you must use: - The Stripe account ID where your app is installed. See [User context](https://docs.stripe.com/stripe-apps/reference/extensions-sdk-api.md#user-context) for more details. - The URL of a Dashboard page where you’ve defined a *view* (A view is a React component that creates UI extensions in the Stripe Dashboard). - The `apps` parameter to specify your app and where to open it. - Your application ID, which is specified in the [`id` field of your `stripe-app.json` manifest file](https://docs.stripe.com/stripe-apps/reference/app-manifest.md#schema). > A legacy format using the `open_drawer_app` parameter continues to work for backwards compatibility, but the modern `apps` parameter format is recommended. ### Deep link format The structure of a deep link URL is: ``` https://dashboard.stripe.com///?apps[][TARGET]=VIEWPORT_ID ``` Where: - **ACCOUNT\_ID**: The Stripe account ID (starts with `acct_`) - **MODE**: Use `test` for *test mode* (Test mode is another way to test changes to your integration without affecting production. A sandbox is the default and recommended way to test integrations. All Stripe features are available in test mode but you can't create live charges unless you're in live mode), or omit a value for live mode - **PAGE**: The Dashboard page to display (such as `customers`, `invoices`, or `dashboard`) - **APP\_ID**: Your application ID from your manifest file - **TARGET**: Where to open your app, such as `drawer` (if you use drawers) or `modal` (to open onboarding) - **VIEWPORT\_ID**: Viewport IDs configured in your manifest file (such as `stripe.dashboard.payment.list`) ### Examples If you define a *view* (A view is a React component that creates UI extensions in the Stripe Dashboard) on the Customers page in the Dashboard (`https://dashboard.stripe.com/test/customers?`) and your application ID is `com.example.my-app`: - The *test mode* (Test mode is another way to test changes to your integration without affecting production. A sandbox is the default and recommended way to test integrations. All Stripe features are available in test mode but you can't create live charges unless you're in live 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) deep link is: ``` Deep Link ``` - The live mode deep link is: ``` Deep Link ``` You can open your app on any Dashboard page where you’ve defined a view. For example, to open on the Dashboard home: ``` Deep Link ``` To create a deep link to your onboarding modal, use `modal` instead of `drawer`: ``` Open in Modal ``` ## Share the deep link Make sure you use the live mode URL when you share the deep link to your users. You can share the link anywhere for users who’ve installed your app. If the user hasn’t installed your app before clicking the deep link, Stripe navigates them to a closed app that can’t open in the Dashboard. ## Test the deep link 1. Log in to the Dashboard as a user who has installed the app. 1. Click the deep link. If it navigates you to an app that can’t open, make sure that: - The `apps` parameter uses the correct application ID from your manifest - The account ID in the URL path is correct (format: `acct_` followed by alphanumeric characters) - The user has the app installed for that account - The Dashboard page in the URL has a view defined for your app ## See also - [App manifest reference](https://docs.stripe.com/stripe-apps/reference/app-manifest.md) - [Versions and releases](https://docs.stripe.com/stripe-apps/versions-and-releases.md)