Skip to main content

How to use Stripe with SalesMind AI White Label Solution

Learn how to set up Stripe with your SalesMind AI white label app to manage subscriptions, free trials, pricing display, and customer merges.

Toe Wai Shan avatar
Written by Toe Wai Shan
Updated over 2 months ago

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:

  1. Website

  2. Registration

  3. 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 = seats

    • Value = number of seats provided

Examples:

  • Product: https://dashboard.stripe.com/products/prod_xxxxx

  • Price: 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

  1. Log in to your Stripe Dashboard.

  2. Create a Product.

  3. 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

active

Boolean

Show/hide this price

true

buttonCTA

JSON

Subscription button text

{ "en": "Subscribe Now", "fr": "S'abonner" }

buttonCTAFreeTrial

JSON

Button text with trial duration ({{freeTrial}})

{ "en": "Start {{freeTrial}} Free Trial" }

colored

Boolean

Highlight plan card

true

features.0

JSON

First feature

{ "en": "Access to all courses" }

features.1

JSON

Second feature

{ "en": "Priority support" }

features.2

JSON

Third feature

{ "en": "Cancel anytime" }

featuresTitle

JSON

Section heading

{ "en": "What's included" }

group

JSON

Category tab

{ "en": "Business [Best Deal]" }

groupOrder

Number

Order of groups

1

order

Number

Card order inside group

2

price

JSON

Displayed price

{ "en": "$199 / month" }

subtitle

JSON

Small description

{ "en": "Best for startups" }

title

JSON

Plan title

{ "en": "Business 1 Month" }


Notes

  • type = subscription is 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:

  1. Edit the price metadata.

  2. Set the field value to null.

  3. Save.

  4. 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:

  1. In your app, go to Agents → find the user → copy Owner email address.

  2. In Stripe, search this email → open customer → copy metadata firebaseUID.

  3. 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.

  4. Open customer → edit metadata → add:

    • Key = firebaseUID

    • Value = copied UID (e.g. 6fA2rj7qoTPeQcs2aVDBWsyRTZQ2)

  5. 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

Did this answer your question?