This guide walks you through how to accept a payment, route part or all of the funds to your seller or service provider’s bank accounts, and optionally move a portion into your own balance. It also walks you through how to top up your platform’s balance using your own money.
For demonstrative purposes, the guide assumes you’ll use either Express or Custom accounts. If you’re interested in Standard accounts, refer to Enable other businesses to accept payments directly for further details.
You’ll complete the following steps:
- Create a connected account to represent your seller or service provider in the API.
- Accept a payment for the connected account.
- After that, you can configure the way that your users get funds paid out to their external accounts.
- Lastly, you can complete and customize your integration. This includes managing connected accounts in the dashboard, testing your integration, and exploring several other features that Connect offers.
- In the Connect tab of your dashboard, register your platform by clicking Get started.
- Activate your account by providing some details about your business.
- Fill out your platform profile. Stripe uses this information to provide you an optimal integration path that’s based on your specific business model.
Because this guide covers Connect very broadly, it is less in depth than our other guides. We recommend starting with the more specific guide for your use case if you’re doing one of the following:
1 Create a connected account
When a user (a seller or service provider) signs up on your platform, create a user Account (known as a connected account) so you can accept payments and move funds to their bank account. Connected accounts represent your user in Stripe’s API and help facilitate the collection of onboarding requirements needed so Stripe can verify the user’s identity.
The three different types of connected accounts are:
- Standard account: A Stripe account controlled directly by the account holder (i.e., your platform’s user). A user with a Standard account has a relationship with Stripe, is able to log in to the Stripe Dashboard, can process charges on their own, and can disconnect their account from your platform.
- Express account: An account where Stripe handles user onboarding, account management, and identity verification. Your platform can manage payout schedules, customize the flow of funds, and control branding.
- Custom account: This account is almost completely invisible to the account holder and Stripe will have no direct contact with them. Custom accounts require the most integration effort and are suitable for platforms who want to control the entire user experience.
After you fill out the platform profile, a connected account type is recommended to you. This recommendation is the most straightforward path for most users.
Capabilities define what your connected account is allowed to do and track whether they’ve met the verification requirements to do so. Connected accounts with the transfers capability can accept transfers of funds from your platform, while connected accounts with the card_payments capability can directly process payments without the funds being routed through your platform. To know which capabilities are recommended for your business model, refer to your completed platform profile.
Onboarding Express accounts
If you’re onboarding Express accounts, Stripe collects all the user requirements information for you (excluding any fields you choose to prefill). For instructions on how to onboard Express accounts, refer to Using Connect with Express accounts.
Onboarding Custom accounts
If you’re onboarding Custom accounts, Stripe can collect the user requirements information for you with Connect Onboarding. Create the connected account, providing any required fields you already have in the account creation request. After that, create an account link and redirect your user to that account link so they can provide the rest of the required information. Make sure to set up a webhook to collect any new requirements that become due.
Stripe does not recommend that you build a completely custom onboarding flow. Identity verification requirements are updated as laws and regulations change around the world. If you’re building your own onboarding flow, you must plan on reviewing and updating onboarding requirements at least every six months to ensure you remain compliant. Some platforms create their own flow to collect basic requirements but use the Stripe-hosted form to collect edge-case requirements when initial verification fails. If you decide to build your own flow, start with Identity verification for Custom accounts.
2 Accept a payment
To know which charge type is recommended for your business model, refer to your completed platform profile. If you’re interested in adding funds to your platform’s balance from a linked bank account, refer to Topping up your platform account; afterward, you can skip the next paragraph and learn more about fulfilling customer purchases.
If you’d like to use Stripe’s hosted payment form, follow our guide for using Checkout with Connect. If you’re building your own payment form, use Stripe Elements for your frontend and refer to our charge creation guide for your backend. Both of these resources provide information on how to build your user interface with Stripe, route funds to your connected account’s balance, take an application fee, and refund customers.
If you’re using Checkout, read our fulfillment guide for Checkout to learn how to synchronously or asynchronously monitor for completed payments to then enable your sellers or service providers to fulfill purchases.
If you’re not using Checkout, use webhooks to hook into any business logic on your end that you need to in order to fulfill the purchase, which will have different event types.
3 Pay your users
Once the funds from the payment have settled and your user’s connected account has a positive Stripe balance, you can pay out those funds to their bank account.
Collecting bank account information
For Express accounts, Stripe is responsible for collecting the user’s bank account information so you don’t have to.
If you’re using Custom accounts, use Stripe Elements to collect the information on the frontend and use the Accounts API on the back-end to store it. Set up a webhook so that you can request new information from your user if a payout fails.
No action is needed. By default, funds that have settled in your connected accounts’ balances are paid out on a daily rolling basis. However, if you’d like you can configure your connected accounts’ automatic payout schedules, trigger payouts manually instead of automatically, or pay out instantly.
4 Next steps
At this point you should have a working integration! After you’ve finished working through this guide you should see a connected account and balance in your account dashboard
The Connect-specific testing resource provides tokens to help simulate flows for connected accounts and onboarding, payouts, and top-ups. To test your payments and disputes flow there are a number of test cards available to simulate payment outcomes.
The above steps are the minimum required in order to build a working Connect integration. There are several other steps you made need to take, depending on your business needs:
Manage connected accounts
- Use your Stripe dashboard
- Best practices, including detecting fraud and providing user support
- Set merchant category codes
- Integrate with the Express dashboard
- Collect information required for U.S. taxes