How to publish to the Stripe App Marketplace
Learn how to get your app approved for the Stripe App Marketplace.
Use this guide if you’ve authored an app and want to make it publicly available. If your app only needs to be available to your own team members, learn how to upload and install your app instead. This guide describes how to the Stripe App Marketplace, and how to complete the app review process to verify that your app meets Stripe app standards. If you’re only looking to install your app in a small number of accounts, see external testing.
Requirements and restrictions
- You must activate your account.
- You can only publish one app per account.
- Stripe can only support English language listings.
- Contact Stripe if you need to remove your app from the Stripe App Marketplace.
- Your business purpose can’t be on the Stripe Prohibited and Restricted Businesses list.
Steps to publish your app
- Update your manifest
- Prepare your app
- Write your listing
- Submit your app for review (then wait 4 business days)
- Publish your app
We might send you an email requesting changes to your listing before you can publish it. You also need to resubmit and pass review again if you make changes to your app or listing.
Update your manifest
Set the distribution type
stripe apps set distribution public
This updates your manifest:
{ "id": "com.example.app", "version": "1.2.3", "name": "Example Tool", "icon": "./example_icon_32.png", "distribution_type": "public" }
Add required permissions
Add permissions using:
stripe apps grant permission "PERMISSION_NAME" "EXPLANATION"
Upload in test mode
stripe apps upload
Select your app version
Select your app version on the Apps page in the Dashboard.
Include ui_extension only for the Stripe Dashboard UI
If your app doesn’t require a UI in the Stripe Dashboard, leave the ui_
field in stripe-app.
empty:
"ui_extension": []
Prepare your app
Next, create an installation process for installers on other accounts.
- If using third-party OAuth, make sure that your app is fully verified and approved by any third-party provider (for example, Google, Facebook, LinkedIn) you offer. If your app isn’t verified, you’ll typically see a message such as “Google hasn’t verified this app”. Don’t request permissions beyond what you need from these providers.
- If your app has a checkout button, route installers from your Stripe App to your platform before navigating to Stripe Checkout.
- If your app has a UI component, be sure to use the Stripe design UI
- If your platform has a button for OAuth connection to Stripe:
- Use the public install link to redirect. You can find this in the Settings tab (not the channel install link), and the path looks like https://marketplace.stripe.com/oauth/v2/athorize?client_id=$(clientId)&redirect_uri=$(redirect_uri)&state=$(state). Stripe deprecated the Connect Stripe authentication method, so use this OAuth method instead.
- Provide a way to disconnect from Stripe, which becomes visible when the installer connects the app to Stripe. You can show this disconnect option either on the app settings page or on a page in your platform (in the integration section) where users can disconnect and reinstall the app. Clicking it needs to display a pop-up with Confirm and Cancel buttons, and return the app to a state where the user can reconnect to Stripe.
Write your listing
The type of app determines how you present your app listing. The two main types of apps are those with a UI in the Stripe Dashboard, and those without one.
Example app types
An example of an app with a UI in the Stripe Dashboard is Mailchimp. An example of an app without a UI in the Stripe Dashboard is Hubspot.
How to write a compelling listing
The app listing submission page has three main sections:
- The first section clearly states your app’s main value proposition and the primary problem it solves for Stripe users.
- The second and third sections provide more detail about your app’s main use cases and explain how your app addresses each one.
Required fields
Content | Specifications | Guidelines | Example |
---|---|---|---|
Name | 35 characters maximum. Must not contain any of the following words or names: “Stripe,” “app,” “free,” or “paid.” | Appears alongside your app logo throughout the Marketplace and on your app listing page. Must be the same name uploaded in stripe-app . It can’t contain the words “Stripe”, “app," “RAK,” “Generator,” “API Key,” “Authenticator,” “free," or “paid." | EmailWorld |
Icon logo | Image must be high-resolution, at least 300x300 pixels, 1:1 aspect ratio (square), .PNG or .JPG format, and under 10MB. Must be the same logo used in the app manifest. | Appears alongside your app name throughout the App Marketplace and on your app listing page. | |
Built by | 80 characters max. | Name of the individual or organization that built and maintains the app. | EmailWorld, Inc |
Category | Select the category that best describes your app. | If another category is more appropriate, Stripe adjusts it and notifies you during app review. |
|
Subtitle | 80 characters max. | Appears alongside your app name throughout the Marketplace and on your app listing page. This is a concise phrase summarizing the value of your app. Avoid keyword stuffing, marketing jargon, and hyperbole. | See and edit a customer’s support history from the Stripe Dashboard. |
About | 1000 characters max. | Briefly describe what your company does, who your products are for, and the value they deliver for people. An ideal description is one to two sentences that overviews your main product or overall company, followed by a brief description of your Stripe app. Avoid hyperbole, marketing jargon, keyword stuffing or unprovable claims (for example, “The world’s best support product”). | EmailWorld is an email delivery service for growing e-commerce businesses. The EmailWorld app brings our advanced messaging capabilities into Stripe so you can reach your audience in just a few clicks. |
Works with | Automatically populated | Your app manifest automatically populates this, which lets users know what parts of the Stripe Dashboard your app drawer works with. |
|
Features | Add up to three key app features that highlight specific use cases of your app. | Each feature explains how the app interacts with and enhances Stripe. Use clear, value-focused titles and high-quality screenshots that don’t show real customer data. Make sure images are high quality and properly cropped, and don’t describe your company overall. | |
Title | 80 characters max. | Appears alongside your key feature visual and description. This is a concise phrase summarizing the use case for your app, in plain language. | Get email insights on Stripe customers. |
Description | 300 characters max. | A description of how the feature works, and how it benefits someone using it. Describe any limitations. Optionally include a brief company decription. | View email activity, such as opens and clicks, as it relates to your Stripe customers. This allows you to assess how well your campaigns lead to sales without having to toggle between tabs. |
Image | High-resolution with a minimum of 1600 pixels wide (no height minimum), and 10MB or less, in PNG or JPG format. | Use the Figma UI toolkit to design and export a high quality feature image. Show your app in the context of the Stripe Dashboard. Don’t use screenshots showing real customer data or screenshots of your app while you’re testing. | |
Pricing | Communicate whether your app is free or requires a paid subscription. Pricing must be listed without hidden fees, and consistent with off-market prices. Don’t advertise your service as free and then require users to pay after they’ve installed the app. |
| |
Pricing page | Required if your app requires a paid subscription. | Provide a link to a pricing page that explains your pricing model to a prospective user. | |
Support channel | 1-2 channels where users can contact to you. | Also provide an estimate for response time. |
|
Based in | Select each location where your company has headquarters. | United States | |
Supported languages | English is pre-selected and required. Stripe only supports English. If you want to support additional languages, contact Stripe. | English | |
Privacy policy | Provide a link to your privacy policy. This is a URL where users can read the privacy policy for both your company and your app. | emailworld. | |
Terms of service | Optional | Provide a link to your Terms of Service. This needs to be a URL where users can read the terms of service for both your company and your and app. | |
Company website | Optional | Provide a link to your company’s website. Your website must clearly represent your business purpose and identity. | |
FAQ page | Optional | Provide a link to your app’s FAQ page. | |
Technical documentation | Optional | Provide a link to your app’s technical documentation page. The documentation needs to explain everything from installing your Stripe app to how to get the most out of its features. | |
Permissions | Automatically populated | Your app manifest automatically populates this. It lets users know which permissions the app requires. | |
Feature Highlights | Spotlight 1-3 key features to help users quickly understand what your app does. State the feature’s value using simple language in the feature title. For example, “Resolve tickets from Stripe.” Use high quality visuals that don’t show real customer data. | ||
Testing guidance | Must cover all key features for the production environment. Remember to include the onboarding flow. To expedite app review, attach screen recordings of the more complex flows, annotating video links in the video as needed. | Example testing scenario | |
Test credentials of test accounts | Include one or more sets of testing credentials that Stripe can use to install and use your app. Include credentials for the highest role-based access within your app. For example: “admin." Make sure that the test links you provide for app review connect to Stripe through the app installation, not through Connect onboarding. Provide detailed steps about how to connect your app with Stripe. Disable multi-factor authentication or provide instructions for reviewers to pass it. If your test accounts require specific data to use your app (for example, a CSV file), you must include it with the account. If your app is region specific or has geographical restrictions, provide details about which regions are supported, and test credentials for a Stripe account with the latest version of your app installed. Stripe does not permit you to use real (non-test) accounts for the app review process. If you need other ways to provide us access to a specific account for testing purposes, contact Stripe Support for assistance. | Example test credentials |
Example testing credentials 
Test account name | Username | Password |
---|---|---|
Google Sheets | teststripeapps@stripe. | teststripeapps |
Stripe | teststripeapps@stripe. | teststripeapps |
Example user scenario for Stripe with Google Sheets example app 
User scenario | Step by step instructions |
---|---|
Sign in as a user |
|
Export data from Stripe to Google Sheets |
|
Submit for review
View the App Review Requirements page for submission quality requirements.
For reference, the most common issues we see in review are the following:
- If this is a resubmission with an app update, make sure that your testing guidelines cover anything new users might see.
- Verify that your permissions in the manifest have thorough descriptions, and detailed justifications for issuing permissions.
- Verify that links, such as the
allowed_
inredirect_ uris stripe-app.
aren’t broken or localhost URLs.json - Verify image quality and branding compliance.
- Verify all authentication flows and provide clear post-installation instructions:
- Verify test credentials are correct and don’t require 2FA.
- Remove hard-coded API keys from the app.
- Test features in both a sandbox and in live mode, with different user roles.
- For OAuth apps: Verify that you provide the public link in the Settings tab, and not the authentication link in the External Test tab.
- For apps with a UI: Verify that the key features images show the app interface in the Stripe Dashboard.
- For apps using Checkout: Verify that the payment links first route users through your external payment page, and not directly to Stripe Checkout.
After you click Submit on the listing form, you’ll receive an email in 4 business days with an approval or feedback.
App review decision and publication
If we reject your app, you receive detailed feedback that helps you pass review in the next submission.
After you receive the approval email, go to the Apps page in the Stripe Dashboard. From there, you can preview your listing by clicking Review and publish. If you want to make more changes without publishing, click Cancel and edit to change and resubmit your app for another review.
To publish your app on the Stripe App Marketplace, click Publish. Publishing your app means:
- Any user can discover your app on the Stripe App Marketplace.
- Any Stripe account user can install and use your app.
- You can view App Analytics as soon as 24 hours after publication.