Connect and the Accounts v2 API
Create connected accounts with a unified identity across Stripe.
As a Connect platform, you represent your connected accounts with Account objects. There are two versions of Accounts:
- v2: Highly configurable and extendable support for payments to and by connected accounts, funds transfers, and other functionality
- v1: Limited support for connected accounts and payments
v2 Accounts use configurations to enable different sets of functionality. For example, adding the merchant configuration to a v2 Account enables it to receive payments. If you want to extend an existing connected account’s functionality, you can add more configurations to it.
v1 Accounts don’t have configurations. You can only use them to manage payments for connected accounts.
Certain features don’t yet directly support v2 Accounts. However, you can still pass the ID of a v2 Account to an Accounts v1 API endpoint. When you do so, the response is structured as a v1 Account, but any updates still apply to the corresponding properties of the v2 object.
Use the Accounts v2 API to represent connected accounts
The Accounts v2 API provides:
- Flexible account configurations: Enable or change an
Account’s capabilities and compatibility with Stripe features by updating its configurations. Each capability belongs to a particular configuration. - Centralized identity data: When you add a configuration to an existing
Accountto enable additional functionality, you don’t have to re-collect requirements that they already provided. - A single API for connected accounts and customers: In most cases, you can represent any customer with an
Accountobject. That lets you use the Accounts v2 API to manage both connected accounts and customers. You don’t have to use the Customers API at all.
The most common configurations include the following:
- The
merchantconfiguration allows anAccountto accept payments from customers. It includes thecard_andpayments stripe_(replacing v1balance. payouts payouts) capabilities. - The
customerconfiguration lets your platform charge anAccountas a customer. You can use it instead of aCustomerobject when creating a subscription or invoice. - The
recipientconfiguration allows anAccountto receive funds transfers. It includes thestripe_(replacing v1balance. stripe_ transfers transfers) capability, which is required to use indirect charges.
The following example creates an Account using API v2. Notice that its structure differs from the structure of an Account object in API v1.
API v2 response structure
By default, Accounts v2 API calls return values for certain properties and null for other properties, regardless of their actual values. To retrieve additional property values, request them using the include parameter.
curl -X POST https://api.stripe.com/v2/core/accounts \ -H "Authorization: Bearer sk_test_Hrs6SAopgFPF0bZXSN3f6ELN" \ -H "Stripe-Version: 2026-07-29.preview" \ --json '{ "contact_email": "jenny.rosen@example.com", "display_name": "Jenny Rosen", "dashboard": "full", "identity": { "business_details": { "registered_name": "Furever" }, "country": "us", "entity_type": "company" }, "configuration": { "merchant": { "capabilities": { "card_payments": { "requested": true } } } }, "defaults": { "currency": "usd", "responsibilities": { "fees_collector": "stripe", "losses_collector": "stripe" }, "locales": [ "en-US" ] }, "include": [ "configuration.merchant", "identity", "requirements" ] }'
Specifying requirements in the include array returns any default requirements that apply to the new Account.
Use Accounts as customers
Any API request with a customer parameter that accepts a Customer ID also has a customer_ parameter that accepts an Account ID. You can use it to provide the ID of a v2 Account that has the customer configuration instead of providing the ID of a Customer. For example:
curl https://api.stripe.com/v1/setup_intents \ -u "sk_test_Hrs6SAopgFPF0bZXSN3f6ELN:" \ -d customer_account=acct_123 \ -d "automatic_payment_methods[enabled]=true" \ -d confirm=true \ --data-urlencode "return_url=https://example.com/return" \ -d usage=off_session
If you use the Accounts v1 API, you can’t pass an Account ID to an endpoint that expects a Customer ID. If you want to charge your connected accounts using subscriptions, you have to create and manage separate Customer objects for them.
Learn more about using Accounts as customers.
Existing Connect platforms using Accounts v1 and Customers v1
You can use the Accounts v2 API to manage Accounts created using the Accounts v1 API, including assigning them the customer configuration.
Stripe discourages indefinitely maintaining both Accounts API versions simultaneously.
Accounts API v2 limitations
You must use Accounts v1 in the following cases:
- Using OAuth to authenticate connected accounts
- Signing connected accounts to a recipient service agreement
- To request or manage the following capabilities:
treasurycard_issuing_ * - deprecated capabilities such as
legacy_payments - deprecated payment methods
- certain payment methods in public or private preview
Cross-border payouts
Use Global payouts to send cross-border payouts.