p.enthalabs

Stripe CLI Reference

Install the Stripe CLI

For more installation options for Windows, macOS, Linux, and Docker, check the Stripe CLI readme on GitHub.

Install on macOS or Linux

Install on Windows (PowerShell)

Install with npm

Upgrade the Stripe CLI

Keep your Stripe CLI up to date to access new features, improvements, and security updates.

When you install using a script, automatic updates are enabled by default. The CLI checks for newer versions as you use it and automatically installs updates within the same major version. To disable automatic updates, set the environment variable `STRIPE_NO_AUTO_UPDATE=1` or add `auto_update = false` to `~/.config/stripe/config.toml`.

If you used an alternate installation method, check the Stripe CLI readme for platform-specific upgrade options.

Was this section helpful?Yes No

Upgrade with npm

Uninstall the Stripe CLI

Uninstall the Stripe CLI with npm.

Before uninstalling, run stripe logout --all to remove your login credentials. To remove configuration files, delete `~/.config/stripe` on macOS and Linux, or `%USERPROFILE%\.config\stripe` on Windows. If you set an `XDG_CONFIG_HOME` environment variable, the directory is `$XDG_CONFIG_HOME/stripe`.

On Windows, delete the directory with `rmdir /s /q "%USERPROFILE%\.config\stripe"` in Command Prompt, or `Remove-Item -Recurse -Force "$env:USERPROFILE\.config\stripe"` in PowerShell.

Was this section helpful?Yes No

Log out and clear all credentials

Uninstall with npm

Delete configuration files (macOS and Linux)

#### stripe login[flags]

Connect the CLI to your Stripe account with a browser-based login flow. The CLI displays a pairing code and opens the Stripe Dashboard, where you confirm the code and configure the CLI's access to accounts, sandboxes, and live mode.

For Stripe CLI versions newer than v1.50.0, an Administrator or IAM Admin must enable CLI access before you can authenticate. Earlier versions are unaffected. To enable or disable CLI access, select the account and environment you want to configure. Then go to Settings → Team and security → MCP and CLI access in the Dashboard. Running `stripe login` signs in only the individual user. Revoking the session signs out that user without affecting anyone else.

After approval, the CLI stores your credentials in your operating system's secure credential store (when available) and refreshes the session automatically.

Use stripe login list to inspect authorized accounts and sandboxes and stripe switch to select another account or sandbox. To change permissions or add accounts or sandboxes, use stripe reauth. To revoke the session and clear its local credentials, use stripe logout.

If you need to authenticate with an API key instead, use `stripe login --interactive` or one of the other API-key options.

If you're already authenticated, `stripe login` keeps your current session. Use `stripe login --new-session` to revoke the current authentication and log in to a new session.

##### Flags

- ### [](https://docs.stripe.com/cli/pay#login-interactive)-i, --interactive

Use interactive configuration mode if you cannot open a browser and would like to manually provide an API key.

- ### [](https://docs.stripe.com/cli/pay#login-non-interactive)--non-interactive

Print the browser URL, verification code, and next command as JSON, then exit. This behavior activates automatically when standard input isn't a terminal. Run the returned `next_step` command immediately after you approve access in the browser.

- ### [](https://docs.stripe.com/cli/pay#login-complete)--complete=<poll-url>

Poll the URL provided by the `next_step` output from `stripe login --non-interactive` until you approve access, then save the credentials.

- ### [](https://docs.stripe.com/cli/pay#login-new-session)--new-session

Revoke the current authentication and log in to a new session.

Was this section helpful?Yes No

Basic login

Start login in a non-interactive environment

Log in using interactive mode

#### stripe login list

List the accounts and sandboxes authorized for the current session. Each entry shows whether sandbox or live mode is available and marks the active account or sandbox.

Use stripe switch to select a different authorized account or sandbox. To authorize more accounts or sandboxes, or to change permissions, use stripe reauth.

Was this section helpful?Yes No

List authorized accounts and sandboxes

#### stripe switch[account_id][--live]

Select the account or sandbox that the CLI uses for subsequent commands. Run the command without an account ID to choose from an interactive list of authorized accounts and sandboxes.

When you provide an account ID, the CLI selects a sandbox by default. Use `--live` to select live mode. You can only select accounts or sandboxes authorized during stripe login or stripe reauth.

##### Arguments

- ### [](https://docs.stripe.com/cli/pay#switch-account_id)[account_ id]

The ID of an authorized account or sandbox. Omit it to choose an account or sandbox interactively.

##### Flags

- ### [](https://docs.stripe.com/cli/pay#switch-live)--live

Select live mode for the specified account. Without this flag, the command selects a sandbox.

Was this section helpful?Yes No

Choose an account or sandbox interactively

Switch to an account in a sandbox

Switch to an account in live mode

#### stripe reauth

Reauthorize the current session to change its permissions or authorize additional accounts or sandboxes. The command opens the Stripe Dashboard, where you can update consent for the session.

After reauthorization, use stripe login list to inspect the authorized accounts and sandboxes and stripe switch to select one. If the current session expired or was revoked, use stripe login instead.

Was this section helpful?Yes No

Change authorization

#### stripe logout[-a, --all]

Revoke the current session and clear its locally stored credentials and context information. After logging out, run stripe login to authorize the CLI again.

If you use legacy project profiles authenticated with API keys, use `--all` to clear credentials for every project profile.

##### Flags

- ### [](https://docs.stripe.com/cli/pay#logout-all)-a, --all

Clear credentials for all project profiles you're currently logged in to.

Was this section helpful?Yes No

Revoke the session and clear credentials

Clear credentials for all project profiles

#### stripe sandbox <command> [flags]

If your CLI isn't logged into Stripe, this command provisions a new sandbox with working test API keys, without requiring an account. This enables you, a coding agent, or an automated workflow to start building a Stripe integration immediately.

Your temporary sandbox credentials are saved to your CLI profile so that other commands work without needing to log in. You can convert a sandbox into a full Stripe account within seven days with the `sandbox claim` command.

If you're already logged in, `sandbox create` opens the sandbox management page in your Stripe Dashboard.

Sandbox environments expire after 7 days. Claim your sandbox before it expires by running `stripe sandbox claim` to keep your account and data.

##### Subcommands

- ### [](https://docs.stripe.com/cli/pay#sandbox-create)create

Provision a new sandbox environment with test API keys. Uses a proof-of-work challenge to verify the request, then saves the keys to your current CLI profile so subsequent `stripe` commands work immediately.

- ### [](https://docs.stripe.com/cli/pay#sandbox-claim)claim

Open the claim URL for your active sandbox in a browser. After claiming, run `stripe login` to get permanent keys.

##### Flags for sandbox create

- ### [](https://docs.stripe.com/cli/pay#sandbox-email)--email <address>

The email address is used to prefill the account registration form when you claim the sandbox. Required unless `--from-git` is used. Mutually exclusive with `--from-git`.

- ### [](https://docs.stripe.com/cli/pay#sandbox-from-git)--from-git

Infer your email and full name from `git config user.email` and `git config user.name`. Mutually exclusive with `--email`.

- ### [](https://docs.stripe.com/cli/pay#sandbox-full-name)--full-name <name>

Your full name (optional). Automatically inferred if `--from-git` is used.

- ### [](https://docs.stripe.com/cli/pay#sandbox-non-interactive)--non-interactive

Print output directly without waiting for input. Useful for scripting and agent-assisted workflows.

##### Flags for sandbox claim

- ### [](https://docs.stripe.com/cli/pay#sandbox-non-interactive)--non-interactive

Print the claim URL directly without waiting for input.

Was this section helpful?Yes No

Create a sandbox with an email

Create a sandbox using git config

Claim your sandbox

#### stripe agent setup[flags]

Set up tooling to help AI coding agents use Stripe. This command detects common agent harnesses and installs the relevant Stripe plugin, skills, and MCP server.

Supports Claude Code, Codex, and Cursor.

##### Flags

- ### [](https://docs.stripe.com/cli/pay#agent_setup-client)--client <client>string

Limit setup to a specific client. Supports `claude-code`, `codex`, and `cursor`.

- ### [](https://docs.stripe.com/cli/pay#agent_setup-force)--force

Reinstall agent tooling even if it's already installed.

- ### [](https://docs.stripe.com/cli/pay#agent_setup-json)--json

Print machine-readable status and planned actions without making changes.

- ### [](https://docs.stripe.com/cli/pay#agent_setup-skills)--skills

Install Stripe skills directly, without an interactive prompt.

- ### [](https://docs.stripe.com/cli/pay#agent_setup-skills-scope)--skills-scope <scope>string

Select where to install Stripe skills. Use `local` for the current directory or `global` for your home directory. Default is `local`.

- ### [](https://docs.stripe.com/cli/pay#agent_setup-status)--status

See the currently installed agent tooling.

- ### [](https://docs.stripe.com/cli/pay#agent_setup-yes)-y, --yes

Skip interactive prompts and set up all detected clients.

Was this section helpful?Yes No

Set up detected AI coding clients interactively

Using Stripe API keys

The recommended way to connect the Stripe CLI to your account is the browser-based login flow provided by stripe login. The CLI stores your credentials in your operating system's secure credential store (when available) and refreshes the session automatically.

To authenticate with an API key instead, use one of these options:

1. stripe login --interactive 2. stripe config 3. The `--api-key` flag 4. Environment variables

Use `stripe login --interactive` to enter an API key manually.

Using `stripe config` allows you to set persistent keys manually:

- `stripe config --set test_mode_api_key sk_test_123`

`--api-key` is a global flag that overrides your local configuration if you need to run one-off commands with a specific API key.

You can set two environment variables, which take precedence over all other values:

- `STRIPE_API_KEY`: the API key to use for the CLI.

- `STRIPE_DEVICE_NAME`: the device name for the CLI, visible in the Dashboard.

Was this section helpful?Yes No

Running commands with a specified API key

#### stripe config[flags]

Use the `config` command to manually set configuration options for the CLI. The `config` command supports:

- Setting options

- Unsetting options

- Listing all configured options

- Opening the configuration file with your default editor

All commands support the `--project-name` global flag. You can define a unique configuration for individual projects.

##### Flags

- ### [](https://docs.stripe.com/cli/pay#config-edit)-e, --edit

Opens the configuration file in your default editor.

- ### [](https://docs.stripe.com/cli/pay#config-list)--list

Lists all configured options (including defaults).

- ### [](https://docs.stripe.com/cli/pay#config-set)--set <option><value>string

Set a value for the specified configuration option.

- ### [](https://docs.stripe.com/cli/pay#config-unset)--unset <option>string

Unset the configuration option and remove the key-value pair from the configuration file.

Was this section helpful?Yes No

Set a configuration option

Unset a configuration option

List the currently configured options

#### stripe completion[--shell <platform>]

The Stripe CLI supports autocompletion for macOS and Linux to make it easier to use the right commands with the CLI with the Bash and ZSH shells.

Set up autocompletion by running `stripe completion`. Depending on your platform and shell, relevant instructions will be displayed.

Details about setting up autocompletion are available on this page.

Shell completion scripts are not currently supported on Windows.

##### Flags

- ### [](https://docs.stripe.com/cli/pay#completion-shell)--shell <platform>

The shell for which autocompletion commands will be generated. By default the CLI will attempt to autodetect the platform.

Was this section helpful?Yes No

Basic usage

Specifying a shell

#### stripe {command} <arguments>[flags]

The Stripe CLI supports a number of flags for every command.

##### Flags

- ### [](https://docs.stripe.com/cli/pay#flags-api_key)--api-key <stripe_ api_ key>string

Use the Stripe account associated with this Stripe API secret key.

- ### [](https://docs.stripe.com/cli/pay#flags-color)--color <setting>

Enable or disable color output.

- ### [](https://docs.stripe.com/cli/pay#flags-config)--config <config_ filepath>string

Use this file path for the CLI's configuration file (default: `$HOME/.config/stripe/config.toml`).

- ### [](https://docs.stripe.com/cli/pay#flags-device_name)--device-name <name>string

Run this command on behalf of another device.

- ### [](https://docs.stripe.com/cli/pay#flags-help)-h, --help

Provides the help documentation for a given command, including the supported flags and arguments.

- ### [](https://docs.stripe.com/cli/pay#flags-log_level)--log-level <level>

Set the level of detail for log messages (default: `info`)

- ### [](https://docs.stripe.com/cli/pay#flags-project_name)-p, --project-name <name>string

Define a project name for the CLI's current configuration. Using the `--project-name` flag enables multiple configurations across Stripe accounts (stored within one configuration file), and any command can run in the context of a project (default: `"default"`).

- ### [](https://docs.stripe.com/cli/pay#flags-version)-v, --version

Prints the version of the Stripe CLI. This flag is meant to run without any other flags or arguments set.

Was this section helpful?Yes No

#### stripe docs<path>[flags]

Browse docs.stripe.com from the terminal. Read any documentation page by passing its path, or use the `api` and `search` subcommands to look up API reference pages and search documentation by keyword.

##### Arguments

- ### [](https://docs.stripe.com/cli/pay#docs-path)<path>string

Path of the docs.stripe.com page to read (for example, `/payments` or `/api/customers`).

##### Flags

- ### [](https://docs.stripe.com/cli/pay#docs-non-interactive)--non-interactive

Write output directly to stdout without the interactive browser.

Was this section helpful?Yes No

Read a documentation page

Read an API reference page

#### stripe docs api<method|resource|event>

Look up Stripe API reference documentation by resource name, HTTP method and path, or event type.

##### Arguments

- ### [](https://docs.stripe.com/cli/pay#docs_api-identifier)<method|resource|event>

Identifier used to look up an API reference page.

Was this section helpful?Yes No

Look up a resource

Look up by HTTP method and path

Look up an event type

#### stripe docs search<query>

Search docs.stripe.com from the terminal by keyword or phrase.

##### Arguments

- ### [](https://docs.stripe.com/cli/pay#docs_search-query)<query>string

Keyword or phrase to search for on docs.stripe.com.

Was this section helpful?Yes No

Search by keyword

Search by phrase

Webhook commands

Listen for webhook events and forward them to your application. Trigger and resend webhook events.

#### stripe logs tail[flags]

Establishes a direct connection to Stripe so you can tail Stripe API request logs from your sandbox in real time.

Multiple filters can be used together and a log entry must match all filters to be shown.

When specifying a filter, multiple values can be provided as a comma-separated list. A log entry only needs to match one of the values.

`logs tail` only supports displaying request logs from a sandbox.

##### Flags

- ### [](https://docs.stripe.com/cli/pay#logs_tail-filter-account)--filter-account <values>Connect Only

Filter request logs by the source and destination account.

- ### [](https://docs.stripe.com/cli/pay#logs_tail-filter-http-method)--filter-http-method <values>

Filter request logs by HTTP method.

- ### [](https://docs.stripe.com/cli/pay#logs_tail-filter-ip-address)--filter-ip-address <values>

Filter request logs by IP address.

- ### [](https://docs.stripe.com/cli/pay#logs_tail-filter-request-path)--filter-request-path <values>

Filter request logs that directly match any Stripe path (e.g. `/v1/charges`).

- ### [](https://docs.stripe.com/cli/pay#logs_tail-filter-request-status)--filter-request-status <values>

Filter request logs by the response status.

- ### [](https://docs.stripe.com/cli/pay#logs_tail-filter-source)--filter-source <values>

Filter request logs by the source of each request.

- ### [](https://docs.stripe.com/cli/pay#logs_tail-filter-status-code)--filter-status-code <values>

Filter request logs by HTTP status code.

- ### [](https://docs.stripe.com/cli/pay#logs_tail-filter-status-code-type)--filter-status-code-type <values>

Filter request logs by the type of HTTP status code.

- ### [](https://docs.stripe.com/cli/pay#logs_tail-format)--format <value>

Specifies the output format for request logs.

Was this section helpful?Yes No

Basic usage

Use multiple log filters

Use multiple values for log filters

#### stripe listen[flags]

Receive webhook events from Stripe on your local machine via a direct connection to Stripe's API. The `listen` command can receive events based on your account's default API version or the latest version, filter by type of event, or forward events to an application running on a given port.

By default, `listen` accepts all snapshot webhook events and displays them in your terminal. In order to listen to thin events, you must pass them in via `--thin-events`.

You don't need to configure any webhook endpoints in your Dashboard to receive webhooks with the CLI.

The webhook signing secret provided will not change between restarts to the `listen` command.

##### Flags

- ### [](https://docs.stripe.com/cli/pay#listen-events)-e, --events <events types>

A comma-separated list of which snapshot events to listen for. The event types documentation includes a complete list (default: `[*]` for all events).

- ### [](https://docs.stripe.com/cli/pay#listen-forward-to)-f, --forward-to <url>

The URL that snapshot webhook events will be forwarded to. Returns a webhook signing secret which you can add to your application's configuration.

- ### [](https://docs.stripe.com/cli/pay#listen-forward-connect-to)-c, --forward-connect-to <url>

The URL that Connect webhook events will be forwarded to. By default, the same URL will be used for all snapshot webhook events.

- ### [](https://docs.stripe.com/cli/pay#listen-thin-events)--thin-events <events types>

A comma-separated list of which thin events to listen for. The event types documentation includes a complete list. Use `*` for all events. (default: none).

- ### [](https://docs.stripe.com/cli/pay#listen-forward-thin-to)--forward-thin-to <url>

The URL that thin webhook events will be forwarded to. Returns a webhook signing secret which you can add to your application's configuration.

- ### [](https://docs.stripe.com/cli/pay#listen-forward-thin-connect-to)--forward-thin-connect-to <url>

The URL that thin Connect webhook events will be forwarded to. By default, the same URL will be used for all thin webhook events.

- ### [](https://docs.stripe.com/cli/pay#listen-latest)-l, --latest

Receive events used in the latest API version. By default, webhook events received will depend on your account's default API version.

- ### [](https://docs.stripe.com/cli/pay#listen-live)--live

Make a live request. Requests run in a sandbox by default.

- ### [](https://docs.stripe.com/cli/pay#listen-load-from-webhooks-api)-a, --load-from-webhooks-api

Listen for all webhook events based on your existing webhook endpoints configured in the Dashboard and API.

- ### [](https://docs.stripe.com/cli/pay#listen-print-json)-j, --print-json

Print JSON objects to stdout.

- ### [](https://docs.stripe.com/cli/pay#listen-print-secret)--print-secret

Only print the webhook signing secret and exit.

- ### [](https://docs.stripe.com/cli/pay#listen-skip-verify)--skip-verify

Skip certificate verification when forwarding to HTTPS endpoints.

Was this section helpful?Yes No

Basic usage

Forward webhook events to an application

Filter webhook events by type

#### stripe trigger<event>[flags]

Trigger example webhook events to conduct local testing. These test webhook events are based on real API objects and may trigger other webhook events as part of the test (for example, triggering `payment_intent.succeeded` also triggers `payment_intent.created`).

The event types documentation includes a complete list of webhook events and when they would be triggered.

Events are triggered by issuing HTTP requests against the Stripe API. Because of this, triggering events causes side effects: all necessary API objects will be created in the process.

##### Arguments

- ### [](https://docs.stripe.com/cli/pay#trigger-event)<event>

The webhook events we currently support are listed below (or using `stripe help trigger`):

##### Flags

- ### [](https://docs.stripe.com/cli/pay#trigger-stripe_account)--stripe-account

Set a header identifying the connected account.

- ### [](https://docs.stripe.com/cli/pay#trigger-override)--override [resource]:[path1].[path2]=[value]

Override the param at `path1.path2` for the `resource`. Example: `--override plan:product.name=overrideName`. To index into an array, use bracket notation: `--override "checkout_session:line_items[0].quantity=10"`. In some shells, you may need to wrap the value in quotes to prevent shell interpretation of special characters like brackets.

- ### [](https://docs.stripe.com/cli/pay#trigger-add)--add [resource]:[path1].[path2]=[value]

Add the param `path1.path2` to the `resource`. Example: `--add payment_intent:customer=customerId`

- ### [](https://docs.stripe.com/cli/pay#trigger-remove)--remove [resource]:[path1].[path2]

Remove the param at `path1.path2` from the `resource`. Example: `--remove customer:description`

- ### [](https://docs.stripe.com/cli/pay#trigger-skip)--skip [param]

Skip specific steps in the trigger. Example: `--skip cus_jenny_rosen`

- ### [](https://docs.stripe.com/cli/pay#trigger-edit)--edit

Edit the fixture directly in your default IDE before triggering. Cannot be used with `--add`, `--remove`, `--override`, or `--skip`.

Was this section helpful?Yes No

Triggering an event

Listing supported events

#### stripe events resend<event_id>[flags]

Resend an event to the CLI's local webhook endpoint. You must pass `--webhook-endpoint=we_123456` to resend the event to a specific webhook endpoint. You can only resend events that have been created within the last 30 days.

##### Arguments

- ### [](https://docs.stripe.com/cli/pay#events_resend-event_id)<event_ id>

The ID of the event to resend.

##### Flags

- ### [](https://docs.stripe.com/cli/pay#events_resend-account)--account=<account_ id>

To resend an event that's sent to a Connect webhook endpoint on a platform, set this flag to the connected account ID associated with the event. You can't use the `--stripe-account` parameter with Connect.

- ### [](https://docs.stripe.com/cli/pay#events_resend-confirm)-c, --confirm

Skip the warning prompt and automatically confirm the command being entered.

- ### [](https://docs.stripe.com/cli/pay#events_resend-dark-style)--dark-style

Use a darker color scheme better suited for lighter command-line environments.

- ### [](https://docs.stripe.com/cli/pay#events_resend-expand)-e, --expand <value>stringArray

Response attributes to expand inline (target nested values with `nested[param]=value`).

- ### [](https://docs.stripe.com/cli/pay#events_resend-idempotency)-i, --idempotency <key>string

Set an idempotency key for the request, preventing the same request from replaying within 24 hours.

- ### [](https://docs.stripe.com/cli/pay#events_resend-live)--live

Make a live request. Requests run in a sandbox by default.

- ### [](https://docs.stripe.com/cli/pay#events_resend-stripe-account)--stripe-account <account_ id>string

Specify the Stripe account to use for this request.

- ### [](https://docs.stripe.com/cli/pay#events_resend-stripe-version)-v, --stripe-version <version>string

Specify the Stripe API version to use for this request.

- ### [](https://docs.stripe.com/cli/pay#events_resend-webhook-endpoint)--webhook-endpoint=<endpoint_ id>

Resend the event to the given webhook endpoint ID (`we_123456`).

Was this section helpful?Yes No

Basic usage

Response

Resources & HTTP commands

The Stripe CLI supports two ways to create, update, and list objects based on API resources: resource commands and HTTP commands.

**Resource commands** directly manage API resources and provide different arguments, flags, and functionality based on which API resource is used.

**HTTP commands** are convenient shorthand for HTTP requests to the Stripe API. These requests can operate on individual API objects or lists of objects.

Was this section helpful?Yes No

#### stripe {resource command}<operation>[flags]

Resource commands make API requests using the CLI for a given resource. The Stripe CLI has commands to interact with all types of Stripe API resources.

A complete list of available resources and examples are included in the API Reference Guide. Select **Stripe CLI** from the language dropdown to see a complete example for each resource.

Use the `help` command on any resource to see what operations you can perform. For example, run `stripe customers --help` to see help for the Customers resource.

Use `stripe resources` to see a complete list of available resources.

All commands support making live requests with the `--live` flag.

##### Arguments

- ### [](https://docs.stripe.com/cli/pay#resources-operation)<operation>

Operation to perform on API object. Each type of API resource includes a set of operations that you can perform (such as `delete`, `list`, and `retrieve`).

##### Flags

- ### [](https://docs.stripe.com/cli/pay#resources-parameters)--param=value

Parameters to attach to the operation being performed.

- ### [](https://docs.stripe.com/cli/pay#resources-data)-d, --data <value>stringArray

Additional data to send with an API request. Supports setting nested values (e.g `nested[param]=value`).

Was this section helpful?Yes No

Listing supported operations

Create a resource

Update a resource

Retrieve a resource

Response

#### stripe get<arguments>[flags]

Make GET HTTP requests to retrieve an individual API object (or set of objects).

You can pipe the output of this command to other tools. For example, you could use jq to extract information from JSON the API returns, and then use that information to trigger other API requests.

See the API reference for a complete list of supported URL paths.

##### Arguments

- ### [](https://docs.stripe.com/cli/pay#get-id)<id>string

ID of the API object to retrieve.

- ### [](https://docs.stripe.com/cli/pay#get-path)<path>string

URL path of the API object or set of objects to fetch.

##### Flags

- ### [](https://docs.stripe.com/cli/pay#get-confirm)-c, --confirm

Skip the warning prompt and automatically confirm the command being entered.

- ### [](https://docs.stripe.com/cli/pay#get-dark-style)--dark-style

Use a darker color scheme better suited for lighter command-line environments.

- ### [](https://docs.stripe.com/cli/pay#get-data)-d, --data <value>stringArray

Additional data to send with an API request. Supports setting nested values (e.g `nested[param]=value`).

- ### [](https://docs.stripe.com/cli/pay#get-ending-before)-b, --ending-before <object_ id>string

Retrieve the previous page in the list. Pagination uses a cursor that depends on the ID of an object in the list.

- ### [](https://docs.stripe.com/cli/pay#get-expand)-e, --expand <value>stringArray

Response attributes to expand inline (target nested values with `nested[param]=value`).

- ### [](https://docs.stripe.com/cli/pay#get-idempotency)-i, --idempotency <key>string

Set an idempotency key for the request, preventing the same request from replaying within 24 hours.

- ### [](https://docs.stripe.com/cli/pay#get-limit)-l, --limit <number>integer

Number of objects to return, between 1 and 100 (default: 10).

- ### [](https://docs.stripe.com/cli/pay#get-live)--live

Make a live request. Requests run in a sandbox by default.

- ### [](https://docs.stripe.com/cli/pay#get-starting-after)-a, --starting-after <object_ id>string

Retrieve the next page in the list. Pagination uses a cursor that depends on the ID of an object in the list.

- ### [](https://docs.stripe.com/cli/pay#get-stripe-account)--stripe-account <account_ id>string

Specify the Stripe account to use for this request.

- ### [](https://docs.stripe.com/cli/pay#get-stripe-version)-v, --stripe-version <version>string

Specify the Stripe API version to use for this request.

Was this section helpful?Yes No

Get a specific charge by ID

Response

List the most recent 50 charges

Cancel past due subscriptions

#### stripe post<path>[flags]

Make POST HTTP requests to the Stripe API. The `post` command supports API features like idempotency keys and expandable objects.

See the API reference for a complete list of supported URL paths.

##### Arguments

- ### [](https://docs.stripe.com/cli/pay#post-path)<path>string

URL path of the API object to either create or update.

##### Flags

- ### [](https://docs.stripe.com/cli/pay#post-confirm)-c, --confirm

Skip the warning prompt and automatically confirm the command being entered.

- ### [](https://docs.stripe.com/cli/pay#post-dark-style)--dark-style

Use a darker color scheme better suited for lighter command-line environments.

- ### [](https://docs.stripe.com/cli/pay#post-data)-d, --data <value>stringArray

Additional data to send with an API request. Supports setting nested values (e.g `nested[param]=value`).

- ### [](https://docs.stripe.com/cli/pay#post-expand)-e, --expand <value>stringArray

Response attributes to expand inline (target nested values with `nested[param]=value`).

- ### [](https://docs.stripe.com/cli/pay#post-idempotency)-i, --idempotency <key>string

Set an idempotency key for the request, preventing the same request from replaying within 24 hours.

- ### [](https://docs.stripe.com/cli/pay#post-live)--live

Make a live request. Requests run in a sandbox by default.

- ### [](https://docs.stripe.com/cli/pay#post-stripe-account)--stripe-account <account_ id>string

Specify the Stripe account to use for this request.

- ### [](https://docs.stripe.com/cli/pay#post-stripe-version)-v, --stripe-version <version>string

Specify the Stripe API version to use for this request.

Was this section helpful?Yes No

Create a payment intent

Response

#### stripe delete<path>[flags]

Make DELETE HTTP requests to the Stripe API.

See the API reference for a complete list of supported URL paths.

##### Arguments

- ### [](https://docs.stripe.com/cli/pay#delete-path)<path>string

URL path of the API object to delete.

##### Flags

- ### [](https://docs.stripe.com/cli/pay#delete-confirm)-c, --confirm

Skip the warning prompt and automatically confirm the command being entered.

- ### [](https://docs.stripe.com/cli/pay#delete-dark-style)--dark-style

Use a darker color scheme better suited for lighter command-line environments.

- ### [](https://docs.stripe.com/cli/pay#delete-data)-d, --data <value>stringArray

Additional data to send with an API request. Supports setting nested values (e.g `nested[param]=value`).

- ### [](https://docs.stripe.com/cli/pay#delete-expand)-e, --expand <value>stringArray

Response attributes to expand inline (target nested values with `nested[param]=value`).

- ### [](https://docs.stripe.com/cli/pay#delete-idempotency)-i, --idempotency <key>string

Set an idempotency key for the request, preventing the same request from replaying within 24 hours.

- ### [](https://docs.stripe.com/cli/pay#delete-live)--live

Make a live request. Requests run in a sandbox by default.

- ### [](https://docs.stripe.com/cli/pay#delete-stripe-account)--stripe-account <account_ id>string

Specify the Stripe account to use for this request.

- ### [](https://docs.stripe.com/cli/pay#delete-stripe-version)-v, --stripe-version <version>string

Specify the Stripe API version to use for this request.

Was this section helpful?Yes No

Delete a customer

Response

#### stripe fixtures<filepath>[flags]

Use a JSON file to issue a series of API requests. This can be useful when generating sample data, executing specific flows, or testing API behavior.

The structure of the JSON file outlines the set of requests to perform, known as _fixture requests_. When you specify a request's `name`, the CLI stores the response so you can reference the output in subsequent requests. The `path` property specifies the Stripe URL route for the API resource used in the request (e.g. `/v1/customers`).

For example, to reference the response for the request named `json_path`:

- Accessing attributes in responses: `${name:json_path}`

- Accessing environment variables: `${.env:VARIABLE_NAME|<optional default value>}`

Fixture queries must start with `${` and end with `}` and can be included in fixture requests. `name` is the name of the request assigned as part of the fixture (`fixtures[].name`) and `json_path` is a dot-path to the specific variable requested. For example:

- Use `${cus_jenny_rosen:id}` to access a top-level attribute.

- Use `${cus_jenny_rosen:billing_details.address.country}` to access nested data.

- Use `{cus_jenny_rosen:subscriptions.data.#.id}` to access data within a list at index #.

- Use `${.env:PHONE}` to access environment variables (supports `.env` files).

Environment variables can specify default values with the pipe character (`|`). For example:

- `${.env:EMAIL|jane@stripe.com}`

- `${.env:CUSTOMER|cus_1234}`

##### Arguments

- ### [](https://docs.stripe.com/cli/pay#fixtures-filepath)<filepath>string

Use the JSON file at the given path that includes fixture requests to run.

##### Fields

- ### [](https://docs.stripe.com/cli/pay#fixtures-_meta)_ meta object

Metadata used by CLI during execution.

- ### [](https://docs.stripe.com/cli/pay#fixtures-fixtures)fixtures object

List of requests to execute.

##### Flags

- ### [](https://docs.stripe.com/cli/pay#fixtures-override)--override [param]:[path1].[path2]=[value]

Override parameters in the fixture. Example: --override plan:product.name=overrideName

- ### [](https://docs.stripe.com/cli/pay#fixtures-add)--add [param]:[path1].[path2]=[value]

Add parameters in the fixture. Example: --add customer:name=TestUser

- ### [](https://docs.stripe.com/cli/pay#fixtures-remove)--remove [param]:[path1].[path2]

Remove parameters from the fixture. Example: --remove customer:description

- ### [](https://docs.stripe.com/cli/pay#fixtures-skip)--skip [param]

Skip specific steps in the fixture. Example: --skip cus_jenny_rosen

Was this section helpful?Yes No

Sample fixture

Run fixtures

Additional commands

See additional functionality supported by the Stripe CLI.

#### stripe terminal quickstart[--api-key=<api-key>]

Use the `terminal quickstart` command to get up and running fast with Stripe Terminal and the Verifone P400 reader.

##### Flags

- ### [](https://docs.stripe.com/cli/pay#terminal_quickstart-api-key)--api-key=<api-key>

This CLI command only supports using the --api-key flag.

Was this section helpful?Yes No

Terminal quickstart

#### stripe feedback

Was this section helpful?Yes No

Basic usage

#### stripe help

Get help for any command in CLI with `stripe help [path to command]`.

Every command will also accept the `-h` or `--help` flag to see help for that command.

Was this section helpful?Yes No

Basic usage

#### stripe version

Get the version of the Stripe CLI and check if software updates are available.

Was this section helpful?Yes No

Basic usage

#### stripe open<shortcut>[flags]

Shortcut to open the Stripe documentation or Dashboard in your browser.

Any Dashboard pages (that include `/test/` in the URL) can be viewed in live mode with the `--live` flag.

##### Arguments

- ### [](https://docs.stripe.com/cli/pay#open-shortcut)<shortcut>

Shortcut used to quickly open a page on stripe.com.

##### Flags

- ### [](https://docs.stripe.com/cli/pay#open-list)--list

List all supported shortcuts.

- ### [](https://docs.stripe.com/cli/pay#open-live)--live

Open the Dashboard for your live integration (by default, runs in a sandbox).

Was this section helpful?Yes No

Basic usage

Open the Dashboard in live mode

List available shortcuts in live mode

Stripe Projects

Stripe Projects is a CLI plugin that lets you provision and manage third-party services such as databases, hosting, and AI providers directly from your terminal. Credentials are encrypted and stored in a project vault, and environment variables are automatically synced to your local `.env`.

For full documentation, see Stripe Projects.

Install or upgrade the plugin with:

``` stripe plugin install projects ```

``` stripe plugin upgrade projects ```

Stripe Projects is currently in developer preview. Commands and flags might change. Run `stripe projects --help` or `stripe projects <command> --help` to view the latest reference for your installed version.

Was this section helpful?Yes No

#### stripe projects init<project-name>[--from <url>]

Initialize a new Stripe Projects workspace in the current directory. This creates project state files, an `AGENTS.md` context document for AI agents, and adds credential paths to `.gitignore` automatically.

Files created:

- `.projects/state.json`: Shared project state (safe to commit)

- `.projects/state.local.json`: Local machine associations (do not commit)

- `.projects/vault/vault.json`: Encrypted credential cache (do not commit)

- `.env`: Plaintext environment variables for local development (do not commit)

- `AGENTS.md`: LLM context file listing provider docs and env var names

##### Arguments

- ### [](https://docs.stripe.com/cli/pay#projects_init-project-name)<project-name>string

Optional name for the project. Defaults to the current directory name.

##### Flags

- ### [](https://docs.stripe.com/cli/pay#projects_init-from)--from <url>

Initialize from a shared stack URL generated by `stripe projects share`. This provisions the same set of services into a new project.

Was this section helpful?Yes No

Initialize a new project

Initialize from a shared stack URL

#### stripe projects list

List all Stripe projects associated with your Stripe account. Returns each project's name, ID, and creation date. Use the project ID with `stripe projects pull`.

Was this section helpful?Yes No

List all projects

#### stripe projects pull<project-id>

Pull an existing Stripe Project into a new local directory. Creates local state files and writes a `.env` file populated with the project's credentials. Run this from an empty directory.

To find a project ID, run `stripe projects list`.

##### Arguments

- ### [](https://docs.stripe.com/cli/pay#projects_pull-project-id)<project-id>string

The ID of the project to pull. Retrieve project IDs with `stripe projects list`.

Was this section helpful?Yes No

Pull a project into a new directory

#### stripe projects status

Show the current status of your project, which includes linked providers, provisioned resources, plan tiers, and service health.

Was this section helpful?Yes No

Show project status

#### stripe projects catalog<provider>

Browse the full service catalog, or inspect a specific provider's available services and plan tiers. Use this to discover service identifiers and plan names before running `stripe projects add`.

##### Arguments

- ### [](https://docs.stripe.com/cli/pay#projects_catalog-provider)<provider>string

Optional provider name to inspect. Omit to list all available providers.

Was this section helpful?Yes No

List all available providers

Inspect a provider's services and plans

Return the catalog as structured JSON

#### stripe projects search<keyword>

Search the service catalog by keyword. Returns providers and services matching the search term.

##### Arguments

- ### [](https://docs.stripe.com/cli/pay#projects_search-keyword)<keyword>string

The search term to match against provider and service names.

Was this section helpful?Yes No

Search for database services

#### stripe projects add<provider>/<service>[--config <json>]

Provision a service from a provider into your current project. The CLI authenticates with the provider, provisions the resource, saves encrypted credentials to `.projects/vault/vault.json`, and writes environment variables to `.env`.

Run `stripe projects billing add` before provisioning paid plan tiers.

##### Arguments

- ### [](https://docs.stripe.com/cli/pay#projects_add-provider-service)<provider>/<service>string

The provider and service to provision, for example `vercel/project` or `supabase/project`. Run `stripe projects catalog` to browse available providers and services.

##### Flags

- ### [](https://docs.stripe.com/cli/pay#projects_add-config)--config <json>

Pass a provider-specific configuration as a JSON string. Use it to specify plan tiers or provider options in non-interactive mode.

Was this section helpful?Yes No

Add a service (interactive)

Add a service with a specific plan tier (non-interactive)

Add a service and return JSON output

#### stripe projects link<provider>

Associate an existing provider account with your project without provisioning a new resource. Use this when you already have an account with a provider and want to connect it to your project.

The recommended first step in agent-driven workflows is to establish provider connections before running `stripe projects add`.

##### Arguments

- ### [](https://docs.stripe.com/cli/pay#projects_link-provider)<provider>string

The provider to associate, for example `vercel` or `supabase`.

Was this section helpful?Yes No

Associate a provider account

#### stripe projects remove<provider>/<service> | <resource-id>

Remove a provisioned service from your project. This deprovisions the resource in the provider's system and removes it from your project state.

This is a destructive operation. It deprovisions and deletes the resource in the provider's system. Back up any data before proceeding. You can't undo this action.

##### Arguments

- ### [](https://docs.stripe.com/cli/pay#projects_remove-service-reference)<provider>/<service> | <resource-id>string

The service to remove, specified as `<provider>/<service>` or by resource ID.

Was this section helpful?Yes No

Remove by provider and service

Remove by resource ID

#### stripe projects upgrade<provider>/<service> | <resource-id> | <provider>

Upgrade a provisioned service to a higher plan tier. You'll receive a prompt to select a plan and confirm billing using the payment method on file.

Run `stripe projects billing add` first if you haven't set up billing.

##### Arguments

- ### [](https://docs.stripe.com/cli/pay#projects_upgrade-service-reference)<provider>/<service> | <resource-id> | <provider>string

The service to upgrade, specified as `<provider>/<service>`, by resource ID, or by provider name.

Was this section helpful?Yes No

Upgrade a specific service

Upgrade by provider name

#### stripe projects open<provider>

Open the provider's dashboard in your default browser.

##### Arguments

- ### [](https://docs.stripe.com/cli/pay#projects_open-provider)<provider>string

The provider whose dashboard to open.

Was this section helpful?Yes No

Open the Supabase dashboard

Open the Vercel dashboard

#### stripe projects rotate<provider>/<service> | <resource-id>

Rotate credentials for a provisioned service. This generates new API keys or secrets at the provider and updates the project vault.

After rotating, run `stripe projects env --pull` to refresh your local `.env` with the new credentials.

##### Arguments

- ### [](https://docs.stripe.com/cli/pay#projects_rotate-service-reference)<provider>/<service> | <resource-id>string

The service whose credentials to rotate, specified as `<provider>/<service>` or by resource ID.

Was this section helpful?Yes No

Rotate credentials by provider and service

Rotate credentials by resource ID

#### stripe projects env[flags]

Manage project environment variables, named environments, and environment resource membership. Running `stripe projects env` without flags or subcommands lists environment variable names with their values redacted.

Use `--pull` to sync credentials for the active environment to that environment's configured output file. Run `--pull` manually when:

- You're setting up the project on a new machine, or after cloning the repo.

- A teammate provisioned or rotated a resource and you need the updated credentials.

- Your environment output file was deleted or corrupted and you need to restore it.

- You switched environments or changed environment membership and need to refresh local credentials.

`.projects/vault/vault.json` and environment output files, such as `.env`, are added to `.gitignore` by `stripe projects init`. Never commit either file.

##### Subcommands

- ### [](https://docs.stripe.com/cli/pay#projects_env-list)env list

List project environments and mark the active environment.

- ### [](https://docs.stripe.com/cli/pay#projects_env-show)env show

Show the active environment, its output file, and resource membership.

- ### [](https://docs.stripe.com/cli/pay#projects_env-create)env create <name> --output <path>

Create an environment and make it active.

- ### [](https://docs.stripe.com/cli/pay#projects_env-use)env use <name>

Switch the active environment for this checkout.

- ### [](https://docs.stripe.com/cli/pay#projects_env-update-name)env update --name <new-name>

Rename the active environment.

- ### [](https://docs.stripe.com/cli/pay#projects_env-update-output)env update --output <path>

Change the active environment's output file.

- ### [](https://docs.stripe.com/cli/pay#projects_env-delete)env delete <name>

Delete an environment.

- ### [](https://docs.stripe.com/cli/pay#projects_env-add)env add <resource_ name>

Add an existing project resource to the active environment.

- ### [](https://docs.stripe.com/cli/pay#projects_env-remove)env remove <resource_ name>

Remove a project resource from the active environment.

##### Flags

- ### [](https://docs.stripe.com/cli/pay#projects_env-pull)--pull

Sync credentials for the active environment to that environment's configured output file.

- ### [](https://docs.stripe.com/cli/pay#projects_env-output)--output <path>

Set the output file when creating an environment or changing the active environment's output file.

- ### [](https://docs.stripe.com/cli/pay#projects_env-name)--name <new-name>

Rename the active environment.

Was this section helpful?Yes No

List project environments

Create an environment and make it active

Add an existing resource to the active environment

#### stripe projects billing

Manage the payment method and spend limits used for paid provider plans under Stripe Projects. We associate the payment methods with your Stripe account.

##### Subcommands

- ### [](https://docs.stripe.com/cli/pay#projects_billing-show)billing show

Display the payment method currently on file for Stripe Projects billing.

- ### [](https://docs.stripe.com/cli/pay#projects_billing-add)billing add

Add or update the payment method used for Stripe Projects billing. We require it before you can provision any paid plan tier.

- ### [](https://docs.stripe.com/cli/pay#projects_billing-update)billing update

Set or update global or per-provider monthly spend limits.

##### Flags for billing update

- ### [](https://docs.stripe.com/cli/pay#projects_billing-limit)--limit <amount>

Set a monthly spend cap in USD. It applies globally unless you also specify `--provider`.

- ### [](https://docs.stripe.com/cli/pay#projects_billing-provider)--provider <provider>

Scope the spend limit to a specific provider. Per-provider limits take precedence over the global limit.

Was this section helpful?Yes No

View the payment method on file

Add or update a payment method

Set a global 50 USD per month spend cap

Set a 20 USD per month cap for Supabase only

#### stripe projects spend

View the current and previous month's spend, broken down by provider.

Was this section helpful?Yes No

View spend by provider

#### stripe projects import<url>

Add services from a shared stack URL to your existing project. Unlike `stripe projects init --from`, this command merges the imported services into your current project's state without creating a new project.

##### Arguments

- ### [](https://docs.stripe.com/cli/pay#projects_import-url)<url>string

A shared stack URL generated by `stripe projects share`.

Was this section helpful?Yes No

Import services from a shared stack URL

#### stripe projects llm-context

Generate an `AGENTS.md` context document for the current project. The file includes provider documentation, quickstart instructions, and environment variable names, formatted for use by AI coding agents (Claude, Codex, Gemini, Cursor, and similar tools).

Was this section helpful?Yes No

Generate the AGENTS.md context file

Stripe pay

The `stripe pay` plugin sends instant business-to-business transfers. The sender needs a funded financial account, and the recipient needs a financial account linked to their Stripe profile.

Identify the recipient using a Stripe profile handle, such as `@recipient`, or a profile network ID, such as `profile_...`.

If the user doesn't provide an exact handle or network ID, use Stripe Directory to find and verify candidate businesses. Ask the user to choose the exact recipient before continuing. Don't guess the recipient.

Authenticate with `stripe login`. Use `stripe whoami` to verify the active account before sending money.

If the authenticated account doesn't have a Stripe profile, an interactive session can help create one. For non-interactive use, pass `--create-profile-if-missing` with `--profile-handle`, `--profile-display-name`, and `--profile-email`.

This command can move money. Use `--agent` or `--json` to review transfer details in machine-readable output. Only add `--yes` after the user confirms the recipient, amount, currency, and source financial account. Use `--dry-run` to validate the flow without creating or sending the transfer.

Was this section helpful?Yes No

Install the pay plugin

#### stripe pay [recipient] [amount] [currency]<arguments>[flags]

Send an instant transfer from your financial account to another business identified by a Stripe profile handle or network ID.

In an interactive terminal, you can omit the recipient, amount, and currency and enter them in the interactive form. With `--agent` or `--json`, you must provide all three arguments.

The command lists your eligible open financial accounts. If one account is eligible, the command selects it automatically. If multiple accounts are eligible, interactive sessions show a selector. Agent and scripted runs should pass `--financial-account`.

For agent or scripted use:

1. Run `stripe whoami` to verify the active Stripe account. If authentication fails, ask the user to run `stripe login`.

2. Run `stripe pay @recipient 10.00 usd --agent` with the exact recipient, amount, and currency that the user requested. Include `--financial-account fa_...` if the user supplied a source financial account. Agent and JSON modes return a `confirmation_required` response before sending money. 3. Review the returned source financial account, recipient, amount, currency, fee, delivery timing, internal note, and memo with the user.

4. Only after the user confirms those details, rerun the same command with `--yes`. Explicitly pass `--financial-account` with the `financial_account` value from the review response, even if the review command selected it automatically. Preserve the exact recipient, amount, currency, and source financial account.

If the result has `status