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

# Stripe

> What the Stripe integration can and can't do, and how to connect it in one click with OAuth.

# Stripe

**Category: Payments.** Connect Stripe and your widget can answer billing questions and start purchases for visitors, right inside the chat.

<Note>Integrations are available on the **Pro** and **Business** plans.</Note>

## What This Bot Can Do

The bot does exactly these actions, nothing more. "Needs sign-in" means the visitor must be identified first; otherwise the bot gives a safe, neutral answer.

| Action                      | What it does                                                                            | Needs sign-in |
| --------------------------- | --------------------------------------------------------------------------------------- | :-----------: |
| **Check a subscription**    | Show the visitor their current plan and next billing date.                              |      Yes      |
| **Check invoice history**   | List the visitor's recent invoices with amounts, dates, and payment status.             |      Yes      |
| **Check payment methods**   | Show saved payment methods (card brand and last 4 digits only).                         |      Yes      |
| **Open the billing portal** | Give the visitor a secure portal link to cancel, upgrade, or update payment themselves. |      Yes      |
| **Start a purchase**        | Generate a checkout link so the visitor can buy a plan or product.                      |       No      |

## What It Can't Do

Stripe is scoped to the actions above. It does **not**:

* Cancel or change a subscription directly (it hands the visitor a secure portal link instead)
* Issue refunds or charge a card
* Create or edit products and prices
* Show full card numbers (only the brand and last 4 digits)

## How to Connect

Connecting Stripe takes one click. BestChatBot uses **Stripe's official OAuth flow** — you authorize the **BestChatBot** Stripe App from your own Stripe account. There's no API key to create, copy, or paste.

<Note>Connecting integrations requires an **Editor**, **Admin**, or **Owner** role. See [Members & Roles](/workspace/members-roles).</Note>

<Steps>
  <Step title="Open the Stripe integration" icon="plug">
    In your workspace dashboard, open the **Integrations** tab, find **Stripe** under **Payments**, and click **Connect**.
  </Step>

  <Step title="Authorize BestChatBot in Stripe" icon="lock">
    A secure Stripe popup opens. Sign in to your Stripe account, review what the **BestChatBot** app can access, and approve it. Your credentials stay with Stripe — they're never typed into the chat or shared with BestChatBot.

    <Frame>
      <img src="https://mintcdn.com/bestchatbot/97kdRjnWT0Lew0EI/integrations/stripe-integration/oauth-consent.png?fit=max&auto=format&n=97kdRjnWT0Lew0EI&q=85&s=7926d12cfd8b47fa00fc6e19fe4c779a" alt="Stripe OAuth consent screen showing the BestChatBot app requesting access to the account" width="1167" height="956" data-path="integrations/stripe-integration/oauth-consent.png" />
    </Frame>
  </Step>

  <Step title="You're connected" icon="circle-check">
    The popup closes and Stripe shows as **Connected** right away. Nothing to copy or paste, and no key to rotate later.
  </Step>
</Steps>

### What BestChatBot Can Access

When you approve the app, Stripe shows you exactly what it grants — a **narrow, mostly read-only** scope, never your secret keys:

* **Read** your customers, subscriptions, invoices, products, prices, payment methods, and charges — so the bot can answer each visitor's own billing questions.
* **Create** a Billing Portal link and a Checkout link on the visitor's behalf.

That's the full extent of the access. The bot can't change your account settings, issue refunds, or edit products. You can revoke it anytime — click **Disconnect** in BestChatBot, or remove the app from inside your Stripe Dashboard.

### After Connecting

Once connected, Stripe's actions become available to your widget right away. From the integration panel you can toggle each **bot capability** (check subscription, invoice history, payment methods, manage subscription, create checkout) and set optional **Checkout redirect URLs**:

* **Success URL** — where the visitor lands after a completed payment.
* **Cancel URL** — where the visitor lands if they cancel.

If you leave them empty, the visitor returns to your widget's base domain.

<Frame>
  <img src="https://mintcdn.com/bestchatbot/2-SeFKQ-UujZE_r-/integrations/stripe-integration/connected-panel.png?fit=max&auto=format&n=2-SeFKQ-UujZE_r-&q=85&s=034731ee8f32e0b8000d918e0de44e25" alt="Connected Stripe panel showing bot capability toggles and checkout redirect URL fields" width="1124" height="1160" data-path="integrations/stripe-integration/connected-panel.png" />
</Frame>

## Showing Products in Checkout

When the bot offers **Start a purchase**, it only shows the products you've explicitly opted in — your full Stripe catalog is never exposed. To make a product available, add the metadata key `bcb_widget_visible` with the value `true` to the **product** (or to a specific **price**) in Stripe.

<Frame>
  <img src="https://mintcdn.com/bestchatbot/WwR07ioD1SK3nvPy/integrations/stripe-integration/stripe-metadata-agentic-show-item-true.png?fit=max&auto=format&n=WwR07ioD1SK3nvPy&q=85&s=21a98a780be61b6de7ae5bf8854aca43" alt="Stripe product metadata showing bcb_widget_visible set to true" width="609" height="609" data-path="integrations/stripe-integration/stripe-metadata-agentic-show-item-true.png" />
</Frame>

<Tip>Set the flag on the product to expose all of its prices, or on a single price for finer control. Products without this flag never appear in the chat.</Tip>

## See It in Action

Once connected, identified visitors can check invoices, view saved payment methods, manage their subscription, and start a purchase — all from the widget.

<Frame>
  <img src="https://mintcdn.com/bestchatbot/WwR07ioD1SK3nvPy/integrations/stripe-integration/stripe-working-on-prod.png?fit=max&auto=format&n=WwR07ioD1SK3nvPy&q=85&s=17940e4b5d6c453a28a51ce4c309a1c8" alt="Live widget showing invoices, saved payment methods, and subscription quick actions" width="587" height="1045" data-path="integrations/stripe-integration/stripe-working-on-prod.png" />
</Frame>

## One per Category

Stripe is the only option in the **Payments** category, so it never conflicts with another integration.

## Availability

| Plan     | Stripe |
| -------- | ------ |
| Free     | —      |
| Starter  | —      |
| Pro      | ✅      |
| Business | ✅      |

## Next Steps

<CardGroup cols={2}>
  <Card title="All Integrations" icon="plug" href="/integrations/available-integrations">
    See the full catalog and how categories work.
  </Card>

  <Card title="Agentic Actions" icon="wand-magic-sparkles" href="/integrations/agentic-actions">
    Learn how the bot turns a request into a real action.
  </Card>
</CardGroup>
