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

# Stripe

> Send WhatsApp messages when a Stripe payment succeeds, fails, expires, or is refunded.

## What is this?

The **Stripe** integration turns payment events into WhatsApp messages. When a checkout is completed, a payment fails, an invoice is paid, or a payment is refunded, Stripe tells the platform and an automation sends the template you chose — for example *Payment received, thank you!* or *Your payment failed, tap to retry*.

## What can I do here?

* Send a WhatsApp template for each Stripe payment event
* Get a ready-made automation that routes each event to the right template
* See every request Stripe sent, including duplicates and failures
* Have every delivery checked against Stripe's own signature

## How to use it

**1. Open the Stripe page**

Go to **Integrations**, click **Stripe**, then **Connect**.

**2. Enter your Stripe details**

Paste your **Stripe secret key** (it starts with `sk_live_` — find it in Stripe under **Developers → API keys**).

**3. Choose your messages**

Pick a WhatsApp template for each event you want to message about:

| Event | When it happens |
| - | - |
| **Checkout completed** | A Stripe Checkout payment went through |
| **Checkout expired (not paid)** | A checkout session expired without payment |
| **Checkout payment failed** | A delayed payment method failed |
| **Payment succeeded** | A payment was collected |
| **Payment failed** | A payment didn't go through |
| **Invoice paid** | An invoice was paid |
| **Invoice payment failed** | An invoice payment didn't go through |
| **Payment refunded** | A payment was refunded |

Leave an event empty to send nothing for it.

**4. Set up and activate**

Click **Set up and activate**. The platform registers the webhook with Stripe for you and creates a ready-made automation that sends the right template for each event. You can open that automation in the builder any time.

## Things to know

* **The customer's phone number** comes from the payment details Stripe sends — the checkout's customer details, the invoice's customer phone, the charge's billing details, or the payment's shipping details. Payments without a phone number can't be messaged. Subscription events carry no phone number and aren't offered.
* **Repeats are ignored.** If Stripe sends the same event twice, the customer isn't messaged twice.
* **One webhook, created for you.** The platform adds a single webhook endpoint in your Stripe account. Stripe generates its signing secret and signs every delivery, and the platform checks that signature.

## Troubleshooting / Technical Notes

* **Connecting fails.** Check the details you entered and that they belong to the right Stripe account. The error from Stripe is shown on the page.
* **No messages are sent.** Check the connection shows **Connected**, a template is chosen for the event, and the template is approved.
* **A request shows as failed.** Open the connection's **Activity** tab and select the request to see the error and its raw body. A missing phone number is the most common cause.
* **Webhooks look missing.** On the connection page, click **Verify on Stripe** to check they are still registered. If any are missing, disconnect and reconnect to register them again.
* **You rotated your key or token.** Open the connection's **Settings** tab and update the credentials.

## Related docs

* [Integrations Overview](https://docs.xpressbot.org/workspace/integrations/overview.md)
* [Webhooks](https://docs.xpressbot.org/workspace/integrations/webhooks.md)
* [Templates](https://docs.xpressbot.org/workspace/whatsapp/templates.md)
* [Automation Overview](https://docs.xpressbot.org/workspace/automation/overview.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.