Publishing to Stripe App Marketplace

Publishing your Stripe App to the marketplace makes it available to all Stripe users. This guide covers the requirements, preparation steps, and submission process.

Prerequisites

Before you can publish an app to the Stripe App Marketplace, you must meet these requirements:

  • Activated Stripe account: Your account cannot be restricted to test mode only
  • One app per account: Each Stripe account can only publish one public app to the marketplace
  • English only: All app content, UI text, and listing information must be in English
  • Completed app: Your app must be fully functional and tested

Caution

If you need to publish multiple apps, you must create separate Stripe accounts for each one.

Publishing Steps

Step 1: Update Your Manifest

Set the distribution_type in your stripe-app.json to public:

{
"id": "com.tajo.brevo-integration",
"version": "1.0.0",
"name": "Tajo Brevo Integration",
"icon": "./icon.png",
"distribution_type": "public",
"permissions": [
{
"permission": "customer_read",
"purpose": "Sync customer data to Brevo contacts"
},
{
"permission": "customer_write",
"purpose": "Update customer metadata with Brevo sync status"
},
{
"permission": "event_read",
"purpose": "Track payment and subscription events for Brevo automation"
}
]
}

Step 2: Prepare Your App

Ensure your app meets all review requirements before submitting:

  1. Test thoroughly in both live and sandbox modes
  2. Verify all permissions are necessary and documented
  3. Confirm error handling and loading states are implemented
  4. Check that all UI text is in English

Step 3: Upload Your App

Use the Stripe CLI to upload your app:

Terminal window
# Upload your app to Stripe
stripe apps upload
# Verify the upload
stripe apps versions list

Step 4: Write Your Listing

Navigate to the Stripe Dashboard to complete your app listing. All listing fields are required for marketplace submission.

Step 5: Submit for Review

After completing your listing, submit the app for review through the Stripe Dashboard. The Stripe team will evaluate your app against the quality requirements.

Step 6: Publish

Once approved, you can publish your app to make it available on the marketplace.

Manifest Setup for Public Distribution

The manifest must include distribution_type: "public" and declare all required permissions with clear purpose descriptions:

{
"id": "com.tajo.brevo-integration",
"version": "1.2.0",
"name": "Tajo for Brevo",
"icon": "./assets/icon.png",
"distribution_type": "public",
"stripe_api_access_type": "oauth",
"allowed_redirect_uris": [
"https://tajo.io/stripe/callback"
],
"permissions": [
{
"permission": "customer_read",
"purpose": "Read customer profiles to sync with Brevo contacts"
},
{
"permission": "customer_write",
"purpose": "Write sync metadata to customer records"
},
{
"permission": "charge_read",
"purpose": "Access payment data for Brevo event tracking"
},
{
"permission": "event_read",
"purpose": "Subscribe to Stripe events for real-time Brevo sync"
},
{
"permission": "product_read",
"purpose": "Sync product catalog to Brevo for campaign personalization"
},
{
"permission": "invoice_read",
"purpose": "Track invoice events for Brevo transactional emails"
}
],
"ui_extension": {
"views": [
{
"viewport": "stripe.dashboard.customer.detail",
"component": "CustomerDetailView"
},
{
"viewport": "stripe.dashboard.home.overview",
"component": "OverviewView"
}
]
},
"post_install_action": {
"type": "onboarding"
}
}

Upload the configured app with:

Terminal window
stripe apps upload

Listing Requirements

Your app listing must include all of the following fields:

FieldRequirementsDetails
NameMax 35 charactersThe display name shown on the marketplace
Icon300x300 pixels, PNG or SVGSquare icon, no rounded corners (Stripe adds them)
Built byCompany or developer nameDisplayed below the app name
CategorySelect from Stripe’s categoriesChoose the most relevant category for your app
SubtitleMax 80 charactersBrief tagline shown in search results
AboutMax 1,000 charactersDetailed description of what your app does
Key FeaturesUp to 5, with imagesHighlight main features with screenshots or diagrams
PricingFree, paid, or freemiumClearly state pricing model and any costs
SupportContact URL or emailWhere users can get help with your app
Privacy PolicyURL to privacy policyRequired legal document for data handling

Name Guidelines

  • Must be unique on the marketplace
  • Should clearly identify your app’s purpose
  • Avoid generic terms that could confuse users
  • Example: “Tajo for Brevo” (15 characters)

Icon Guidelines

  • Dimensions: exactly 300x300 pixels
  • Format: PNG or SVG
  • Do not add rounded corners — Stripe applies them automatically
  • Use a clear, recognizable logo or symbol
  • Ensure legibility at small sizes

About Section

Write a compelling description that covers:

  • What problem your app solves
  • Key integration capabilities
  • Who the app is designed for
  • Any prerequisites or requirements

Example:

Tajo for Brevo connects your Stripe payment data with Brevo’s marketing automation platform. Automatically sync customers, track payment events, and trigger personalized email, SMS, and WhatsApp campaigns based on real-time purchase behavior. Built for ecommerce businesses that want to maximize customer lifetime value through data-driven retention marketing.

Key Features

Each key feature entry includes:

  • Title: Short feature name
  • Description: One to two sentences explaining the feature
  • Image: Screenshot or diagram (recommended 1600x900 pixels)

Recommended features for the Tajo Brevo integration:

  1. Real-time Customer Sync — Automatically sync Stripe customer profiles to Brevo contacts with full purchase history
  2. Event-Driven Automation — Trigger Brevo workflows from Stripe events like successful payments, subscription changes, and refunds
  3. Product Catalog Sync — Keep your Brevo product catalog in sync with Stripe for personalized campaign content
  4. Multi-Channel Campaigns — Use synced data to power targeted email, SMS, and WhatsApp campaigns
  5. Dashboard Insights — View Brevo engagement metrics directly in the Stripe Dashboard customer view

Pricing Information

Clearly communicate your pricing model:

  • Free: No cost to install or use
  • Paid: State the price and billing frequency
  • Freemium: Describe what’s included free and what requires payment
  • Usage-based: Explain the pricing tiers or per-unit costs

Testing Your App

Before submission, thoroughly test your app:

Test in Sandbox Mode

Terminal window
# Start your app in test mode
stripe apps start --mode test
# Verify sandbox compatibility
stripe apps validate

Test Credentials Format

When providing test credentials for the review team, use this format:

Test Account Credentials
========================
Platform: Tajo
URL: https://app.tajo.io/test
Password: [secure test password]
Brevo Test API Key: xkeysib-test-xxxxxxxxxxxx
Required Setup Steps:
1. Log in to the Tajo test account
2. Navigate to Settings > Integrations > Brevo
3. The Brevo API key is pre-configured
4. Install the Stripe App from the test link provided
Expected Behavior:
- Customer sync should begin within 60 seconds of installation
- Navigate to any Stripe customer to see Brevo contact data
- Create a test payment to verify event sync to Brevo

Review Checklist

Before submitting, verify:

  • App works in both live and test modes
  • All permissions have clear purpose descriptions
  • Error states are handled gracefully
  • Loading states are shown for async operations
  • No hardcoded test data in the production build
  • Privacy policy URL is accessible and accurate
  • Support contact information is valid
  • All listing images meet dimension requirements
  • App description accurately reflects functionality

After Submission

The Stripe review team typically responds within 5-10 business days. They may:

  • Approve your app for publication
  • Request changes with specific feedback
  • Reject the app if it doesn’t meet requirements

If changes are requested, address all feedback and resubmit. Each resubmission goes through the full review cycle.

Updating a Published App

To update an already-published app:

  1. Increment the version in stripe-app.json
  2. Upload the new version: stripe apps upload
  3. Submit the update for review
  4. Once approved, the update is automatically deployed to all users

Tip

Minor bug fixes and non-functional changes may receive expedited review. Major feature additions or permission changes require full review.

AI Assistant

Hi! Ask me anything about the docs.

Start Free with Brevo