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

# Stripe

> Take Stripe payments with payment links and store checkout, and send WhatsApp messages when a 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?

* Take card payments in your storefront and send **Pay now** payment links from a contact, with the account saved once and reused everywhere
* See every payment on the contact's [Payments](https://docs.skyfree.io/workspace/contacts/payments.md) tab
* 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**). Also add your **Stripe publishable key** (`pk_live_…`) — it is needed for card payments in your storefront.

**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.
* **One account, used everywhere.** Once saved, the account is offered in the storefront's **Online payment** list, in **Request payment** on a contact and in the [Send Payment](https://docs.skyfree.io/workspace/automation/steps/send-messages.md#send-payment) step.
* **Payment confirmations.** Turn on **Payment confirmations** on the connection page so Stripe tells the platform when a link is paid, even if the customer closes the page. This uses the account's single webhook; messages are optional and can be added later.
* **Payments you didn't ask for** (for example a link made in the Stripe dashboard) wait on the connection page under **Payments waiting for a contact** — attach each to a contact or set it aside.
* **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.skyfree.io/workspace/integrations/overview.md)
* [Payments](https://docs.skyfree.io/workspace/contacts/payments.md)
* [Webhooks](https://docs.skyfree.io/workspace/integrations/webhooks.md)
* [Templates](https://docs.skyfree.io/workspace/whatsapp/templates.md)
* [Automation Overview](https://docs.skyfree.io/workspace/automation/overview.md)


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