| [ Web Proxy ] |
| Viewing: https://docs.stripe.com/treasury/connect/v2/account-management/connected-accounts | [Back] [Original] |
To use Treasury for platforms, you must have a Stripe Connect integration where your platform account provides Stripe functionality to its connected accounts. Each connected account exists as an Account object in the Accounts v2 API and its access to Stripe functionality is defined by its configuration capabilities, such as merchant, customer, recipient, or money_manager.
card_creator configuration allows the connected account to create and issue cards to users.As the platform, you can provision any combination of configuration capabilities to your connected accounts. Different capabilities have different onboarding requirements. Whether you create or update connected accounts to request the capabilities needed for Treasury for platforms, you must collect required information from the connected account before they can use the corresponding functionality.
To enable Treasury for platforms for an existing v1 Account, you can specify the v1 Account ID in a v2 endpoint.
When you request capabilities associated with the money_manager configuration for a connected account, Stripe reviews the accounts provided URL or product description to make sure it complies with our requirements and those of our partners.
Some existing connected accounts might produce an inconclusive review because of insufficient information. For example, connected accounts with multiple owners with ownership stake exceeding 25% might have to provide additional information about each owner.
To reduce the chance of inconclusive reviews, make sure that your connected account onboarding process collects valid URLs and comprehensive product descriptions.
Connected accounts must meet the following requirements to be supported for Treasury for platforms:
Begin in a sandbox with access to Treasury for platforms and create a v2 connected account that you use to request capabilities to:
money_manager configuration)money_manager configuration)recipient configuration)merchant configuration)To enable Treasury for platforms for a v1 Account, you can specify a v1 Account in a v2 endpoint.
The account must not use a Stripe-hosted dashboard and you must be responsible for requirements collection.
curl -X POST https://api.stripe.com/v2/core/accounts \ -H "Authorization: Bearer sk_test_wU7nrJCZspk1NPDxiQgAF05q" \ -H "Stripe-Version: 2026-06-24.preview" \ --json '{ "include": [ "configuration.money_manager" ], "contact_email": "test@example.com", "display_name": "John Smith", "identity": { "country": "gb", "entity_type": "individual" }, "configuration": { "merchant": { "mcc": "8011", "support": { "phone": "0000000000" }, "capabilities": { "card_payments": { "requested": true } } }, "money_manager": { "capabilities": { "received_credits": { "bank_accounts": { "requested": true } }, "business_storage": { "inbound": { "gbp": { "requested": true } }, "outbound": { "gbp": { "requested": true } } }, "outbound_payments": { "bank_accounts": { "requested": true }, "financial_accounts": { "requested": true } }, "outbound_transfers": { "bank_accounts": { "requested": true }, "financial_accounts": { "requested": true } }, "inbound_transfers": { "bank_accounts": { "requested": true } }, "received_debits": { "bank_accounts": { "requested": true } } } } }, "dashboard": "none", "defaults": { "currency": "gbp", "responsibilities": { "fees_collector": "application", "losses_collector": "application" } } }'
The response includes the connected account ID.
{ "id": "acct_123", "object": "v2.core.account", "applied_configurations": [ "merchant", "money_manager" ], "configuration": { "customer": null, "merchant": null, "recipient": null, "money_manager": { "capabilities": { "received_credits": { "bank_accounts": { "requested": true, "status": "restricted", "status_details": [ { "code": "requirements_past_due", "resolution": "provide_info" } ] } },
If you already have an eligible connected account, you can request to add money_manager capabilities:
curl -X POST https://api.stripe.com/v2/core/accounts/\ -H "Authorization: Bearer sk_test_wU7nrJCZspk1NPDxiQgAF05q" \ -H "Stripe-Version: 2026-06-24.preview" \ --json '{ "include": [ "configuration.money_manager" ], "configuration": { "money_manager": { "capabilities": { "business_storage": { "inbound": { "gbp": { "requested": true } }, "outbound": { "gbp": { "requested": true } } } } } } }'{{CONNECTED_ACCOUNT_ID}}
To activate a capability, you must first request it by setting its requested property to true. This triggers collection of the capabilitys requirements, which is handled by your platform. Requirements can involve identity and compliance documentation, and risk data. When Stripe verifies that a capabilitys requirements are fulfilled, it becomes active.
| Capability | Description | Configuration |
|---|---|---|
card_payments | Allows the merchant to accept card payments. | merchant |
received_credits.bank_accounts | Allows you to create a Financial Address for financial accounts to receive inbound credits. | money_manager |
business_storage.inbound.{currency} / business_storage.outbound.{currency} | List of the currencies which can be held in the financial accounts of the connected account. You must request both inbound and outbound for each currency. | money_manager |
outbound_payments.bank_accounts | Send funds from a financial account to a bank account owned by a different entity. | money_manager |
outbound_payments.financial_accounts | Send funds from a financial account to a financial account owned by a different entity. | money_manager |
outbound_transfers.bank_accounts | Transfer funds from a financial account to a bank account owned by the same entity. | money_manager |
outbound_transfers.financial_accounts | Transfer funds from a financial account to another financial account owned by the same entity. | money_manager |
inbound_transfers.bank_accounts | Pull funds into a financial account from an external bank account owned by the same entity. | money_manager |
received_debits.bank_accounts | Allow a financial account to be debited from an external bank account. | money_manager |
stripe_balance | Allows a recipient to manage their Stripe balance. | recipient |
stripe_transfers | Allows a recipient to receive transfers into their Stripe balance. | recipient |
commercial | Allows creation of issuing cards for commercial purchases. | card_creator |
consumer | Allows creation of issuing cards for consumer purchases. | card_creator |
Requested capabilities sometimes trigger additional onboarding requirements beyond those needed for accepting payments as a merchant or receiving payouts as a recipient. Each requirement imposed on a connected account includes the following information:
Individuals, sole proprietorships or companies (LLCs, corporations, non-profits, and so on) using Treasury for platforms with money_manager capabilities must provide the following information:
Entity details
Owner details
Check for one of the following status results in the API or Dashboard:
restricted.If the URL you provide for the connected account returns one of the following errors, resolve the issue before requesting capabilities:
invalid_url_format: Update the URL to a valid format (for example, .com or .org).invalid_url_denylisted: The URL is on a denylist. Contact Treasury support.invalid_url_website_inaccessible: The URL might require a password. The connected accounts website must be publicly accessible.invalid_url_website_incomplete: The URL returns a 404 error.invalid_url_website_other: Contact Treasury support.If the URL continues to return errors or you cant resolve the issue, submit a product description instead.
After you create an account, onboard its seller or service provider by:
Account with the collected information.Alternatively, you can create an account link specifying the type as the merchant and money_manager configurations, then send the returned URL to your connected account so they can provide the required information in a Stripe-hosted interface.
For recipient-configured connected accounts, create a PayoutMethod to make recurring outbound payments using the recipients preferred credentials.
Hosted onboarding collects a recipients payout method, but you can add additional payout methods or complete country-specific actions, if needed.
payout_method that you can use for payments and transfers. OSI can also retrieve next_action requirements (for example, Confirmation of Payee in GB).Use the Stripe-Context header with to identify the connected account youre making the request for.
You can add payout methods that collect the credentials required for different countries.
Create a GB bank account and initiate Confirmation of Payee (CoP) using the GB Bank Accounts API.
curl -X POST https://api.stripe.com/v2/core/vault/gb_bank_accounts \ -H "Authorization: Bearer sk_test_wU7nrJCZspk1NPDxiQgAF05q" \ -H "Stripe-Version: 2026-07-29.preview" \ -H "Stripe-Context:" \ --json '{ "sort_code": "108800", "account_number": "00012345", "currency": "gbp", "confirmation_of_payee": { "initiate": true } }'{{CONTEXT}}
{ "id": "{{PAYOUT_METHOD_ID}}", "object": "v2.core.vault.gb_bank_account", "bank_name": "Test Bank", "last4": "2345", "confirmation_of_payee": { "status": "awaiting_acknowledgement" } }
Check CoP status and acknowledge if needed.
curl https://api.stripe.com/v2/core/vault/gb_bank_accounts/{{PAYOUT_METHOD_ID}} \ -H "Authorization: Bearer sk_test_wU7nrJCZspk1NPDxiQgAF05q" \ -H "Stripe-Version: 2026-07-29.preview" \ -H "Stripe-Context:"{{CONTEXT}}
curl -X POST https://api.stripe.com/v2/core/vault/gb_bank_accounts/{{PAYOUT_METHOD_ID}}/acknowledge_confirmation_of_payee \ -H "Authorization: Bearer sk_test_wU7nrJCZspk1NPDxiQgAF05q" \ -H "Stripe-Version: 2026-07-29.preview" \ -H "Stripe-Context:"{{CONTEXT}}
You can list all payout methods for a connected account using the Payout Methods v2 API. Review properties such as available_payout_speeds, enabled_delivery_options, and usage_status to help you determine how to use them.
When the status of requested capabilities change for a connected account, you receive a v2.core.account[configuration.money_manager].capability_status_updated webhook confirming the change:
{ "created": "2025-06-18T02:08:15.025Z", "id": "evt_test_321", "object": "v2.core.event", "type": "v2.core.account[configuration.money_manager].capability_status_updated", "data": { "updated_capability": "business_storage.outbound.gbp" }, "related_object": { "id":, "type": "v2.core.account", "url": "/v2/core/accounts/"{{CONNECTED_ACCOUNT_ID}}"?include=configuration.money_manager" }, "changes": ..., ... }{{CONNECTED_ACCOUNT_ID}}
| Web Proxy Viewer | New URL | Original Page |