This guide explains how to configure Stripe with your white label app to handle subscriptions, free trials, and customer management. Follow the steps in order for a smooth setup.
What you can configure
Enable/disable free trials
Define trial duration (e.g. 7 days)
Require or skip credit card validation during trial
How the funnel works
The onboarding funnel moves customers through:
Website →
Registration →
Payment (Stripe)
✅ Green: starting point
🔵 Blue: ending point
Step 1 - Set up Product & Price in Stripe
To ensure the system knows how many seats to assign per subscription, you must set metadata. You can find them here.
Metadata format: key–value pair
Key =
seatsValue = number of seats provided
Examples:
Product:
https://dashboard.stripe.com/products/prod_xxxxxPrice:
https://dashboard.stripe.com/prices/price_xxxxx
⚠️ Without this metadata, seats will not be provisioned automatically.
Step 2 - Display product/price in the Billing Page
Your app pulls product details directly from Stripe.
Only products with type = subscription will appear.
Create a Product
Log in to your Stripe Dashboard.
Create a Product.
In Product Metadata, add:
type = subscription
Add a Price
Every product must include one price.
Configure the Price Metadata fields below.
🧾 Metadata Fields for Prices
Use these metadata keys in Stripe for proper display:
Field | Type | Description | Example |
| Boolean | Show/hide this price |
|
| JSON | Subscription button text |
|
| JSON | Button text with trial duration ( |
|
| Boolean | Highlight plan card |
|
| JSON | First feature |
|
| JSON | Second feature |
|
| JSON | Third feature |
|
| JSON | Section heading |
|
| JSON | Category tab |
|
| Number | Order of groups |
|
| Number | Card order inside group |
|
| JSON | Displayed price |
|
| JSON | Small description |
|
| JSON | Plan title |
|
Notes
type = subscriptionis required.Firestore syncs Stripe metadata automatically → updates appear in real time.
All JSON must be valid for translations to work.
⚠️ Caution — Removing Metadata
To remove a metadata field safely:
Edit the price metadata.
Set the field value to null.
Save.
Edit again → delete field → Save.
If you skip step 2, the front-end may still display outdated data.
🤖 Use AI to generate Metadata JSON
You can use AI to instantly generate multilingual JSON.
Prompt Example:
Translate and format the following pricing details into JSON format for English (en), French (fr), and Dutch (nl). Ensure each result is returned separately for easy copying.
Here are the values I want to translate:
- buttonCTA: [INSERT VALUE]
- buttonCTAFreeTrial (use {{freeTrial}} as a placeholder for the trial duration): [INSERT VALUE]
- features.0: [INSERT VALUE]
- features.1: [INSERT VALUE]
- features.2: [INSERT VALUE]
- featuresTitle: [INSERT VALUE]
- group: [INSERT VALUE]
- price: [INSERT VALUE]
- subtitle: [INSERT VALUE]
- title: [INSERT VALUE]
**Return the JSON output in the following format for easy copying:**
buttonCTA
{ "en": "Translated Value", "fr": "Translated Value", "nl": "Translated Value" }
buttonCTAFreeTrial
{ "en": "Translated Value", "fr": "Translated Value", "nl": "Translated Value" }
How to merge subscriptions between Stripe customers
Sometimes customers pay with a different email than the one they registered with in your app. This breaks the automatic link between Stripe and your app user.
Here’s how to merge them:
In your app, go to Agents → find the user → copy Owner email address.
In Stripe, search this email → open customer → copy metadata
firebaseUID.In Stripe, search for the other email used for payment.
For example, in this case, we can see that there’s no metadata set. If not, ensure your customer do not need this account anymore.
Open customer → edit metadata → add:
Key =
firebaseUIDValue = copied UID (e.g.
6fA2rj7qoTPeQcs2aVDBWsyRTZQ2)
Save.
✅ The subscription seats are now linked to the correct main account.
✅ Summary
By correctly setting metadata in Stripe, your SalesMind AI whitelabel app will:
Display subscription plans in-app
Support multilingual pricing & trials
Sync changes in real time
Allow you to merge duplicate Stripe customers








