> ## Documentation Index
> Fetch the complete documentation index at: https://chatbotx.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Plans + Top-up packs

> Learn how to create Plans, set Bot message limits, and sell Top-up packs through Stripe in ChatbotX White Label.

**Plans** let you create service packages to sell or assign to White Label customers. Each Plan defines the available resources, Bot message allowance, and pricing.

**Top-up packs** let customers purchase additional bot-message credits when their Plan allowance runs low. You manage Plans and Top-up packs from the **SaaS** section in the left sidebar.

## Public pricing page

ChatbotX creates a public pricing page from Plans that have both **Public** and **Active** enabled. The URL usually follows this format: `https://[your-domain]/portal/pricing`.

* **Copy URL**: Copy the pricing page URL to share with customers or add to your website.
* **View pricing page**: Open the page and review what customers see.

The **Upgrade plan** button in a customer account also opens this page.

<Frame>
  <img src="https://mintcdn.com/chatbotx/rsYoo6wv-DJaaisp/images/chatbotx_whitelabel_customer_upgrade_plan.png?fit=max&auto=format&n=rsYoo6wv-DJaaisp&q=85&s=29d096c834754ff5f4d23ed77e7db48e" alt="Open the pricing page from the customer portal" width="2355" height="1591" data-path="images/chatbotx_whitelabel_customer_upgrade_plan.png" />
</Frame>

Customers can purchase only Plans that are public and active. An administrator can still assign a hidden Plan manually.

## Manage the Plan list

Each row represents a Plan and its current status. Select the three-dot menu `...` to open the available actions.

<Frame>
  <img src="https://mintcdn.com/chatbotx/crw5Baf6CNUyJr7T/images/chatbotx_whitelabel_plans_row_actions.png?fit=max&auto=format&n=crw5Baf6CNUyJr7T&q=85&s=7a5d13877f12342cb0e744f9a58f867d" alt="Chatbotx Whitelabel Plans Row Actions" width="2993" height="1468" data-path="images/chatbotx_whitelabel_plans_row_actions.png" />
</Frame>

* **Clone**: Create a new Plan from the current configuration.
* **Set as featured**: Highlight the Plan. The public pricing page displays it with the **Most Popular** label.
* **Set as default**: Use the Plan as the default package for new accounts.
* **Delete**: Remove the Plan from the list of available options.

<Warning>
  Before deleting a Plan, identify the customers using it and prepare a migration option if needed.
</Warning>

### Top-up packs

**Top-up packs** are additional bot-message credit packages sold on top of a Plan allowance. Each pack uses a one-time Stripe Price.

On the **Plans** page, select **Top-up packs** in the upper-right corner. You can also select **SaaS > Top-up packs** from the left sidebar.

<Frame>
  <img src="https://mintcdn.com/chatbotx/LG3hUJLqMvn6DFdX/images/chatbotx_whitelabel_open_top_up_packs_from_plans.png?fit=max&auto=format&n=LG3hUJLqMvn6DFdX&q=85&s=cdd4e5994eefc9e721e1ddc4894a652f" alt="Open Top-up packs from the Plans page" width="2988" height="1460" data-path="images/chatbotx_whitelabel_open_top_up_packs_from_plans.png" />
</Frame>

The **Top-up packs** page displays each pack's name, credits, price, status, and available actions.

* **Credits**: The number of bot-message credits granted per purchase.
* **Price**: The amount from the linked Stripe Price.
* **Status**: The pack's current status.
* **Archive**: Archive a pack when you no longer want to sell it.

#### Create a new Top-up pack

Connect your Stripe account and create a one-time Stripe Price before creating a pack.

<Steps>
  <Step title="Open the new pack form">
    On the **Top-up packs** page, select **+ New pack**.
  </Step>

  <Step title="Enter the pack details">
    Enter the name, description, credit quantity, Stripe price ID, and sort order.

    <Frame>
      <img src="https://mintcdn.com/chatbotx/LG3hUJLqMvn6DFdX/images/chatbotx_whitelabel_create_top_up_pack.png?fit=max&auto=format&n=LG3hUJLqMvn6DFdX&q=85&s=19438dc76d51a36f9e157d528cb4bf9e" alt="Configure a new Bot-message Top-up pack" width="2984" height="1750" data-path="images/chatbotx_whitelabel_create_top_up_pack.png" />
    </Frame>
  </Step>

  <Step title="Create the pack">
    Review the details, then select **Create pack**.
  </Step>
</Steps>

| Field                      | How to configure it                                                                                      |
| -------------------------- | -------------------------------------------------------------------------------------------------------- |
| **Name**                   | Enter the customer-facing pack name, such as `100,000 bot-message`.                                      |
| **Description (optional)** | Briefly describe the credit amount or intended use.                                                      |
| **Credit quantity**        | Enter the number of bot-message credits granted after each purchase.                                     |
| **Stripe price ID**        | Enter the `price_` ID of an active, one-time Stripe Price. The Price must belong to your Stripe account. |
| **Sort order**             | Enter the number used to order the pack when displayed.                                                  |

<Warning>
  Do not use a recurring Stripe Price for a Top-up pack. **Stripe price ID** accepts only an active, one-time Price.
</Warning>

#### Let customers purchase a Top-up pack

Customers open **Billing** and find **Bot-message top-ups**. They select a pack and then select **Buy** to pay through Stripe.

<Frame>
  <img src="https://mintcdn.com/chatbotx/LG3hUJLqMvn6DFdX/images/chatbotx_customer_purchase_top_up_pack.png?fit=max&auto=format&n=LG3hUJLqMvn6DFdX&q=85&s=550ffe5c9fecacfd5516c18a9cbb3001" alt="Purchase a Bot-message Top-up pack from Billing" width="2427" height="1633" data-path="images/chatbotx_customer_purchase_top_up_pack.png" />
</Frame>

After the transaction completes, ChatbotX grants the number of bot-message credits configured in **Credit quantity**.

<Note>
  A Top-up pack adds only bot-message credits. It does not change the Plan's Workspaces, Channels, Team members, or Monthly active contacts limits.
</Note>

## Create a new Plan

Create the Plan first. Then open the new Plan to add one or more prices.

<Steps>
  <Step title="Open the new Plan form">
    Go to **SaaS > Plans** and select **+ New plan**.
  </Step>

  <Step title="Enter the information and limits">
    Enter the name, description, free-trial period, and sort order. Then choose the **Public** and **Active** states for the Plan.

    <Frame>
      <img src="https://mintcdn.com/chatbotx/LG3hUJLqMvn6DFdX/images/chatbotx_whitelabel_create_plan_basic_configuration.png?fit=max&auto=format&n=LG3hUJLqMvn6DFdX&q=85&s=438f121501e0fc6be1b4ed65ca70e497" alt="Configure plan basic information and settings" width="1447" height="1370" data-path="images/chatbotx_whitelabel_create_plan_basic_configuration.png" />
    </Frame>

    Continue by setting the resource limits, usage limits, and features displayed on the pricing page.

    <Frame>
      <img src="https://mintcdn.com/chatbotx/LG3hUJLqMvn6DFdX/images/chatbotx_whitelabel_create_plan_limits_features.png?fit=max&auto=format&n=LG3hUJLqMvn6DFdX&q=85&s=84fa888062465bc2b0ad5ed4703b955a" alt="Configure plan limits and pricing page features" width="1441" height="1850" data-path="images/chatbotx_whitelabel_create_plan_limits_features.png" />
    </Frame>
  </Step>

  <Step title="Create the Plan">
    Review the configuration, then select **Create plan**.
  </Step>
</Steps>

### Basic info

* **Name**: The Plan name displayed to administrators and customers.
* **Description (optional)**: A short description of the intended customer or the Plan's primary value.

For example, a `Starter` Plan can serve a new store with one workspace and a monthly Bot message allowance.

### Configuration

| Option                | How to configure it                                                                                                                            |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| **Free trial (days)** | Enter `0` for no trial. Enter a number of days to grant full Plan access at no cost. This setting applies to every Plan, including free Plans. |
| **Sort order**        | Enter the number used to order the Plan on the public pricing page.                                                                            |
| **Public**            | Enable this option to show the Plan on the pricing page. When disabled, an administrator can still assign the Plan manually.                   |
| **Active**            | Enable this option to let customers purchase the Plan. Inactive Plans cannot receive new purchases, but existing subscribers are unaffected.   |

## Set Plan limits

Plan limits apply across the customer's entire account, including every workspace in that account. Each workspace does not receive a separate copy of the allowance.

<Note>
  Enable **Unlimited** to remove a cap. When **Unlimited** is disabled, a value of `0` blocks access to that resource or usage type.
</Note>

### Resource limits

| Limit            | How it is calculated                                                         |
| ---------------- | ---------------------------------------------------------------------------- |
| **Workspaces**   | The total number of workspaces the customer can create in the account.       |
| **Channels**     | The total number of channels the customer can connect across all workspaces. |
| **Team members** | The total number of members the customer can add to the account.             |

For example, if a Plan includes `3` Channels and the customer connects two channels in workspace A, only one channel remains for all other workspaces.

### Usage limits

| Limit                       | How it is calculated                                                                             |
| --------------------------- | ------------------------------------------------------------------------------------------------ |
| **Monthly active contacts** | The maximum number of active contacts per month across the entire account.                       |
| **Bot messages**            | The number of messages sent by the Bot. Select either **Lifetime** or **Monthly** for each Plan. |

#### Calculate Bot messages

**Bot messages** use one of these allowance periods:

* **Lifetime**: Accumulates Bot messages for as long as the customer uses the Plan and never resets automatically.
* **Monthly**: Resets the number of used Bot messages at the start of each billing period.

After selecting the period, enter the allowed number of Bot messages or enable **Unlimited**. For example, enter `100000` and select **Monthly** to allow up to 100,000 Bot messages in each billing period.

<Warning>
  Do not enter `0` if the customer should continue using the Bot. A value of `0` blocks Bot messages, while **Unlimited** removes the limit.
</Warning>

## Add pricing page features

Under **Pricing page features**, select **+ Add feature** to add descriptions to the Plan card. These entries help customers compare Plans but do not change the actual limits.

For example: `24/7 priority support` or `No ChatbotX branding`.

## Add a price to a Plan

After creating a Plan, open its details page and find **Linked prices**. Select **+ Add price** to create a price.

### Manual / Offline price

Select **Manual / Offline** when you confirm payments yourself or sell a Plan under a custom agreement.

<Frame>
  <img src="https://mintcdn.com/chatbotx/LG3hUJLqMvn6DFdX/images/chatbotx_whitelabel_add_price_manual.png?fit=max&auto=format&n=LG3hUJLqMvn6DFdX&q=85&s=67dc54c1c975fdc8733377782a2a44c3" alt="Add a manual price to a ChatbotX White Label plan" width="782" height="604" data-path="images/chatbotx_whitelabel_add_price_manual.png" />
</Frame>

| Field                           | How to configure it                                                                                     |
| ------------------------------- | ------------------------------------------------------------------------------------------------------- |
| **Provider**                    | Select **Manual / Offline**.                                                                            |
| **Amount**                      | Enter the amount in the selected currency. ChatbotX rounds it to that currency's smallest unit.         |
| **Billing interval (optional)** | Select `Daily`, `Weekly`, `Monthly`, or `Yearly`. Leave the interval unselected for a one-time payment. |
| **Currency (optional)**         | Select a supported currency.                                                                            |

For example, enter `27` with `USD` to charge USD 27. With `VND`, enter `270000` to charge VND 270,000. Do not convert the amount to cents before entering it.

The current interface displays these currencies:

| Code  | Currency        | Code  | Currency          |
| ----- | --------------- | ----- | ----------------- |
| `USD` | US Dollar       | `EUR` | Euro              |
| `GBP` | British Pound   | `VND` | Vietnamese Dong   |
| `JPY` | Japanese Yen    | `AUD` | Australian Dollar |
| `CAD` | Canadian Dollar | `SGD` | Singapore Dollar  |
| `INR` | Indian Rupee    | `CNY` | Chinese Yuan      |
| `THB` | Thai Baht       |       |                   |

Select **Add price** to link the price to the Plan.

### Stripe price

Select **Stripe** to collect payments and manage subscriptions through Stripe. Connect Stripe before adding a price to the Plan.

<Frame>
  <img src="https://mintcdn.com/chatbotx/wMz5_yYMEgfHVOxb/images/chatbotx_whitelabel_add_price_stripe.png?fit=max&auto=format&n=wMz5_yYMEgfHVOxb&q=85&s=66453ac9d7cd686b468950c7f50356ab" alt="Add a Stripe price to a ChatbotX White Label plan" width="1061" height="431" data-path="images/chatbotx_whitelabel_add_price_stripe.png" />
</Frame>

See [Connect Stripe and configure billing](/docs/whitelabel/saas/billing-stripe) to complete the setup.

## Check before publishing

Before sharing the pricing page with customers, confirm that:

* The Plan has both **Public** and **Active** enabled.
* `0` appears only for resources you intend to block.
* **Bot messages** use the correct **Lifetime** or **Monthly** period.
* **Amount**, **Billing interval**, and **Currency** match the published price.
* **Pricing page features** match the configured limits.
