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

# Stripe

> Proxy Stripe API requests through agntdata using your own Stripe secret key.

## Overview

The Stripe connection proxies requests to the Stripe REST API at `https://api.stripe.com/v1`. Store your Stripe secret key once in the agntdata dashboard and call Stripe from your agents, workflows, or services with a single agntdata API key — without exposing the Stripe secret key in client apps.

* **Base URL**: `https://api.agntdata.dev/v1/connections/stripe/*`
* **Stripe auth**: agntdata injects `Authorization: Bearer <your_stripe_secret_key>`
* **Write payloads**: Stripe expects `application/x-www-form-urlencoded` bodies — set that Content-Type on writes.
* **API version**: requests default to whatever version is pinned on your Stripe secret key. Override per request with the `Stripe-Version` header (current GA is `2026-03-25.dahlia`).

## Setup

<Steps>
  <Step title="Generate a Stripe secret key">
    In the Stripe Dashboard go to **Developers → API keys** and copy a secret key (`sk_live_...` for production, `sk_test_...` for test mode). Restricted keys work too — scope them to the resources your agents need.
  </Step>

  <Step title="Paste it into agntdata">
    In the agntdata dashboard open **Integrations**, pick **Stripe**, and paste the secret key.
  </Step>

  <Step title="Call Stripe">
    Make requests to `https://api.agntdata.dev/v1/connections/stripe/*` with your agntdata API key. agntdata injects your Stripe secret key on every proxied request.
  </Step>
</Steps>

## Examples

### Create a customer

```bash theme={null}
curl -X POST "https://api.agntdata.dev/v1/connections/stripe/customers" \
  -H "Authorization: Bearer $AGNTDATA_API_KEY" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "email=jenny.rosen@example.com" \
  --data-urlencode "name=Jenny Rosen"
```

### List recent payment intents

```bash theme={null}
curl -X GET "https://api.agntdata.dev/v1/connections/stripe/payment_intents?limit=5" \
  -H "Authorization: Bearer $AGNTDATA_API_KEY"
```

### Create a checkout session

```bash theme={null}
curl -X POST "https://api.agntdata.dev/v1/connections/stripe/checkout/sessions" \
  -H "Authorization: Bearer $AGNTDATA_API_KEY" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "mode=subscription" \
  --data-urlencode "success_url=https://example.com/success" \
  --data-urlencode "cancel_url=https://example.com/cancel" \
  --data-urlencode "line_items[0][price]=price_1Example" \
  --data-urlencode "line_items[0][quantity]=1"
```

## Supported operations

The integration covers the core Stripe resources:

* **Customers** — list, create, retrieve, update, delete
* **Charges** — list, retrieve
* **Payment Intents** — list, create, retrieve, update, cancel
* **Setup Intents** — create
* **Subscriptions** — list, create, retrieve, update, cancel
* **Invoices** — list, retrieve
* **Products** — list, create
* **Prices** — list, create
* **Checkout Sessions** — list, create, retrieve
* **Refunds** — list, create
* **Payouts** — list

Need an endpoint that's not in the list? The proxy still forwards arbitrary Stripe paths — you just won't get client-side validation for unlisted operations.

## Receiving Stripe webhooks

This connection covers **outbound** calls from agntdata to Stripe. To receive **inbound** Stripe events in an agent:

1. In the agntdata dashboard, mint a new **Webhook Endpoint**.
2. Copy the resulting `https://api.agntdata.dev/webhooks/ingest/<id>` URL.
3. In the Stripe Dashboard go to **Developers → Webhooks** and point a new endpoint at that URL.
