Account onboarding
Use the Account onboarding Connect embedded component.
The Account onboarding component uses the Accounts API to read requirements and generate an onboarding form that’s localized for all Stripe-supported countries and that validates data. In addition, Embedded onboarding handles all business types, various configurations of company representatives, document uploads, identity verification, and verification statuses.
For more information, see Embedded onboarding.
Requirements collection options
When you collect information using the account onboarding component, it always collects currently_
requirements. You can use the collectionOptions
attribute to also request any of the following:
eventually_
requirementsdue - future requirements
- Granular requirement restrictions
For more information about specific requirements for your connected accounts, see Required verification information.
Requirement restrictions
While specifying collection options, you can configure granular requirement restrictions as only
or exclude
. Both options allow specifying an array of strings that represent either currently_
or eventually_
requirements on an account.
Think of the options as filters, where exclude
filters out matching account requirements, and only
acts as an intersection between the account requirements and the specified values. They also support wildcard matching using *
and relationship prefixes.
For example, if you have a connected account with several owners, you can collect the address information for all owners by specifying only: ["owners.
.
A person can have multiple relationships associated to them, and relationships can be assigned to multiple persons. Therefore, when you leverage relationship prefixes, they apply to all persons on the account with the specified relationship. This is especially useful in situations where you don’t know a specific person’s ID, but do know their relationship.
Important considerations:
- Accounts still need to satisfy all KYC requirements in order to have capabilities enabled. The
exclude
option doesn’t remove a requirement, it only prevents collection at the time. The information must still be collected. - These restrictions only apply within embedded components. They don’t affect accounts using other types of dashboards.
- This feature is intended for building improved user experiences, not for preventing accounts from accessing information.
only requirement restriction
This option scopes collection to the set of specified requirements that are also outstanding on the account. It’s most commonly used to build a remediation experience, and is particularly useful for requirements that require some form of document upload or identity verification.
This option prevents account onboarding from presenting the standard final summary step. If all of the specified requirements have been provided, the account onboarding component exits immediately.
exclude requirement restriction
This option hides the specified fields, which prevents a connected account from providing or editing that information. It only hides fields from the component; it doesn’t remove information requirements. This option is useful when you want to prefill information that you don’t want the connected account to access during onboarding.
For Express accounts, if you want to exclude
the business_
requirement (such as to prevent an account from changing their business type), the account country and capabilities must be set.
External account collection
Use the external_account_collection feature to control whether the component collects external account information. This parameter is enabled by default, and only platforms responsible for collecting updated information when requirements are due or change (including Custom accounts) can disable it. When external_
is enabled, user authentication is required. You can opt out of Stripe user authentication with the disable_stripe_user_authentication parameter.
Disable Stripe user authentication
Use the disable_stripe_user_authentication feature to control whether the component requires Stripe user authentication. The default value is the opposite of the external_account_collection value. For example, if you don’t set external_
, it defaults to true and disable_
defaults to false. This value can only be true for accounts where controller.
is application
.
We recommend implementing 2FA or equivalent security measures as a best practice. For account configurations that support this feature, such as Custom accounts, you assume liability for connected accounts if they can’t pay back negative balances.
Customize policies shown to your users
Connected accounts see Stripe’s service agreement and Privacy Policy during embedded onboarding. Connected account users who haven’t accepted Stripe’s services agreement must accept it on the final onboarding screen. Embedded onboarding also has a footer with links to Stripe’s service agreement and Privacy Policy.
For connected accounts where the platform is responsible for requirement collection, you have additional options to customize the onboarding flow, as outlined below.
Handle service agreement acceptance on your own
If you’re a platform onboarding connected accounts where you’re responsible for requirement collection, you can collect Terms of Service acceptance using your own process instead of using the embedded account onboarding component. If using your own process, the final onboarding screen only asks your connected accounts to confirm the information they entered, and you must secure their acceptance of Stripe’s service agreement.
Embedded onboarding still has links to the terms of service (for example, in the footer) that you can replace by linking to your own agreements and privacy policy.
Link to your agreements and privacy policy 
Connected accounts see the Stripe service agreement and Privacy Policy throughout embedded onboarding. For the connected accounts where you’re responsible for requirement collection, you can replace the links with your own agreements and policy. Follow the instructions to incorporate the Stripe services agreement and link to the Stripe Privacy Policy.
Create an Account Session
When creating an Account Session, enable account onboarding by specifying account_
in the components
parameter.
After creating the Account Session and initializing ConnectJS, you can render the Account onboarding component in the front end:
The StepChange object
The StepChange
type is defined in connect.
. Every time the connected account navigates from one step to another in the onboarding process, the step change handler receives a StepChange
object with the following property:
Name | Type | Example value |
step | string (must be a valid step name) | business_ |
The unique reference to an onboarding step. |
Step Restrictions
- The
StepChange
object is only for analytics. - Steps can appear in any order and can repeat.
- The list of valid
step
names can change at any time, without notice.
Step Names
Each page in an onboarding flow has one of the following step names.
Step name | Description |
---|---|
stripe_ | User authentication includes a popup to a Stripe-owned window. The connected account must authenticate before they can continue their workflow. |
risk_ | Guides the connected account to resolve risk-related requirements. |
legal_ | Connected accounts can optionally reuse business information from existing accounts with the same owner. |
business_ | Sets the business type of the connected account. In certain cases the connected account can also set their country. |
business_ | Collects information related to the connected account’s business. |
business_ | Collects a proof of entity document establishing the business’ entity ID number, such as the company’s articles of incorporation. Or allows users to correct wrongly entered information related to the entity. |
business_ | Collects documents needed to verify that bank account information, such as the legal owner’s name and account number, match the information on the user’s Stripe account. |
business_ | Collects other documents and verification requirements related to the business. |
representative_ | Collects information about the account representative. |
representative_ | Collects a government-issued ID verifying the existence of the account representative. |
representative_ | Collects an additional document to verifying the details of the account representative. |
legal_ | Collects the legal guardians consent for accounts opened by minors. |
owners | Collects information about the beneficial owners of a company. |
directors | Collects information about the directors of a company. |
executives | Collects information about the executives of a company. |
proof_ | Collects documentation that verifies a company’s beneficial owners. |
proof_ | Collects documentation to verify that the account representative holds a position of sufficient authority within a company. |
confirm_ | Allows connected accounts to attest that the beneficial owner information provided to Stripe is both current and correct. |
risa_ | (Applies only to businesses in Japan.) Answers questions concerning the Revised Installment Sales Act. |
treasury_ | Collects Financial Accounts for platforms and Card Issuing terms of service when requesting those capabilities. |
external_ | Collects the external account of the connected account. |
support_ | Collects information that helps customers recognize the connected accounts business. This support information can be visible in payment statements, invoices, and receipts. |
climate | Allows a connected account to opt into Stripe Climate. |
tax | Allows a connected account to opt into Stripe Tax. |
summary | Final review step of onboarding. The connected account can update entered information from this step. The terms of service and privacy URL is displayed in this screen. |
summary_ | From the summary step, a connected account can update information related to risk requirements. |
summary_ | From the summary step, a connected account can update information related to their business type. |
summary_ | From the summary step, a connected account can update information related to their business. |
summary_ | From the summary step, a connected account can update public-facing information related to their business. |
summary_ | From the summary step, a connected account can update information about each person on their account. |
summary_ | From the summary step, a connected account can update information related to their external account. |
summary_ | From the summary step, a connected account can update information related to their Stripe Tax integration. |
summary_ | From the summary step, a connected account can update information related to their W8/W9 certified tax information. This is shown when Stripe must collect W8/W9 information. |
summary_ | From the summary step, a connected account can update information related to their Stripe Climate integration. |
terms_ | When leveraging requirement restrictions to collect only ToS acceptance, we render a special step because the summary step is not rendered when leveraging only requirement restrictions. |