> For the complete documentation index, see [llms.txt](https://docs.eesel.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.eesel.ai/integrations/e-commerce/stripe.md).

# Stripe

Invite your AI teammate into Stripe and it answers the billing questions your support team fields every day. It finds the customer, reads their invoices, payments and subscriptions, and makes the changes you allow: a refund, a cancelled subscription, an invoice sent again.

You stay in control the whole way. Every write action asks you first until you change that. Reads run on their own.

If Stripe is missing from your **Integrations** gallery, message us in the in-app chat or email <hi@eesel.app> and we will turn it on.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-cb812b63573260d707b4d3e7465b7a1831f9a8a7%2Fstripe-refunded.png?alt=media" alt="A payment in the Stripe dashboard marked Refunded, with the refund in the activity timeline"><figcaption><p>A refund your agent proposed, a person approved, and Stripe carried out.</p></figcaption></figure>

## Quick start

{% stepper %}
{% step %}

### Ask your agent to connect Stripe

Open the chat in your dashboard and ask it to connect Stripe. It points you at your **Integrations** page and lists what it will be able to do once connected.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-d019b50abfda9fd28b675c0e6b6219d8d15cda25%2Fstripe-connect-chat.png?alt=media" alt="The dashboard chat where the user asks to connect Stripe and the agent replies with a link to the Integrations page and a list of what it can do once connected"><figcaption><p>The agent's answer in the dashboard chat.</p></figcaption></figure>

Open **Integrations** in the left sidebar and search for Stripe. If Stripe is not in the list, it has not been turned on for your workspace yet. Message us and we will turn it on.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-880b26988fcdc871607d9e36ac4396097dfcf915%2Fstripe-gallery.png?alt=media" alt="The Integrations gallery filtered to Stripe, showing the Stripe tile"><figcaption><p>Stripe in the Integrations gallery.</p></figcaption></figure>

Open the tile. **Connect** is in the top right.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-c9279fe7aa6fcd0b3afce02cd9a70a8a39021871%2Fstripe-integration-page.png?alt=media" alt="The Stripe integration page before connecting, with the About and How it works sections and a Connect button"><figcaption><p>The Stripe page before it is connected.</p></figcaption></figure>
{% endstep %}

{% step %}

### Connect through Pipedream

**Connect** opens a window from Pipedream, the service that holds the connection. **Continue** takes you to a form that asks for a key from Stripe. A person creates that key in the Stripe dashboard and pastes it in. Every screen, from the Stripe dashboard to the pasted key, is on [Set up Stripe](/integrations/e-commerce/stripe/stripe-setup.md).

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-8726cede3ec8555d5b8e011a9f33a1c798725906%2Fstripe-pipedream-notice.png?alt=media" alt="The Pipedream notice saying eesel AI uses Pipedream to connect your account, with a Continue button"><figcaption><p>The Pipedream notice.</p></figcaption></figure>

**Check it worked.** The integration page header reads **Connected** and the left sidebar lists Stripe. In the **Actions** list, the actions that only look things up are on **Auto**, and the ones that change Stripe are on **Needs approval**.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-47bd8b5da021acda59685ed971ae118cfe11bdb7%2Fstripe-connected.png?alt=media" alt="The connected Stripe integration page with Start a chat prompts and the Actions list: Read (20) on Auto, Write (29) on Needs approval"><figcaption><p>The connected page. Reads run on their own, writes ask first.</p></figcaption></figure>
{% endstep %}

{% step %}

### Try it on a real customer

Ask your agent in the chat about a customer's charge. It finds them in Stripe by email, reads their invoices and subscriptions, and reports what it found in plain amounts.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-1f82a76b099102919aebc2e57fdd31ff42236868%2Fstripe-lookup-1.png?alt=media" alt="The dashboard chat where the agent finds Maya Lindqvist in Stripe and shows a table with her one invoice: Gear Care membership, 9 dollars, Paid"><figcaption><p>The customer found and her invoice listed.</p></figcaption></figure>

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-1f9a78c28d8efe01b1a1b802b88377b022f7cfb9%2Fstripe-lookup-2.png?alt=media" alt="The same answer continued: subscription status Active, 9 dollars a month, the current period, and a payment method on file"><figcaption><p>The subscription status, further down the same answer.</p></figcaption></figure>

Then ask it to refund a payment. In the example below a different customer, Grace Nakamura, has returned a $179 pack. Give your agent the amount and the order number. Stripe keeps the order number in the payment's description, so that is how it finds the right payment. The action asks you first, so the refund appears as an approval card in the chat and on your **Activity** page.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-6a9fa3cbccd6f5049885f2aedc1d3bbcd5ad2bf4%2Fstripe-approval.png?alt=media" alt="The approval card for Stripe create refund with Approve, Always Allow and Deny, followed by the agent naming the 179 dollar payment it found and saying the refund is queued for approval"><figcaption><p>The refund held for approval, with the payment it will refund named underneath.</p></figcaption></figure>

Approve it and the refund is made in Stripe. The card records who approved it.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-7aa0d1062db7daba6ed5d15e599a1dbcd63d703e%2Fstripe-refund-done.png?alt=media" alt="The approval card now reading Approved for this run, followed by the agent confirming the 179 dollar refund to Grace Nakamura is done with the refund id"><figcaption><p>Approved, and the refund confirmed with Stripe's reference for it.</p></figcaption></figure>

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-cb812b63573260d707b4d3e7465b7a1831f9a8a7%2Fstripe-refunded.png?alt=media" alt="The payment in the Stripe dashboard marked Refunded, with the refund in the activity timeline"><figcaption><p>The same payment in Stripe, now marked Refunded.</p></figcaption></figure>
{% endstep %}

{% step %}

### Put it to work

Stripe has no event that wakes your agent on its own, so it does its Stripe work inside the conversations it already handles. Tell it in its [instructions](/instructions-and-memory/instructions-and-memory.md) how to handle billing questions, and it uses these actions when a customer asks in your helpdesk, in Slack or on your site. For routine checks, a [schedule](/automations-and-schedules/automations-and-schedules.md) runs the same work on a clock.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
**From Claude Code, Cursor or a terminal.** `eesel login`, then `eesel integrations connect stripe` prints a link to the eesel Integrations page. A person opens it and finishes the key steps on [Set up Stripe](/integrations/e-commerce/stripe/stripe-setup.md). If the command does not list stripe, the workspace has not been turned on for it yet, and a person messages <hi@eesel.app>. Afterwards `eesel status` lists stripe as connected, and `eesel integrations stripe actions` lists every action with its key and approval setting, for example `stripe-create-refund` as needs approval. A held action returns an approval link that a person opens. Full command reference: [The eesel CLI](/apis-and-developer-resources/cli.md). From Claude Code or another assistant that connects through MCP: [Claude Code and MCP clients](/apis-and-developer-resources/claude-code-and-mcp-clients.md).
{% endhint %}

## Sources, triggers and actions

### Sources

Stripe adds no knowledge source. Your agent reads customers, invoices and payments live, at the moment it is asked, and answers from everything else you have connected.

### Triggers

Stripe has no triggers. Nothing in Stripe wakes your agent. It acts on Stripe when a customer asks in a connected channel, or on a [schedule](/automations-and-schedules/automations-and-schedules.md).

### Actions

Actions are what it can do. Each runs on its own, asks you first, or stays off. Read actions run on their own from the start. Write actions ask you first until you change that. The most used ones:

|               | Action                                        | What it does                                                                        |
| ------------- | --------------------------------------------- | ----------------------------------------------------------------------------------- |
| **Look up**   | Search customers                              | Finds a customer by email address                                                   |
|               | Retrieve customer                             | Reads one customer's details                                                        |
|               | Retrieve invoice                              | Reads one invoice, its status and balance                                           |
|               | Retrieve payment intent                       | Reads one payment. A payment intent is Stripe's record of one attempt to take money |
|               | List refunds / List payouts                   | Lists refunds made, and payouts to your bank                                        |
|               | Search subscriptions                          | Finds a customer's subscriptions                                                    |
| **Money**     | Create refund                                 | Refunds a payment, in full or in part                                               |
|               | Cancel subscription                           | Stops future billing. The history stays                                             |
|               | Create subscription                           | Starts a subscription                                                               |
|               | Create payment intent / Cancel payment intent | Starts or cancels a payment                                                         |
| **Invoices**  | Create invoice                                | Drafts an invoice                                                                   |
|               | Finalize invoice                              | Turns a draft into a real invoice                                                   |
|               | Send invoice                                  | Emails the invoice to the customer                                                  |
|               | Void invoice / Write off invoice              | Cancels an invoice, or marks it uncollectible                                       |
| **Customers** | Create customer / Update customer             | Creates or edits a customer record                                                  |
|               | Delete customer                               | Deletes a customer record and its history                                           |

Stripe offers more actions than fit here. `eesel integrations stripe actions` from a terminal lists every one available on your workspace.

Three things your agent has been taught about Stripe:

* **Read first, then write.** Everything hangs off the customer, so it finds them by email before it touches anything, and it checks a subscription before cancelling it.
* **Amounts are in cents.** Stripe stores 1000 for $10.00, so your agent always states the dollar amount back before it proposes a refund. Refunds cannot be undone.
* **Cancel is not delete.** A customer who asks to "cancel my account" gets a cancelled subscription. Deleting the customer record destroys their history, and your agent does not reach for it.

## Troubleshooting

<details>

<summary>Stripe is not in my Integrations gallery?</summary>

Message us in the in-app chat or email <hi@eesel.app> and we will turn Stripe on for your workspace.

</details>

<details>

<summary>The action says it is waiting?</summary>

Write actions ask you first on a fresh connection. The request is in the chat and on your **Activity** page with Approve, Always Allow and Deny. Choose **Always Allow** to let that action run on its own from then on.

</details>

<details>

<summary>Your agent says it cannot find the payment?</summary>

It reads a customer's invoices first, and a one-off card payment is not an invoice. Tell it the amount and the order number and it finds the payment directly.

</details>

<details>

<summary>An invoice was "sent" but nobody received it?</summary>

Check whether the key you connected is a test-mode key. Stripe's test mode reports a send as successful without sending mail.

</details>

## FAQ

<details>

<summary>Can my agent see a charge?</summary>

Not as a separate record. Your agent reads customers, invoices, payments, subscriptions, refunds and payouts. It finds what it needs to refund from the payment or invoice it has already read.

</details>

<details>

<summary>Should I connect a live key or a test key?</summary>

Start with a test-mode key while you set instructions and approvals. To move to live, a person opens **Integrations > Stripe** in the dashboard, removes the connection from the menu in the top right, connects again and enters a key made for the real account, limited to what your agent needs. The exact permission list is on [Set up Stripe](/integrations/e-commerce/stripe/stripe-setup.md).

</details>

<details>

<summary>How is this billed?</summary>

Pay-as-you-go. A conversation your agent handles is one task, however many Stripe actions it takes in it. Chats you run yourself from the eesel dashboard are free. See [Pricing](/pricing/overview.md).

</details>

## Related pages

* [E-commerce Sales Rep](/use-cases/e-commerce-sales-rep.md) for the job your teammate takes on in a store
* [Set up Stripe](/integrations/e-commerce/stripe/stripe-setup.md) for creating the key in Stripe, screen by screen
* [QuickBooks](/integrations/e-commerce/quickbooks.md) for invoices from your accounting records
* [Actions and Approvals](/instructions-and-memory/actions-and-approvals.md) for setting each action to run on its own, ask you first, or stay off
* [Set up from Claude Code or the terminal](/getting-started/set-up-from-a-coding-agent.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.eesel.ai/integrations/e-commerce/stripe.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
