Bubble.io Stripe Connect: Building a Marketplace or Platform With Payments
Standard Stripe charges customers. Stripe Connect distributes funds to other businesses. A complete guide to Connect account types, the four-step marketplace payment implementation, and the concepts every Bubble marketplace builder must understand.
The Difference Between Stripe and Stripe Connect
Standard Stripe integration lets your product charge customers. Stripe Connect lets your product collect payments on behalf of other businesses and distribute funds to them. Marketplaces (Airbnb, Upwork, Etsy), platform SaaS (a fitness software that lets gym owners charge their own members), and agency tools (an agency platform that bills clients and pays freelancers) all need Stripe Connect. If money flows through your platform to other people, Stripe Connect is what you need.
Choosing the Right Model
| Account Type | How It Works | Best For | Onboarding Complexity |
|---|---|---|---|
| Standard | Connected account uses their own Stripe dashboard. Platform charges a platform fee on each transaction. | Marketplaces where sellers are established businesses | Low — sellers redirect to Stripe’s hosted onboarding |
| Express | Stripe manages the dashboard and payouts. Platform has more control than Standard. | Gig economy platforms, freelancer marketplaces | Medium — Stripe’s hosted onboarding with your branding |
| Custom | Full control over UX. Platform manages all Stripe interactions. Complex compliance responsibility. | Embedded finance, white-label financial products | High — build the entire onboarding flow yourself |
The Implementation Pattern
// Call Stripe API to create a Connect account
POST https://api.stripe.com/v1/accounts
type=express
country=GB (or relevant country)
email=provider’s email
// Store the returned account ID on the Provider record
Provider
: stripe_connect_id = returned account.id
POST https://api.stripe.com/v1/account_links
account=Provider’s stripe_connect_id
refresh_url=https://yourapp.com/connect/refresh
return_url=https://yourapp.com/connect/complete
type=account_onboarding
// Redirect provider to returned URL to complete Stripe onboarding
account.updated
If
account.charges_enabled = true AND payouts_enabled = true
Update Provider
: connect_status = Active
Send email to provider
: ‘You can now receive payments’
POST https://api.stripe.com/v1/payment_intents
amount=10000 (in pence/cents, e.g. £100.00)
currency=gbp
application_fee_amount=1000 (10% platform fee = £10)
transfer_data[destination]=Provider’s stripe_connect_id
// Stripe automatically splits: £90 to provider, £10 to platform
What Every Bubble Marketplace Builder Must Understand
Platform Fees
Your marketplace takes a percentage of every transaction. Set as application_fee_amount in the payment intent. Stripe deducts this before transferring the remainder to the connected account. Track fee income separately for your P&L.
Charges Enabled vs Payouts Enabled
A connected account must have both charges_enabled (can receive payments) and payouts_enabled (can receive bank transfers) before it can transact on your platform. Check both fields in your webhook handler.
Refunds on Connect
Refunding a Connect payment returns the full amount to the customer AND reclaims the platform fee. The connected account’s balance decreases accordingly. Build refund workflows that handle Connect refunds correctly.
KYC Compliance
Stripe handles Know Your Customer verification for Express and Standard accounts. Never accept payments on behalf of a connected account that has not completed onboarding. Check charges_enabled before any transaction.
Build Your Bubble.io App With Expert Help
Pakistan’s leading Bubble.io development team. Multi-tenant SaaS architecture, Stripe billing, and full product builds done right from day one.
