With Stripe Connect, built on OAuth 2.0, you can now get access to your users' Stripe accounts. This enables two important use cases:
Payments for your users
If you're a platform, store builder, invoicing system, or anything else that helps users get paid, you can let your users accept credit cards instantly by having them connect or create a Stripe account.
You charge your user's customers directly and we deposit the payments into your user's Stripe account, minus Stripe fees and your optional application fee. Stripe will also handle transferring funds to your seller's bank account.
Unlike most OAuth implementations (like Facebook Connect or Sign In with Twitter), we've seamlessly added the process of creating a Stripe account right into our authorization flow so you won't have to worry about whether or not your users have Stripe accounts already.
When your users land back on your site, their account is ready to accept credit card payments. You can also retrieve their account status at any time with the account API resource.
If your user needs to set up a new account with Stripe, you can provide the best possible user experience by pre-filling the account form fields with information you already have, like email and name.
Pre-filling has no effect if your user already has an existing Stripe account.
Charges and recurring billing
After your user connects, you can charge credit cards, set up recurring billing, and take advantage of the rest of Stripe's full API on behalf of your user.
Since the charge is made on your user's Stripe account, money will be deposited directly into their bank account. You don't have to worry about aggregation restrictions, paying your users, dealing with chargebacks, or any other operational issues that typically arise when facilitating payments on behalf of others.
Collecting transaction fees
Collecting a fee on each transaction is as easy as passing an extra parameter to the charge creation API request. The fees will be deposited into your Stripe account (to be deposited on a 2-day rolling schedule).
Shared customers across all of your users
For some types of applications, like marketplaces, it's crucial to be able to reuse customer payment information across all of your sellers. You'll easily be able to do this by storing all of the payment data on your application's Stripe account, and accessing it when you're ready to make a charge.
Full access to Stripe data
If you're building an analytics service, accounting software, CRM system, or anything that builds on top of financial data, you can easily let your users share their Stripe data with you in just a couple of clicks.
Read-only scoped applications will by default show a Stripe Connect login screen instead of an account form when your users land on our site (presumably, your users will already own existing Stripe accounts). Your users will only need to click "Authorize" and confirm their account credentials.
If they don't own an existing Stripe account, they'll always have the option to create one right in the authorization flow, or you can force showing the account application by explicitly passing the
Full access to Stripe data
After your user has successfully given you access to their Stripe account, you'll be able to pull any data you'd like from the Stripe API.
You'll also receive all of your users' webhooks at a special application webhook url so you can keep up to date.