Overview

Pre-built tooling

Pre-built integrations

Not seeing the integration you need? Build your own independently.
Pre-RequisitesStatusComment
Paid dev accountYou must have an activated Stripe account (submit business info). No charges required, but activation is mandatory.
Paid test accountStripe does not require or support a paid test account. Sandbox accounts are available by default in every account.
PartnershipNot required to develop or publish apps, but Stripe may offer partnership options for higher visibility.
App reviewRequired if you want to publish the app publicly on the Stripe App Marketplace. Stripe will review your app before approval.
Security auditNot strictly required, but apps must follow Stripe’s security best practices. 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.

2

Install Stripe CLI

  1. If you haven’t already, install the Stripe CLI.
  2. Log in using your Stripe account:
    stripe login
    
3

Install the Stripe Apps CLI plugin

  1. Run the following command to install the Stripe Apps plugin:
    stripe plugin install apps
    
  2. Verify the plugin version is 1.5.12 or newer:
    stripe apps -v
    
4

Create your Stripe App

  1. Create a new app project using the CLI:
    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
  • sandbox_install_compatible: Set to true Example:
{
  "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",
  "sandbox_install_compatible": true,
  "allowed_redirect_uris": [
    "https://api.nango.dev/oauth/callback"
  ]
}
6

Add required permissions and UI (optional)

  1. Add permissions your app requires to access Stripe resources in the manifest (e.g., read_only, customers:read, etc.).
"permissions": [
    {
        "permission": "customer_read",
        "purpose": "Receive access to the customer’s phone number"
    }
]
  1. 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:
    stripe apps upload
    
Sandbox accounts cannot upload apps. You must activate your account first.
8

Obtain your Client ID and Client Secret

  1. Go to your app’s details page in the Stripe Dashboard.
  2. Open the External test tab.
  3. Click Get started if you haven’t already configured the external test OAuth setup.
  4. After setup, Stripe will generate OAuth installation links in the Test OAuth section. Your Client ID will be included in the Sandbox link as a query parameter (e.g., client_id=…).
  5. To obtain your Client Secret, go to the API Keys page in the Stripe Dashboard and copy your Secret key (starts with sk_test_…).

⚠️ Make sure that your client_id and secret key come from the same Stripe sandbox account and environment. Mixing keys from different environments or accounts will result in authorization errors like “Authorization code provided does not belong to you.” Save these credentials securely as you’ll need them when configuring your integration in Nango.

9

Next

Follow the Quickstart.

Need help getting started? Get help in the community.
Contribute useful links by editing this page

API gotchas

  • The Stripe App Sandbox is a test environment that simulates real installs and OAuth flows without affecting live data. Use it for external development or testing purposes.
Contribute API gotchas by editing this page

Connect to Stripe App Sandbox

Guide to connect to Stripe App Sandbox using Connect UI