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

# Stripe App

## Overview

> [card] [Pre-built tooling](#pre-built-tooling)

> [card] [Pre-built integrations](#pre-built-integrations)

> [card] [Access requirements](#access-requirements)

> [card] [Setup guide](#setup-guide)

> [card] [Useful links](#useful-links)

> [card] [API gotchas](#api-gotchas)

## Pre-built tooling

> [accordion] ✅ Authorization
>
> | Tools | Status |
> | - | - |
> | Pre-built authorization (OAuth) | ✅ |
> | Credentials auto-refresh | ✅ |
> | Pre-built authorization UI | ✅ |
> | Custom authorization UI | ✅ |
> | Expired credentials detection | ✅ |

> [accordion] ✅ Read & write data
>
> | Tools | Status |
> | - | - |
> | Pre-built integrations | ✅ |
> | API unification | ✅ |
> | 2-way sync | ✅ |
> | Webhooks from Nango on data modifications | ✅ |
> | Real-time webhooks from 3rd-party API | 🚫 (time to contribute: \<48h) |
> | Proxy requests | ✅ |

> [accordion] ✅ Observability & data quality
>
> | Tools | Status |
> | - | - |
> | HTTP request logging | ✅ |
> | End-to-end type safety | ✅ |
> | Data runtime validation | ✅ |
> | OpenTelemetry export | ✅ |
> | Slack alerts on errors | ✅ |
> | Integration status API | ✅ |

> [accordion] ✅ Customization
>
> | Tools | Status |
> | - | - |
> | Create or customize use-cases | ✅ |
> | Pre-configured pagination | 🚫 (time to contribute: \<48h) |
> | Pre-configured rate-limit handling | 🚫 (time to contribute: \<48h) |
> | Per-customer configurations | ✅ |

### Others

| Function name | Description | Type |
| - | - | - |
| `cancel-payment-intent` | Cancel a Stripe PaymentIntent. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `capture-payment-intent` | Capture an uncaptured Stripe PaymentIntent. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `create-checkout-session` | Create a checkout session in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `create-credit-note` | Create a credit note in Stripe to adjust or refund a finalized invoice. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `create-customer` | Create a customer in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `create-invoice-item` | Create an invoice item in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `create-invoice` | Create an invoice in Stripe | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `create-payment-intent` | Create a payment intent in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `create-payment-method` | Create a payment method in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `create-price` | Create a price in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `create-product` | Create a product in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `create-refund` | Create a refund in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `create-setup-intent` | Create a setup intent in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `create-subscription` | Create a subscription in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `delete-customer` | Delete or archive a customer in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `delete-invoice-item` | Delete an invoice item from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `delete-invoice` | Delete or archive a invoice in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `delete-payment-intent` | Cancel a Stripe PaymentIntent. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `delete-price` | Archive a price in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `delete-product` | Delete or archive a product in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `delete-setup-intent` | Delete or archive a setup intent in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `delete-subscription` | Delete or archive a subscription in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `finalize-invoice` | Finalize a draft Stripe invoice. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `get-checkout-session` | Retrieve a single checkout session from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `get-credit-note` | Retrieve a single credit note from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `get-customer` | Retrieve a single customer from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `get-invoice-item` | Retrieve a single invoice item from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `get-invoice` | Retrieve a single invoice from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `get-payment-intent` | Retrieve a single payment intent from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `get-payment-method` | Retrieve a single payment method from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `get-price` | Retrieve a single price from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `get-product` | Retrieve a single product from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `get-refund` | Retrieve a single refund from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `get-setup-intent` | Retrieve a single setup intent from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `get-subscription` | Retrieve a single subscription from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `list-checkout-sessions` | List checkout sessions from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `list-credit-notes` | List credit notes from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `list-customers` | List customers from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `list-invoice-items` | List invoice items from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `list-invoices` | List invoices from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `list-payment-intents` | List payment intents from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `list-payment-methods` | List payment methods from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `list-prices` | List prices from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `list-products` | List products from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `list-refunds` | List refunds from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `list-setup-intents` | List setup intents from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `list-subscriptions` | List subscriptions from Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `pay-invoice` | Pay a Stripe invoice. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `update-customer` | Update a customer in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `update-invoice-item` | Update an invoice item in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `update-invoice` | Update an invoice in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `update-payment-intent` | Update a payment intent in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `update-price` | Update a price in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `update-product` | Update a product in Stripe | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `update-refund` | Update a refund in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `update-setup-intent` | Update a setup intent in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `update-subscription` | Update a subscription in Stripe. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `void-credit-note` | Void a Stripe credit note. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `void-invoice` | Void a Stripe invoice. | [Tool](https://nango.dev/docs/guides/functions/tools.md) |
| `checkout-sessions` | Sync checkout sessions from Stripe. | [Sync](https://nango.dev/docs/guides/functions/syncs/sync-functions.md) |
| `credit-notes` | Sync credit notes from Stripe. | [Sync](https://nango.dev/docs/guides/functions/syncs/sync-functions.md) |
| `customers` | Sync customers from Stripe. Incrementally fetches newly created customers using a creation-time checkpoint. Updates to existing customers are not captured; use a customer-events sync for update tracking. | [Sync](https://nango.dev/docs/guides/functions/syncs/sync-functions.md) |
| `invoice-items` | Sync invoice items from Stripe. | [Sync](https://nango.dev/docs/guides/functions/syncs/sync-functions.md) |
| `invoices` | Sync invoices from Stripe. | [Sync](https://nango.dev/docs/guides/functions/syncs/sync-functions.md) |
| `payment-intents` | Sync payment intents from Stripe. | [Sync](https://nango.dev/docs/guides/functions/syncs/sync-functions.md) |
| `payment-methods` | Sync payment methods from Stripe | [Sync](https://nango.dev/docs/guides/functions/syncs/sync-functions.md) |
| `prices` | Sync prices from Stripe. | [Sync](https://nango.dev/docs/guides/functions/syncs/sync-functions.md) |
| `products` | Sync products from Stripe. | [Sync](https://nango.dev/docs/guides/functions/syncs/sync-functions.md) |
| `refunds` | Sync refunds from Stripe. | [Sync](https://nango.dev/docs/guides/functions/syncs/sync-functions.md) |
| `setup-intents` | Sync setup intents from Stripe. | [Sync](https://nango.dev/docs/guides/functions/syncs/sync-functions.md) |
| `subscriptions` | Sync subscriptions from Stripe. | [Sync](https://nango.dev/docs/guides/functions/syncs/sync-functions.md) |

| Pre-Requisites | Status | Comment |
| - | - | - |
| **Paid dev account** | ✅ | You must have an activated Stripe account (submit business info). No charges required, but activation is mandatory. |
| **Paid test account** | ✅ | Stripe does not require or support a paid **test** account. Sandbox accounts are available by default in every account. |
| **Partnership** | ✅ | Not required to develop or publish apps, but Stripe may offer [partnership](https://docs.stripe.com/partners#:~:text=To%20become%20a%20Stripe%20partner,the%20Stripe%20Partner%20Ecosystem%20Agreement.) options for higher visibility. |
| **App review** | ❌ | Required if you want to publish the app publicly on the Stripe App Marketplace. Stripe will review your app before approval. |
| **Security audit** | ✅ | Not strictly required, but apps must follow Stripe’s [security best practices](https://stripe.com/docs/security). A formal audit may be needed depending on your app’s access level and data usage. |

## Setup guide

**1. Create a Stripe account**

If you don't already have one, sign up for a [Stripe account](https://dashboard.stripe.com/register).

**2. Install Stripe CLI**

1. If you haven't already, install the [Stripe CLI](https://docs.stripe.com/stripe-cli#install).
2. Log in using your Stripe account:
   ```shell theme={null}
   stripe login
   ```

**3. Install the Stripe Apps CLI plugin**

1. Run the following command to install the Stripe Apps plugin:
   ```shell theme={null}
   stripe plugin install apps
   ```
2. Verify the plugin version is 1.5.12 or newer:
   ```shell theme={null}
   stripe apps -v
   ```

**4. Create your Stripe App**

1. Create a new app project using the CLI:
   ```shell theme={null}
   stripe apps create my-stripe-app
   ```
2. This creates a local project folder with a manifest and app code.

**5. Edit the app manifest**

Open the **stripe-app.json** file and update these fields:

* **stripe\_api\_access\_type**: Set to **oauth**
* **distribution\_type**: Set to **public**
* **allowed\_redirect\_uris**: Add your redirect URI as **[https://api.nango.dev/oauth/callback](https://api.nango.dev/oauth/callback)**. Example:

```json theme={null}
{
  "id": "com.example.my-app",
  "version": "0.0.1",
  "name": "My Stripe App",
  "icon": "./icon.png",
  "permissions": [],
  "stripe_api_access_type": "oauth",
  "distribution_type": "public",
  "allowed_redirect_uris": [
    "https://api.nango.dev/oauth/callback"
  ]
}
```

**6. Add required permissions and UI (optional)**

1. Add [permissions](https://docs.stripe.com/stripe-apps/reference/permissions) your app requires to access Stripe resources in the manifest (e.g., **read\_only**, **customers:read**, etc.).

```json theme={null}
"permissions": [
    {
        "permission": "customer_read",
        "purpose": "Receive access to the customer’s phone number"
    }
]
```

2. Optionally add a **settings view** or other UI extensions if your app has a user-facing configuration.

**7. Upload your app to Stripe (requires live account)**

1. Ensure you're logged into a fully activated (non-sandbox) Stripe account.
2. Upload your app to Stripe:
   ```shell theme={null}
   stripe apps upload
   ```

**8. Publish your app**

* Submit your app for review when you're ready to publish it to the Stripe App Marketplace.
* When submitting an OAuth app, you must provide a Marketplace install URL. This URL should point to a page that initiates onboarding and installation, and clearly uses the OAuth install links found in the Settings tab of your app.
  \[!NOTE] The public OAuth install links from the Settings tab are different from those in the External test tab and must be used for review and production installs. Even though these links are inactive until the app is published, the Stripe App Review team can still use them to install and test your app.

**9. Obtain your Client ID and Client Secret**

1. Go to your app’s **Settings** tab in the Stripe Dashboard.
2. Locate the **Live mode link** under the **Install link** section. The **Client ID** is included as a query parameter in either the **Live mode** or **Test mode** link (e.g., client\_id=...). Use the link for whichever mode you'd like to test or deploy.
3. To obtain your **Client Secret**, go to the **API Keys** page in the Stripe Dashboard and copy your **Secret key** (starts with `sk_live_...`).
   Save these credentials securely as you'll need them when configuring your integration in Nango.

**10. Next**

Follow the [*Quickstart*](https://nango.dev/docs/getting-started/quickstart.md).

> [!TIP]
>
> Need help getting started? Get help in the [community](https://nango.dev/slack).

## Useful links

| Topic | Links |
| - | - |
| General | [Stripe Dashboard](https://dashboard.stripe.com/) |
| | [Stripe Documentation](https://docs.stripe.com/) |
| Developer | [Stripe Apps Overview](https://docs.stripe.com/stripe-apps) |
| | [Stripe Apps CLI Guide](https://docs.stripe.com/stripe-cli) |
| | [OAuth for Stripe Apps](https://docs.stripe.com/stripe-apps/api-authentication/oauth) |
| | [Oauth App scopes](https://docs.stripe.com/stripe-apps/reference/permissions) |
| | [App Manifest Reference](https://docs.stripe.com/stripe-apps/reference/app-manifest) |
| | [Testing Your Stripe App](https://docs.stripe.com/stripe-apps/api-authentication/oauth#test-app) |
| | [App Marketplace Publishing Guide](https://docs.stripe.com/stripe-apps/publish-app#submit-app-for-review) |
| | [OAuth Token Exchange](https://docs.stripe.com/stripe-apps/api-authentication/oauth#obtain-access-token) |

> [!NOTE]
>
> Contribute useful links by [editing this page](https://github.com/nangohq/nango/tree/master/docs/integrations/all/stripe-app.mdx)

## Common Scopes

| Permission | Description |
| - | - |
| `payment_intent_read` / `payment_intent_write` | Manage payment flows |
| `customer_read` / `customer_write` | Manage customer data |
| `subscription_read` / `subscription_write` | Manage recurring billing |
| `invoice_read` / `invoice_write` | Manage invoices |
| `charge_read` / `charge_write` | Process payments |
| `account_read` | View connected accounts |
| `webhook_read` | Manage webhooks |
| `file_read` / `file_write` | Access uploaded files |

## API gotchas

* The Stripe App is your live production integration, available for installation by real Stripe users. Use this when you're ready to launch your app in a production environment.

> [!NOTE]
>
> Contribute API gotchas by [editing this page](https://github.com/nangohq/nango/tree/master/docs/integrations/all/stripe-app.mdx)


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