Identity verification requirements are updated as laws and regulations change around the world. If you’re building your own onboarding flow to onboard accounts, you must plan on reviewing and updating onboarding requirements at least every six months. To avoid this maintenance obligation, use Connect Onboarding for Custom Accounts.
A Custom Stripe account is almost completely invisible to the account holder. You, the platform, are responsible for all interactions with your users and for collecting all the information needed to verify the account.
With Custom accounts you can modify the connected account’s details and settings through the API, including managing their bank accounts and payout schedule. Since Custom account holders can’t log into Stripe, it’s up to you to build the onboarding flow, user dashboard, reporting functionality, and communication channels.
Although a simple API call creates a Custom account, there are three steps to consider for each account you create:
- Properly identify the country to use.
- Create the account.
- Move onto the identity verification process.
But first, ensure you meet the minimum requirements.
French platforms must use account tokens, which are an alternative to the agent model for platform PSD2 compliance. The key benefit of tokens for French platforms is that information is transferred from the user directly to Stripe. Not having to store PII data is still a benefit, but not necessarily a requirement. For platforms in other countries, account tokens are optional but recommended.
Requirements for creating Custom accounts
To use Custom accounts, you must meet all of these requirements:
- Minimum API version: You must be using an API version at least as recent as 2014-12-17. You can view and upgrade your API version in the Dashboard if needed.
- Terms of Service update: Creating Custom accounts requires an update to your terms of service, as it must include a reference to Stripe’s services agreement. Stripe recommends that you consult with your attorneys on whether you should update your terms acceptance language to include reference to Stripe’s terms.
- Handling information requests: Instead of requesting information—such as a Social Security Number or passport scan—directly from your user, Stripe requests the information it needs from you. You must collect this information from your user and provide it to Stripe. Otherwise, Stripe may disable payouts to the connected account.
- Platform in a supported country: Platforms in Australia, Austria, Belgium, Brazil, Bulgaria, Canada, Cyprus, the Czech Republic, Denmark, Estonia, Finland, France, Germany, Greece, Hong Kong, Hungary, India, Ireland, Italy, Japan, Latvia, Lithuania, Luxembourg, Malta, Mexico, the Netherlands, New Zealand, Norway, Poland, Portugal, Romania, Singapore, Slovakia, Slovenia, Spain, Sweden, Switzerland, Thailand, the United Kingdom, and the United States can create Custom accounts for any country Stripe supports. Contact us to be notified when platforms in your country can use Custom accounts.
- Countries that don’t support self-serve: Due to restrictions that apply when using Connect in the United Arab Emirates, India, and Thailand, platform users in these countries can’t self-serve Custom Connect accounts. To begin onboarding for Custom Connect Accounts in these countries, contact us.
- Platforms in the UAE: Platforms in the UAE can only use Custom accounts based in the UAE with the following charge types: destination_charges and separate charges and transfers. Destination charges using the on_behalf_of attribute are not yet supported for UAE platforms.
- Vetting for fraud: Your platform is ultimately responsible for losses incurred by Custom accounts. To best protect against this, you need to scrutinize all accounts that sign up via your platform for potential fraud. Refer to our best practices guide for more information.
Note there’s an additional cost for active Custom accounts. A Custom account is considered active if it has received at least one successful payout in a given month.
After an account is created, all notifications about changes to the account are sent to your webhooks as
account.updated events. Provide your Connect webhook URL in your account settings and then watch for these events and respond to them as needed.