Sign in
An image of the Stripe logo
Create account
Sign in
Home
Payments
Business operations
Financial services
Developer tools
Security
All products
Home
Payments
Business operations
Home
Payments
Business operations
Financial services
Developer tools
Support
Overview
Overview
Get started
Collect payments then pay out
Enable other businesses to accept payments directly
Pay out money
Explore Connect
Onboard your accounts
Choose your account type
Standard
Express
Custom
Service agreement types
Account capabilities
Country availability
Additional verifications
Update verified info
Accept payments
Create a charge
Create a payments page
Create payment links with Connect
Connect integration guide
Automatic payment methods
Set statement descriptors
Connect platforms using the Payment Methods API
Create subscriptions
Create invoices
Debit connected accounts
Pay out
Set bank and debit card payouts
Bank accounts
Manage payout schedule
Manual payouts
Payout reversals
Instant Payouts
Cross-border payouts
Crypto payouts
Manage funds
Add money to your platform balance
Account balance
Handle multiple currencies
Manage accounts
Best practices
Listen for updates
Dashboard account management
Platform controls for Standard accounts
Make API calls for connected accounts
Set MCCs
Testing
Manage tax forms
Overview
Get started with tax reporting
Tax form settings
Calculation methods
File tax forms
File tax forms with states
Update tax forms
Deliver tax forms
Correct tax forms
Split tax forms
Tax year changeover
Testing
No-code options
Connect
·
HomePaymentsMultiparty payments

Account capabilities

Learn about capabilities you can enable for accounts and the requirements you must satisfy to use them.

The capabilities you request for a connected account determine the information you need to collect for that account. To reduce onboarding effort, only request the capabilities you need. The more capabilities you request, the more information you must collect.

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

Supported capabilities

The following is a list of available capabilities. Click on the items to get more information about them:

Transfers

Card payments

U.S. tax reporting

Payment methods

Multiple capabilities

Requesting multiple capabilities for a connected account is common but consider the following if you do this:

  • Capabilities operate independently of each other.
  • If a connected account is set with both card_payments and transfers, then both capabilities become disabled if the status of either one is inactive.
  • You can request or unrequest any capability for a connected account at any time during the account’s lifecycle.

Capabilities also allow you to collect information for multiple purposes at the same time, so users are not asked to submit the same information more than once. An example would be collecting both required tax information and the information required for a requested capability. If you’re onboarding a user with the transfers capability and they’re required to file an IRS FORM 1099-MISC (a U.S. federal tax reporting form), you could collect information for both at the same time.

Create an account with capabilities

Capabilities are set on the Account object. To find the list of available capabilities, use the list_capabilities endpoint.

Account creation differs by account type. For more details on this, see Standard accounts, Express accounts, and Custom accounts.

Terminal
curl https://api.stripe.com/v1/accounts \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d "type"="custom" \ -d "capabilities[card_payments][requested]"="true" \ -d "capabilities[transfers][requested]"="true"

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 view what its requirements are:

Terminal
curl https://api.stripe.com/v1/accounts/{{CONNECTED_STRIPE_ACCOUNT_ID}} \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
:

In the response, check the requirements hash to see what information is needed. The values for payouts_enabled and charges_enabled indicate whether payouts and charges can be made for the account.

More about capabilities

The basics of account creation are covered above. However, there can be instances where you’ll want to preview information requirements or manage capabilities on existing accounts. The following sections describe how to perform these actions using the Capabilities API.

Preview information requirements

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

When you request capabilities, account.updated webhooks fire and the account’s requirements might change. If you preview the requirements first, collect what’s required for the account, and then request the capability, you can assist in enabling charges and payouts for the account more quickly. You also avoid the possibility of the account getting disabled since the information was already collected in advance.

Below is an example that lists the requirements for the card_payments capability for a specific account.

Terminal
curl https://api.stripe.com/v1/accounts/{{CONNECTED_STRIPE_ACCOUNT_ID}}/capabilities/card_payments \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
:

In the response, check the requirements hash to see what information is needed:

{ "id": "card_payments", "object": "capability", "account": "{{CONNECTED_STRIPE_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 it is requested, requirements are activated for the account.

While these steps demonstrate how to preview a capability’s requirements before requesting it, you can use the same endpoint to view what the current requirements are for a capability. This can help you stay informed of what a capability’s requirements are and also of any requirement changes.

Request and unrequest capabilities Express accounts Custom accounts

After account creation, you can request additional capabilities. Do this by setting requested to true, specifying which capability you want, and which connected account it’s for. If the capability request is successful, the API returns requested: true in the response.

If you prefer, you can request and unrequest an account’s capabilities from the Dashboard instead of using the API.

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

Terminal
curl https://api.stripe.com/v1/accounts/{{CONNECTED_STRIPE_ACCOUNT_ID}}/capabilities/transfers \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d "requested"="true"

The example below requests multiple capabilities for a specific connected account at once:

Terminal
curl https://api.stripe.com/v1/accounts/{{CONNECTED_STRIPE_ACCOUNT_ID}} \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d "capabilities[bancontact_payments][requested]"="true" \ -d "capabilities[eps_payments][requested]"="true" \ -d "capabilities[giropay_payments][requested]"="true" \ -d "capabilities[ideal_payments][requested]"="true" \ -d "capabilities[p24_payments][requested]"="true" \ -d "capabilities[sofort_payments][requested]"="true" \ -d "capabilities[sepa_debit_payments][requested]"="true"

To unrequest capabilities for an account, use the same API call but set requested to false instead.

See also

  • Create a charge
Was this page helpful?
Questions? Contact us.
View developer tutorials on YouTube.
Check out our product changelog.
Powered by Markdoc
You can unsubscribe at any time. Read our privacy policy.
On this page
Supported capabilities
Multiple capabilities
Create an account with capabilities
More about capabilities
Stripe Shell
Test mode
▗▄ ▄▟█ █▀▀ ▗▟████▙▖ ██████ ███▗▟█ ███ ███▗▟██▙▖ ▗▟█████▙▖ ███▖ ▀▀ ███ ███▀▀▀ ███ ███▀ ███ ███ ███ ▝▜████▙▖ ███ ███ ███ ███ ███ █████████ ▄▄ ▝███ ███ ▄ ███ ███ ███▄ ███ ███ ▄▄ ▝▜████▛▘ ▝▜███▛ ███ ███ ███▝▜██▛▘ ▝▜█████▛▘ ███ ▀▘
Welcome to the Stripe Shell! Stripe Shell is a browser-based shell with the Stripe CLI pre-installed. Login to Stripe docs and press Control + Backtick on your keyboard to start managing your Stripe resources in test mode. - View supported commands: - Find webhook events: - Listen for webhook events: - Call Stripe APIs: stripe [api resource] [operation] (e.g. )
The Stripe Shell is best experienced on desktop.
$