Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Developer tools
Get started
Payments
Finance automation
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Overview
Get started with Connect
Integration fundamentals
Example integrations
Onboard accounts
Configure account Dashboards
    Get started with Connect embedded components
    Customize Connect embedded components
    Supported Connect embedded components
      Available Components
      Account management
      Account onboarding
      Balances
      Disputes for a payment
      Disputes list
      Documents
      Financial account
      Financial account transactions
      Issuing card
      Issuing cards list
      Notification banner
      Payment details
      Payments
      Payouts
      Payouts list
      Tax registrations
      Tax settings
      Preview components
      App install
      App viewport
      Capital financing
      Capital financing application
      Capital financing promotion
      Export Tax Transactions
      Payment method settings
      Reporting chart
    Stripe Dashboard customization
    Platform controls for Stripe Dashboard accounts
    Express Dashboard
Accept payments
Pay out to accounts
Manage your Connect platform
Tax forms for your Connect platform
Work with connected account types
HomePlatforms and marketplacesConfigure account DashboardsSupported Connect embedded components

Account onboarding

Use the Account onboarding Connect embedded component.

Copy page

Private preview

The iOS SDK is currently available with invite only and has the following limitations:

  • Only accounts where controller.requirement_collection is application, such as Custom connected accounts, are supported.
  • User authentication isn’t supported, so you must set features.disable_stripe_user_authentication to true in your server endpoint for any components when you create an account session.

Enter your email in the form below to request an invitation.

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

With embedded onboarding, you can control the collection of currently_due or eventually_due requirements, along with the inclusion of future requirements. You can customize this behavior by using the collectionOptions attribute when integrating the account onboarding component.

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_account_collection 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_account_collection, it defaults to true and disable_stripe_user_authentication defaults to false. This value can only be true for accounts where controller.requirement_collection 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 you create an Account Session, enable account onboarding by specifying account_onboarding in the components parameter.

Command Line
cURL
curl https://api.stripe.com/v1/account_sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d account=
{{CONNECTED_ACCOUNT_ID}}
\ -d "components[account_onboarding][enabled]"=true \ -d "components[account_onboarding][features][disable_stripe_user_authentication]"=true

Caution

User authentication isn’t supported, so you must set features.disable_stripe_user_authentication to true in your server endpoint for any components when you create an account session.

After you create the Account Session and set up StripeConnect, you can render the Account onboarding component in your app:

account-onboarding.swift
class MyViewController: UIViewController, AccountOnboardingControllerDelegate { override func viewDidLoad() { super.viewDidLoad() // Optional. If you use CollectionOptions, make sure to follow our policy instructions. // let collectionOptions = AccountCollectionOptions() // collectionOptions.fields = .eventuallyDue // collectionOptions.futureRequirements = .include let accountOnboardingController = embeddedComponentManager.createAccountOnboardingController( // fullTermsOfServiceUrl: URL(string: "{{URL}}")!, // recipientTermsOfServiceUrl: URL(string: "{{URL}}")!, // privacyPolicyUrl: URL(string: "{{URL}}")!, // skipTermsOfServiceCollection: false, // collectionOptions: collectionOptions ) accountOnboardingController.delegate = self // Display the component in your app accountOnboardingController.present(from: self) } // MARK: - AccountOnboardingControllerDelegate func accountOnboardingDidExit(_ accountOnboarding: AccountOnboardingController) { print("User exited the onboarding flow") } }

When accountOnboardingDidExit triggers, retrieve the Account details to check the status of:

  • details_submitted
  • charges_enabled
  • payouts_enabled
  • Any other requested capabilities

If all required capabilities are enabled, you can take the connected account to the next step of your application.

See code reference .

Request access Private preview

Sign in to request access to the Connect embedded component mobile SDK in preview.

If you don’t have a Stripe account, you can register now.

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