Migrating accounts to Stripe
Start processing accounts on Stripe without disrupting payments.
Stripe enables you to migrate your existing connected accounts along with your payment and customer data. Doing so allows you to continue to collect payments and pay out or enable other businesses to accept payments directly. To successfully bring your existing platform business to Stripe, you need to:
- Create a migration plan and timeline
- Update your integration for connected accounts
- Create and onboard accounts
- Handle outstanding and ongoing requirements
- Migrate payment and customer data to Stripe
Create a migration plan
A successful migration to Stripe includes a migration plan, a timeline, and KYC information for connected accounts, as well as payment and customer data.
Connected accounts must onboard to Stripe, which requires sending Stripe Know Your Customer (KYC) data for each account. Stripe’s requirements can require collecting additional information from your accounts. Perform an analysis to understand what data has been collected with your previous provider and what data Stripe requires. Stripe verifies KYC data before activating connected accounts. Monitor account verification status using the account.updated event or the Retrieve Account API. Accounts that fail to verify require action before they’re activated.
Include a hard cutover date for payment data after onboarding accounts to Stripe. Payment and customer data requires a PAN import as part of the cutover. We recommend that you import accounts in batches.
Update your integration
Your application can require changes as part of the integration updates to migrate to Stripe. For example, consider any changes to your connected accounts’ usage of your platform, such as pricing updates. Stripe recommends communicating any changes to your accounts ahead of time.
Stripe terms of service agreement
Your connected accounts must accept the Stripe terms of service before they’re activated.
For accounts where Stripe is responsible for collecting updated information when requirements are due or change (including Standard and Express accounts), the account accepts Stripe’s terms of service as part of the onboarding flow.
If your platform is responsible for collecting updated information from a connected account (including Custom accounts) when requirements change, you can wrap Stripe’s terms of service in your own terms of service. We recommend placing terms of service acceptance at the end of the onboarding flow, but you can also have it at the start if that makes more sense for your business. When creating or updating connected accounts, record acceptance of the updated Terms of Service information to send to Stripe, and communicate that to the accounts.
Onboard connected accounts to Stripe
Stripe offers different levels of onboarding support for your connected accounts. Build an onboarding flow for your connected accounts using any of the following methods:
Method | Pros | Cons |
---|---|---|
API-based onboarding | Exercise full control over your own UI |
|
Embedded onboarding new |
| Limited control over the flow logic |
Stripe-hosted onboarding | Lowest effort integration |
|
Create and onboard accounts
The following is an overview of the process:
Establish account requirements
The following factors affect the onboarding requirements for your connected accounts:
- The origin country of the connected accounts
- The service agreement type applicable to the connected accounts
- The capabilities requested for the connected accounts
- The business type (for example, individual or company) and company.structure (for example, public corporation or private partnership)
Use the interactive form to see how changing these factors affects the requirements.
Requirements form
Create the connected account
For each account to be migrated to Stripe, create an associated Account.
Handle outstanding and ongoing requirements
When the connected account’s data is submitted, Stripe verifies it. This process might take minutes or hours depending on the nature of the verification required. During this process, the capabilities you requested have a pending status.
Review status
You can retrieve the status of your connected account’s capabilities by:
- Inspecting the Account object’s capabilities hash for the relevant capability.
- Requesting capabilities directly from the Capabilities API and inspecting the status of the relevant capability.
- Listening for
account.
events in your webhook endpoint and inspecting theupdated capabilities
hash for the relevant capability.
After verifications are complete, the capability becomes active
and available to the connected account. Account verifications run continuously, and if a future verification fails, a capability can transition out of active
. Listen for account.
events to detect changes to capability states.
Confirm that your Connect integration is compliant and operational by checking that the account’s charges_
and payouts_
are both true. You can use the API or listen for account.
events. For details on other relevant fields, check the account’s requirements hash. You can’t confirm the integration based on a single value because statuses can vary depending on the application and related policies.
- charges_enabled confirms that your full charge path including the charge and transfer works correctly and evaluates if either
card_
orpayments transfers
capabilities are active. - payouts_enabled evaluates whether your connected account can pay out to an external account. Depending on your risk policies, you can allow your connected account to start transacting without payouts enabled. You must eventually enable payouts to pay your connected accounts.
You can use the following logic as a starting point for defining a summary status to display to your connected account.
Handle verification errors
Handle verification failures differently depending on your onboarding flow.
Note
You can’t use the API to respond to Stripe risk reviews. You can enable your connected accounts to respond using embedded components, Stripe-hosted onboarding, or remediation links. You can also use the Dashboard to respond to risk reviews on behalf of your connected accounts.
Migrate payment and customer data to Stripe
After your connected accounts are created on Stripe, request a PAN data import, which migrates your payment and customer data for use on Stripe.