Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Revenue
Platforms and marketplaces
Money management
Developer resources
Overview
Versioning
Changelog
Upgrade your API version
Upgrade your SDK version
Essentials
SDKs
API
Testing
Stripe CLI
Sample projects
Tools
Workbench
Developers Dashboard
Stripe Shell
Stripe for Visual Studio Code
Features
Workflows
Event destinations
Stripe health alertsFile uploads
AI solutions
Agent toolkit
Model Context Protocol
Security and privacy
Security
Privacy
Extend Stripe
Build Stripe apps
    Overview
    Get started
    Create an app
    How Stripe Apps work
    Sample apps
    Build an app
    Store secrets
    API authentication methods
    Authorization flows
    Server-side logic
    Listen to events
    Handle different modes
    Enable sandbox support
    App settings page
    Build a UI
    Onboarding
    Distribute your app
    Distribution options
    Upload your app
    Versions and releases
    Test your app
    Publish your app
      App review requirements
    Promote your app
    Add deep links
    Create install links
    Assign roles in UI extensions
    Post-install actions
    App analytics
    Embedded components
    Embed third-party Stripe Apps
    Migrating to Stripe Apps
    Migrate or build an extension
    Migrate a plugin to Stripe Apps or Stripe Connect
    Reference
    App manifest
    CLI
    Extension SDK
    Permissions
    Viewports
    Design patterns
    Components
Use apps from Stripe
Partners
Partner ecosystem
Partner certification
HomeDeveloper resourcesBuild Stripe apps

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

  1. Update your manifest
  2. Prepare your app
  3. Write your listing
  4. Submit your app for review (then wait 4 business days)
  5. 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

Command Line
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:

Command Line
stripe apps grant permission "PERMISSION_NAME" "EXPLANATION"

Upload in test mode

Command Line
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_extension field in stripe-app.json empty:

Command Line
"ui_extension": []

Prepare your app

Next, create an installation process for installers on other accounts.

  1. 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.
  2. If your app has a checkout button, route installers from your Stripe App to your platform before navigating to Stripe Checkout.
  3. If your app has a UI component, be sure to use the Stripe design UI
  4. 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

ContentSpecificationsGuidelinesExample
Name35 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 logoImage 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 by80 characters max.Name of the individual or organization that built and maintains the app.EmailWorld, Inc
CategorySelect the category that best describes your app.If another category is more appropriate, Stripe adjusts it and notifies you during app review.
  • Support
  • Sales
Subtitle80 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.
About1000 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 withAutomatically populatedYour app manifest automatically populates this, which lets users know what parts of the Stripe Dashboard your app drawer works with.
  • Payments
  • Customers
FeaturesAdd 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.
Title80 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.
Description300 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.
ImageHigh-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.
PricingCommunicate 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.
  • Free
  • Free trial available
  • Paid subscription required
Pricing pageRequired if your app requires a paid subscription.Provide a link to a pricing page that explains your pricing model to a prospective user.
Support channel1-2 channels where users can contact to you.Also provide an estimate for response time.
  • help@helptable.com
  • helptable.com/support
Based inSelect each location where your company has headquarters.United States
Supported languagesEnglish is pre-selected and required. Stripe only supports English. If you want to support additional languages, contact Stripe.English
Privacy policyProvide 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.com/privacy-policy
Terms of serviceOptionalProvide 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 websiteOptionalProvide a link to your company’s website. Your website must clearly represent your business purpose and identity.
FAQ pageOptionalProvide a link to your app’s FAQ page.
Technical documentationOptionalProvide 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.
PermissionsAutomatically populatedYour app manifest automatically populates this. It lets users know which permissions the app requires.
Feature HighlightsSpotlight 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 guidanceMust 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 accountsInclude 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 nameUsernamePassword
Google Sheetsteststripeapps@stripe.comteststripeapps
Stripeteststripeapps@stripe.comteststripeapps

Example user scenario for Stripe with Google Sheets example app

User scenario Step by step instructions
Sign in as a user
  1. Install the app from the Stripe App Marketplace.
  2. Open the app.
  3. Click the Sign in button.
  4. Enter the Google test credentials (provided for you below).
  5. Give the app access to your Google account.
  6. Return to the Stripe Dashboard signed into the app. After completing the steps, you can use a service of Google Sheets in your app in the Dashboard.
Export data from Stripe to Google Sheets
  1. Navigate to either the Payments or Customers Dashboard page.
  2. Open the app in the Dashboard.
  3. Click the button in the app drawer to export data.
  4. Select a folder (optional).
  5. Save the data. The data is now available as a CSV in your Google Drive account.

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_redirect_uris in stripe-app.json aren’t broken or localhost URLs.
  • 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.

See also

  • App review qualitative requirements
Was this page helpful?
YesNo
  • Need help? Contact Support.
  • Join our early access program.
  • Check out our changelog.
  • Questions? Contact Sales.
  • LLM? Read llms.txt.
  • Powered by Markdoc