Skip to content
← Back to the blog
integrationssoftware development

Marketplace payments with Stripe Connect: the basics

How Stripe Connect works for a marketplace: connected accounts, the three charge types, taking a platform fee, onboarding sellers and who covers refunds.

By Devonauts Team5 min read
Leer en español →
A customer holds a card over a payment terminal held out by a shop seller

Stripe Connect lets a marketplace take a payment from a buyer, keep a platform fee and send the rest to the seller, without the platform building its own payout system. Each seller gets a connected account that Stripe verifies through an onboarding flow. Each payment uses one of three charge types (direct charges, destination charges, or separate charges and transfers), and that choice decides whose name appears on the buyer's statement, who pays Stripe's fees and whose balance covers refunds and disputes.

This guide explains the pieces in plain terms, how to choose a charge type, how seller onboarding works today and the mistakes that are expensive to undo later.

What are the parts of a Connect integration?

Stripe lists five: your app, your platform's Stripe account, the connected accounts (your sellers or service providers), payments, and payouts. Your platform uses its own API keys to create payments and act on behalf of connected accounts.

For new platforms, Stripe now steers you to the Accounts v2 API. Instead of picking a fixed account type, you give each account configurations: merchant to accept payments, recipient to receive transfers from your platform, and customer if the same account also pays you. The older Standard, Express and Custom account types still work for existing platforms, but Stripe's docs mark them as legacy and tell new platforms to use Accounts v2.

Which charge type should a marketplace use?

This is the most important decision, and it's hard to change once money is flowing.

Direct chargesDestination chargesSeparate charges and transfers
Buyer paysThe seller's accountYour platformYour platform
Typical fitSaaS for independent businessesOne seller per order, platform-branded serviceOne cart with several sellers, or seller unknown at payment time
Stripe fees come fromYou choose: seller or platformPlatformPlatform
Refunds and chargebacks reduceSeller's balancePlatform's balancePlatform's balance
Your cutApplication feeKeep part of the amount or an application feeTransfer less than you charged

Stripe's own examples: an e-commerce or SaaS platform for independent sellers fits direct charges; a rideshare app or a site matching contractors with homeowners fits destination charges; a food delivery app splitting one order between several restaurants fits separate charges and transfers.

For a typical early marketplace, where a buyer books or buys from one seller on your branded site, destination charges are a common starting point. The buyer deals with your brand, you control the experience, and you decide how much of each payment goes to the seller.

What does "the platform covers refunds" mean in practice?

With destination charges and separate charges and transfers, refunds and chargebacks come out of your platform's balance first. To recover the seller's share you reverse the transfer you made to them. If the seller has already been paid out and their balance is empty, the loss can stay with you. Plan for this before launch: hold payouts for a while after a service is delivered, keep a reserve, and write your refund policy into your seller terms. Our guide on refunds and disputes in Stripe covers how disputes play out.

How do sellers get onboarded?

Stripe has to verify every connected account before it can accept payments or receive payouts. You choose how that verification looks:

  1. Stripe-hosted onboarding. A Stripe web form with your name, colour and icon, localised for Stripe's supported countries. The least work.
  2. Embedded onboarding. A component inside your app, which you can theme, with limited Stripe branding.
  3. API onboarding. You build the whole form yourself. Stripe notes that you must review and update onboarding requirements at least every 6 months.

Stripe recommends the first two because they update automatically when compliance requirements change. For a small team, that's decisive: requirements differ by country and change over time, and API onboarding makes keeping up your job.

In your app, store the connected account ID on the seller's record and listen for account update events, so you know when a seller can actually accept payments and receive payouts. Don't list a seller as bookable until their account is ready.

How do you take a platform fee?

With destination charges, you either transfer less than the full amount to the seller, or transfer the full amount and collect an application fee from it. With direct charges you set an application fee on each charge, which goes to your platform's balance when the seller is paid. Calculate the fee on your server from your own rules, never from a value the browser sends, for the same reason you never trust a price from the frontend. Our Checkout vs Payment Element guide covers that mistake.

What usually goes wrong in AI-built marketplaces?

  • Paying sellers from the platform's balance by hand instead of using transfers tied to each charge. The accounting quickly stops adding up.
  • Mixing charge types by accident, for example some payments created on the seller's account and some on the platform's, so refunds land in different places.
  • No plan for the seller who disappears. A seller paid out yesterday whose buyer disputes today is the platform's problem with indirect charges.
  • Testing only the happy path. Stripe's docs note a sandbox limitation for Connect: you can't create connections between a platform's sandbox and connected account sandboxes. Test onboarding, a refund, a dispute and a payout delay in whatever test setup Stripe offers for your platform.

Also check product compatibility before you commit. Stripe's comparison shows that Metronome doesn't support Connect, while basic usage-based billing does, which matters if you plan usage-based pricing.

Quick answers

Do I need Connect to sell my own product? No. Connect is for paying out other people. A single business selling its own subscriptions only needs regular Stripe payments.

Can sellers have their own Stripe Dashboard? Yes, depending on how you configure their accounts. Accounts v2 lets you set the Dashboard access each account gets.

Is Connect available in every country? No. Availability depends on your platform's country, and cross-border payouts have their own eligibility rules. Check Stripe's Connect country list for your case.

Can I change charge type later? It's possible, but it affects refunds, reporting and seller terms. Choosing carefully at the start saves a migration.

Building a marketplace and want the money flow right first time?

Charge type, onboarding and refunds are much cheaper to get right before the first payout than after. Our Stripe payments service and custom software development cover Connect builds. You can also run the free app health check, read Stripe's guide to Connect charge types, or describe your marketplace to us.

Still stuck with your app?

Run the free health check on your app's URL, or get the $299 App Rescue Audit: a senior engineer reviews the code and sends you a written report in 2 business days.