How to manage payments for a business with Stripe Connect
Implementing Stripe Connect solves the critical challenge of manual payment routing. By automating seller onboarding and commission splits, you turn a complicated financial mess into a smooth background process. Now your marketplace can scale, and your sellers get paid on time without you needing to manage every transfer yourself.
Smart way to handle payments that works automatically
What is Stripe Connect?
Stripe Connect is a platform that handles instant money split automatically. It turns your website into a smooth financial hub, ensuring the customer, the seller, and your business are all paid correctly right away.
How to use Stripe Connect
Let's say you are a platform owner who sells coffee from different producers and takes a commission for it. To improve the experience of using payments, you can use Stripe Express Account for coffee producers and Destination charges to organize convenient money transfers.
First of all, you need to accomplish these steps:
Create a Stripe Account
If you don't have a Stripe account, sign up at Stripe's website.
Follow the account setup process, providing necessary information about your business and banking details.
Enable Connect
Once your Stripe account is set up, enable Stripe Connect in your Dashboard.
Navigate to the "Connect" section and follow the prompts to configure your Connect settings.
Customize
Go to your Connect settings page to customize the visual appearance of the form with the name, color, and icon of your brand. Connect Onboarding requires this information.
Select the right account model
The key strategic decision is determining the type of connected account your sellers will use. For most modern platforms (like one connecting coffee producers to buyers), we recommend the Express Account model.
Stripe Connect account typesOnboarding flow for sellers
Bringing your sellers (producers) onto the system must be fast and intuitive. Stripe Connect simplifies the technical process into two API calls:
- Use the
/v1/accountsAPI to create a new account and get the account ID. You can prefill information on the account object for the user before you generate the account link. You must pass the following parameter:
type = expressCode example
public async Task<string> CreateExpressAccount(string productDescription, string email, string firstName, string lastName, string phone, AddressDto address, DateTime birthday, string industry) { var options = new AccountCreateOptions { Type = AccountType.Express, BusinessType = "individual", Country = address.Country, Email = email, Capabilities = new AccountCapabilitiesOptions { CardPayments = new AccountCapabilitiesCardPaymentsOptions { Requested = true }, Transfers = new AccountCapabilitiesTransfersOptions { Requested = true }, }, BusinessProfile = new AccountBusinessProfileOptions { ProductDescription = productDescription, Mcc = industry }, Individual = new AccountIndividualOptions { Email = email, Phone = phone, Address = new AddressOptions { Country = address.Country, City = address.City, Line1 = address.Line1, PostalCode = address.PostalCode }, FirstName = firstName, LastName = lastName, Dob = new DobOptions { Day = birthday.Day, Month = birthday.Month, Year = birthday.Year }, }, Settings = new AccountSettingsOptions { Payouts = new AccountSettingsPayoutsOptions { Schedule = new AccountSettingsPayoutsScheduleOptions { Interval = "manual" }, }, }, }; var requestOptions = new RequestOptions { ApiKey = key }; var service = new AccountService(); var account = await service.CreateAsync(options, requestOptions); return account.Id; }
After you’ve created the new account, check to see that it is displayed in the Dashboard of your Stripe account.
- Call the Account Links API with the accountId from the previous step to create a link for the account to onboard with.
Code example
public async Task<string> CreateAccountLink(string accountId, string returnUrl, string refreshUrl) { var accountLinks = new AccountLinkService(); var accountLinkOptions = new AccountLinkCreateOptions { Account = accountId, RefreshUrl = "https://test", ReturnUrl = "https://test", Type = "account_onboarding", }; var requestOptions = new RequestOptions { ApiKey = key }; var accountLink = await accountLinks.CreateAsync(accountLinkOptions, requestOptions); return accountLink.Url; }
- In the onboarding flow for your platform, redirect your user to the
urlreturned by Account Links.
Destination charge
Once a seller is connected, the Destination charge method handles the transaction and the fee split in a single action.
The customer pays your platform, and the funds are instantly transferred to the seller's connected account. Your platform commission can be managed two ways:
- Application fee: The full amount transfers to the seller, and a specific fee is returned to your platform account.
Code example
StripeConfiguration.ApiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; var options =newPaymentIntentCreateOptions {Amount= 1000,Currency= "usd",AutomaticPaymentMethods=newPaymentIntentAutomaticPaymentMethodsOptions {Enabled=true, },ApplicationFeeAmount= 123,TransferData=newPaymentIntentTransferDataOptions {Destination= "{{CONNECTED_ACCOUNT_ID}}", }, }; var service =newPaymentIntentService(); service.Create(options);

- Transfer amount: You send a reduced amount to the seller, meaning your commission is retained by the platform immediately.
Code example
StripeConfiguration.ApiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; var options =newPaymentIntentCreateOptions {Amount= 1000,Currency= "usd",AutomaticPaymentMethods=newPaymentIntentAutomaticPaymentMethodsOptions {Enabled=true, },TransferData=newPaymentIntentTransferDataOptions {Amount= 877,Destination= "{{CONNECTED_ACCOUNT_ID}}", }, }; var service =newPaymentIntentService(); service.Create(options);

Customizing payouts
While the default payout is 7 days, Connect provides fine-grained control over cash flow.
Setting the payout schedule to Manual allows your sellers to manage their own funds. Sellers can simply click a button in their Express dashboard to initiate a transfer to their bank account.
To enable this feature, your platform code must:
- Set the payout interval to manual during Express account creation.
- Periodically, use the Balance API to check the seller's available funds.
- Trigger the final transfer using the Payouts API.
Even with a manual setting, the platform must pay out the funds within a legally defined period based on the seller's country, after which the payout will occur automatically to ensure compliance.
Conclusion
Implementing Stripe Connect solves the critical challenge of manual payment routing. By automating seller onboarding and commission splits, you turn a complicated financial mess into a smooth background process. Now your marketplace can scale, and your sellers get paid on time without you needing to manage every transfer yourself.



