Stripe | Financial Infrastructure to Grow Your Revenue

Stripe | Financial Infrastructure to Grow Your Revenue

5282 articles

Account capabilities and configurations


Account capabilities and configurations

Learn about capabilities you can enable for accounts, the account configurations they belong to and their requirements.

Capabilities represent functionality that you can request for your connected accounts, such as accepting card payments or receiving transferred funds from your platform account. A capability must be active for a connected account to perform actions associated with that capability.

Testing capabilities

Sandboxes might not enforce some capabilities. In certain cases, they can allow an Account to perform capability-dependent actions even when the associated capability’s status isn’t active.

Most capabilities require verification of certain information about the connected account’s business before Stripe enables them. The capabilities you request for a connected account determine the information you’re required to collect for it. To reduce onboarding effort, only request the capabilities that your accounts need. Requesting more capabilities means the onboarding flow must verify more information.

You can start by completing the platform profile to understand which capabilities might be appropriate for your platform.

Note

For some capabilities, requesting them enables them permanently. Attempting to remove or unrequest a permanent capability returns an error.

After creating an Account, you can request additional capabilities and remove existing non-permanent capabilities. For connected accounts that other platforms control, you can’t unrequest capabilities.

Supported capabilities

Following is a list of available capabilities. Click an item to expand or collapse it.

Transfers

Card payments

US tax reporting

Payment methods

India international payments

Multiple capabilities

Requesting multiple capabilities for a connected account is common, but involves the following considerations:

  • Capabilities operate independently of each other.
  • If a connected account has both card _ payments and transfers , and the status of either one is inactive , then both capabilities are disabled.
  • You can request or unrequest most capabilities for a connected account at any time during its lifecycle.

Capabilities also allow you to collect information for multiple purposes at the same time. For example, you can collect both required tax information and the information required for a requested capability.

Request capabilities for an Account

Capabilities are set on the Account object. To get the list of available capabilities for an Account, use the list Capabilities endpoint.

Account creation and requesting capabilities differ for connected accounts in different configurations.

  • For connected accounts with access to the full Stripe Dashboard, including Standard accounts, some capabilities are requested automatically, based on their country. You can also request other capabilities for them.
  • For connected accounts with access to the Express Dashboard, including Express accounts, you can either request their capabilities or use the onboarding configuration settings to automate capability requests.
  • For connected accounts without access to a Stripe-hosted Dashboard, including Custom accounts, you must request their capabilities.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Information requirements vary depending on the capability, but they often relate to identity verification or other information specific to a payment type.

When your connected account is successfully created, you can retrieve a list of its requirements:

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

In the response, the requirements hash specifies the required information. The values for payouts_enabled and charges_enabled indicate whether payouts and charges are enabled for the account.

Capabilities for existing connected accounts

The following sections describe how to preview information requirements or manage capabilities for existing connected accounts using the Capabilities API.

Understand capability requirements

Stripe reports both risk and compliance requirements in the Capability object’s requirements hash. The requirements listed in that hash indicate what information is needed from your connected account to prevent that capability from being disabled.

Form and support-based requirements follow the <id>.<requirement_description>.<resolution_path> format, where id is prefixed with interv_ to indicate a risk verification requirement.

Preview information requirements

You can preview what information is needed from your connected account for a particular capability either before or after that capability has been requested.

When you request capabilities, it triggers an account.updated event and the Account ’s requirements can change. To enable a requirement faster and avoid disabling the Account, preview the requirements and collect any required information before requesting the capability.

The following example lists the requirements for an Account ’s card_payments capability.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Check the requirements hash in the response to see what information is needed:

{
 "id": "card_payments",
 "object": "capability",
 "account": "{{CONNECTED_ACCOUNT_ID}}",
 "requested": false,
 "requested_at": null,
 "requirements": {
 "past_due": [],
 "currently_due": ["company.tax_id", ...],
 "eventually_due": [...],
 "disabled_reason": ...,
 "current_deadline": ...
 },
 "status": "unrequested"
}

The value for status identifies whether the capability has been requested. When the value is requested, the Account ’s requirements are active.

In addition to previewing a capability’s requirements before requesting it, you can use the same endpoint to view a capability’s current requirements. That can help you stay informed when requirements change.

Request and unrequest capabilities

To request a capability for an Account, update the Capability to set its requested value to true. If the request succeeds, the API returns requested: true in the response.

To unrequest a capability for an Account, update the Capability to set its requested value to false. If the capability can’t be removed, the call returns an error. If the call succeeds, the API returns requested: false in the response.

You can also request and remove an account’s capabilities from the Dashboard. If a capability can’t be removed, its Remove button is disabled.

The example below requests the transfers capability for a connected account:

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

The example below requests multiple capabilities for a connected account:

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Deprecated capabilities

Capabilities described in the following sections are deprecated. If possible, don’t request them for new Accounts. If you have existing Accounts that use deprecated capabilities, we recommend that you update them to use other capabilities instead.

legacy_payments

The legacy_payments capability enables charges, payouts and transfers. Newer Accounts enable those actions using the card_payments and transfers capabilities, which support more flexible configurations.

We recommend that you take the following steps:

  1. Update your connected account onboarding process to request the appropriate combination of card_payments and transfers instead of legacy_payments.
  2. Update your existing connected accounts to request the appropriate combination of card_payments and transfers.
  3. Update any code that checks the status of legacy_payments to check the status of either legacy_payments or the appropriate new capability. For example, update code that relies on an Account ’s ability to make card payments to run when either legacy_payments or card_payments is active. Similarly, update code that relies on an Account ’s ability to accept transfers to run when either legacy_payments or transfers is active. The updated code works throughout the process of transitioning to the new capabilities, regardless of when the new capabilities become active.
  4. After the new capabilities are active for all of your connected accounts, remove references to legacy_payments from your code.

Note

You can’t unrequest the legacy_payments capability. Stripe will notify you in advance before we remove it.

If you do business in Canada, Stripe automatically requests card_payments and transfers for your Accounts that use legacy_payments, to comply with updated requirements. During the process, you might see the following values in your connected accounts’ API responses.

Before requesting new capabilitiesNew capabilities requestedNew requirements completed
capabilities: { legacy_payments: "active" }, charges_enabled: true, payouts_enabled: truecapabilities: { card_payments: "inactive", legacy_payments: "active", transfers: "inactive" }, charges_enabled: true, payouts_enabled: truecapabilities: { card_payments: "active", legacy_payments: "active", transfers: "active" }, charges_enabled: true, payouts_enabled: true

Note

During the transition, card_payments and transfers requirements might appear in past_due. However, if legacy_payments is active, then charges, transfers, and payouts remain enabled.

See also

Last verified 2026-09-25

Is this helpful?