Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Revenue
Platforms and marketplaces
Money management
Developer resources
Overview
Get started with Connect
Integration fundamentals
Example integrations
Account management
Onboard accounts
    Choose your onboarding configuration
    Account capabilities
      Payment methods
    Required verification information
    Service agreement types
    Additional Verifications
    Networked onboarding
    Migrate to Stripe
Configure account Dashboards
Work with connected account types
Payment processing
Accept payments
Pay out to accounts
Platform administration
Manage your Connect platform
Tax forms for your Connect platform
HomePlatforms and marketplacesOnboard accounts

Account capabilities

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

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 and test mode 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 for that account. The capabilities you request for a connected account determine the information you’re required to collect for that account. 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

You can transfer funds to connected accounts that have the transfers capability. On-demand platforms often use it to pay their connected accounts. For example, a ride-hailing platform could use this capability so they can pay their drivers. The following diagram illustrates the flow of funds and the relationship between customers, the platform, and connected accounts.

Relationship between customers, the platform, and connected accounts.

When you use the transfers capability, your platform, not the connected account, processes charges. Therefore, a connected account’s customers’ bank statements display your platform’s statement descriptor, not the connected account’s.

Payments using the transfers capability include Destination charges and Separate charges and transfers.

Note

Before the 2019-08-14 API version, the transfers capability was referred to as platform_payments. If you’re using an API version older than 2019-08-14, use platform_payments.

Cross-border transfers

Moving money across country borders introduces additional requirements and is supported in the following scenarios only:

  • European Union, United Kingdom, and Gibraltar platforms sending funds to SEPA countries.
  • US platforms sending funds to cross-border payouts destinations using a recipient service agreement.

For other scenarios, create a platform account in the same region as your connected accounts. Depending on your business structure, that might require creating a legal entity in that region and additional work to onboard connected accounts.

Card payments

Connected accounts with the card_payments capability can receive payments from your platform and directly process card and ACH payments. An e-commerce storefront with this capability, for example, can collect its own payments. The following diagram illustrates the flow of funds and the relationship between customers, connected accounts, and the platform:

Relationship between customers, connected accounts, and the platform.

For an account to have the card_payments capability, you must request both card_payments and transfers.

When a connected account has this capability, its customers’ bank statements display the connected account’s statement descriptor, not the platform’s.

The card_payments capability applies to all charge types.

US tax reporting

The US Internal Revenue Service (IRS) requires some platforms to file 1099 forms with the IRS between January and March, and to deliver the reporting of those filings to their connected accounts by January 31. To file the forms, those platforms must collect additional information from their connected accounts.

Note

Stripe recommends that you consult a tax advisor to determine your tax filing and reporting requirements.

If your platform has federal 1099 filing requirements and you decide to file through Stripe, you can use the tax_reporting_us_1099_misc and tax_reporting_us_1099_k capabilities to collect the necessary personal and business information from your connected accounts.

1099-MISC form

Many types of payments require an IRS Form 1099-MISC, such as payments to non-employees or contractors, royalties, prizes, and so forth. The tax_reporting_us_1099_misc capability helps you collect the required information for Form 1099-MISC. For example, a creator platform could use the tax_reporting_us_1099_misc capability to collect the necessary information from their content providers for tax filing season.

1099-K form

A 1099-K form reports payments received from credit card transactions and third-party payment networks. Traditionally, third-party settlement organizations have used Form 1099-K to report their gross payment transactions in a calendar year. For example, an e-commerce platform uses the tax_reporting_us_1099_k capability to collect the necessary tax filing information from each storefront.

For more details on tax reporting for US-based connected accounts, see Manage Tax Forms.

Payment methods

Some payment methods are enabled by the card_payments capabilty, while others are enabled by their own capability.

If you’re charging and then paying out, check your Dashboard to see which payment methods you can use.

To enable connected accounts to accept a payment method for direct charges or charges with on_behalf_of, you must request that payment method’s capability for those accounts.

For connected accounts with access to the full Stripe Dashboard, including Standard accounts, most payment method capabilities are enabled by default. Those accounts can manage their own payment method capabilities. You can also request capabilities for them by calling the capabilities update API, and list an account’s enabled capabilities by calling the accounts API.

In the following table, the All business types supported column indicates that all business types are supported unless prohibited by Stripe. The Additional verification requirements column refers to requirements in addition to those for the card_payments capability.

Payment method and associated capabilityAll business types supportedAvailable by defaultAdditional verification requirementsCountry availabilityAccounts v2 support

ACH Direct Debit

us_bank_account_ach_payments

Yes

Yes

No

Connected account must be in a supported country.

Yes; v2 capability name is ach_debit_payments

Affirm

affirm_payments

No, see prohibited businesses.

Yes

No

Connected account must be in a supported country.

Yes

Afterpay Clearpay

afterpay_clearpay_payments

No, see prohibited businesses.

Yes

No

Connected account must be in a supported country.

Yes

Alipay

alipay_payments

No, see prohibited businesses.

The payment method must be activated on the Dashboard settings page. Also, request an invite to create charges on behalf of other accounts.

No

Connected account must be in a supported country.

No

Apple Pay

Available with card_payments

Yes

With Checkout - Yes

With Payment Element—The payment method must be configured on the Dashboard settings page.

No

Connected account must be in a supported country.

Yes

Bacs Direct Debit

bacs_debit_payments

Yes

Yes

No

Connected account must be in a supported country.

Yes

Bancontact

bancontact_payments

Yes

Yes

No

Connected account must be in a supported country.

Yes

BECS Debit

au_becs_debit_payments

Yes

Yes

No

Connected account must be in a supported country.

Yes

BLIK

blik_payments

Yes

The payment method must be activated on the Dashboard settings page.

No

Connected account must be in a supported country.

Yes

Boleto

boleto_payments

Yes

Yes

No

Connected account must be in a supported country.

Yes

Canadian pre-authorized debit

acss_debit_payments

Yes

Yes

No

Connected account must be in a supported country.

Yes

Cartes Bancaires

cartes_bancaires_payments

Yes

Yes

No

Connected account must be in a supported country.

Yes

Cash App Pay

cashapp_payments

Yes

Yes

No

Connected account must be in a supported country.

Yes

EPS

eps_payments

Yes

Yes

No

Connected account must be in a supported country.

Yes

FPX

fpx_payments

No, only businesses with a valid business registration number.

The capability must be activated on the Dashboard settings page.

Yes

Connected account must be in a supported country.

Yes

Google Pay

Available with card_payments

Yes

Yes

No

Connected account must be in a supported country.

Yes

GrabPay

grabpay_payments

Yes

Yes

No

Connected account must be in a supported country.

Yes

iDEAL

ideal_payments

Yes

Yes

Yes, tax ID required for sole proprietors.

Connected account must be in a supported country.

Yes

JCB Japan

jcb_payments

Yes

Yes

No

Connected account must be in Japan.

Yes

Klarna

klarna_payments

No, see prohibited businesses.

Yes

No

Connected account must be in a supported country.

Yes

Konbini

konbini_payments

No, see prohibited businesses.

The payment method must be activated on the Dashboard settings page.

No

Connected account must be in a supported country.

Yes

Link

link_payments

Yes

Yes

No

Connected account must be in a supported country.

Yes

MobilePay

mobilepay_payments

No, see prohibited businesses.

The payment method must be activated on the Dashboard settings page.

No

Connected account must be in a supported country.

Yes

Multibanco

multibanco_payments

Yes

The payment method must be activated on the Dashboard settings page.

No

Connected account must be in a supported country.

Yes

OXXO

oxxo_payments

Yes

Yes, on first payment attempt.

No

Connected account must be in a supported country.

Yes

P24

p24_payments

Yes

Yes

No

Connected account must be in a supported country.

Yes

Pay by Bank

pay_by_bank_payments

Yes

The payment method must be activated on the Dashboard settings page.

No

Connected account must be in a supported country.

Yes

PayNow

paynow_payments

No, see prohibited businesses.

Yes, if MCC passes the PayNow prohibited business list.

No

Connected account must be in a supported country.

Yes

Pix

pix_payments

Yes

The capability must be activated on the Dashboard settings page.

No

Connected account must be in a supported country.

No

PromptPay

promptpay_payments

Yes

Yes

No

Connected account must be in a supported country.

Yes

Satispay

satispay_payments

No, see prohibited businesses.

The capability must be activated on the Dashboard settings page.

No

Connected account must be in a supported country.

Yes

SEPA Bank Transfers

sepa_bank_transfer_payments

Yes

Yes

No

Connected account must be in a supported country.

Yes

SEPA Debit

sepa_debit_payments

Yes

Yes

Yes

Connected account must be in a supported country.

Yes

Sofort

sofort_payments

Yes

Yes

No

Connected account must be in a supported country.

No

USD Bank Transfers

us_bank_transfer_payments

Yes

Yes

No

Connected account must be in a supported country.

Yes

WeChat Pay

wechat_pay_payments

No, see prohibited businesses.

The payment method must be activated on the Dashboard settings page. Also, request an invite to create charges on behalf of other accounts.

No

Connected account must be in a supported country.

No

Learn more about payment method support for Connect.

Australia
Austria
Belgium
Brazil
Bulgaria
Canada
Croatia
Cyprus
Czech Republic
Denmark
Estonia
Finland
France
Germany
Gibraltar
Greece
Hong Kong
Hungary
Ireland
Italy
Japan
Latvia
Liechtenstein
Lithuania
Luxembourg
Malta
Mexico
Netherlands
New Zealand
Norway
Poland
Portugal
Romania
Singapore
Slovakia
Slovenia
Spain
Sweden
Switzerland
Thailand
United Arab Emirates
United Kingdom
United States
Australia
Austria
Belgium
Brazil
Bulgaria
Canada
Croatia
Czech Republic
Denmark
Estonia
Finland
France
Germany
Gibraltar
Greece
Hong Kong
Hungary
Ireland
Italy
Japan
Latvia
Liechtenstein
Lithuania
Luxembourg
Malaysia
Mexico
Netherlands
New Zealand
Norway
Poland
Portugal
Romania
Singapore
Slovakia
Spain
Sweden
Switzerland
Thailand
United Arab Emirates
United Kingdom
United States

India international payments

You must request the capability to support transactions from buyers located outside of India who use a currency different than INR. Complete the following during your onboarding process to enable international payments:

  1. Specify a transaction purpose code. The export_purpose_code field describes the nature of a payment received in foreign currency. The complete list of transaction purpose codes is maintained by Reserve Bank of India (RBI). You can find the subset of transaction purpose codes that are supported by Stripe in the Transaction Purpose Code Listing.

  2. Specify your importer/exporter code (IEC). The export_license_id field holds the value for the IEC code. This code is issued by the Indian Director General of Foreign Trade (DGFT) to India. You can apply for an IEC at the DGFT website. An IEC is required under certain conditions.

    • If you plan to accept Visa or Mastercard, an IEC is required only if you sell physical goods. Your export_purpose_code is for physical goods.
    • If you plan to accept AMEX international payments for all export transactions, including selling physical goods and services. This is described by India’s Foreign Trade Policy.

For more details, see Accept International Payments from India

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 the account’s 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
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/accounts \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "controller[fees][payer]"=application \ -d "controller[losses][payments]"=application \ -d "controller[stripe_dashboard][type]"=none \ -d "controller[requirement_collection]"=application \ -d country=US \ -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 retrieve a list of its requirements:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/accounts/
{{CONNECTED_ACCOUNT_ID}}
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

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.

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, account.updated webhooks fire 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 the card_payments capability for a specific account.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/accounts/
{{CONNECTED_ACCOUNT_ID}}
/capabilities/card_payments
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

In the response, check the requirements hash 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, set the capability’s requested value to true by updating the account. If the request succeeds, the API returns requested: true in the response.

To unrequest a capability for an account, set the capability’s requested value to false by updating the account. 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 specific connected account:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/accounts/
{{CONNECTED_ACCOUNT_ID}}
/capabilities/transfers
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d requested=true

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

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/accounts/
{{CONNECTED_ACCOUNT_ID}}
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "capabilities[bancontact_payments][requested]"=true \ -d "capabilities[eps_payments][requested]"=true \ -d "capabilities[ideal_payments][requested]"=true \ -d "capabilities[p24_payments][requested]"=true \ -d "capabilities[sepa_debit_payments][requested]"=true

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: true
capabilities: { card_payments: "inactive", legacy_payments: "active", transfers: "inactive" }, charges_enabled: true, payouts_enabled: true
capabilities: { 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

  • Create a charge
Was this page helpful?
YesNo
  • Need help? Contact Support.
  • Join our early access program.
  • Check out our changelog.
  • Questions? Contact Sales.
  • LLM? Read llms.txt.
  • Powered by Markdoc