/bubble-tutorials

How to build split payments in Bubble

Learn how to build secure split payments in Bubble with step-by-step guidance, best practices, and tools to streamline payouts.

Matt Graham, CEO of Rapid Developers

Book a call with an Expert

Starting a new venture? Need to upgrade your web or mobile app? RapidDev builds Bubble apps with your growth in mind.

Book a Free Consultation

How to build split payments in Bubble

The short version: In Bubble, you build split payments using Stripe Connect. Bubble’s built‑in Stripe plugin does not support Connect, so you must use the API Connector to create Connected Accounts, generate onboarding links, and use PaymentIntents with transfer\_data or Transfers. Bubble only passes data; Stripe does the splitting.

 

What “split payments” means in Bubble

 

You charge a customer once, but Stripe automatically distributes the money:

  • You (the platform) take your fee.
  • Another user (a seller/service provider) receives the rest via a Connected Account.

 

How you actually build it in Bubble

 

Step A — Create Stripe Connected Accounts

  • Use API Connector to call Stripe’s /v1/accounts with type=express.
  • Store the resulting account ID (e.g. acct\_123) in the Seller’s User record.
  • Generate an onboarding link via Stripe’s /v1/account\_links and redirect the user to complete onboarding.

 

// Create connected account
curl https://api.stripe.com/v1/accounts \
  -u sk_test_xxx: \
  -d type=express

 

Step B — Create a PaymentIntent that splits money

 

You charge the buyer normally, but include transfer\_data[destination] so Stripe sends the seller’s portion directly to their Connected Account.

  • Amount is always in cents.
  • Your fee is controlled with application_fee_amount.

 

// PaymentIntent that splits payment
curl https://api.stripe.com/v1/payment_intents \
  -u sk_test_xxx: \
  -d amount=10000 \
  -d currency=usd \
  -d application_fee_amount=1500 \
  -d transfer_data[destination]=acct_123

 

Step C — Confirm the PaymentIntent from Bubble

 

Client-side confirms the card payment (Stripe.js embedded via Bubble plugin or Stripe Checkout Session with Connect params). After confirmation, Stripe automatically routes funds.

 

Step D — Use webhooks inside Bubble

 

Create a Backend Workflow endpoint to receive events like payment\_intent.succeeded. Store the final status in your database so your app knows when to release content or mark the order paid.

  • Webhook endpoint: POST /api/1.1/wf/payment\_webhook

 

Important notes

 

  • Stripe Connect is the only reliable real split‑payments solution for Bubble.
  • Bubble’s default Stripe plugin cannot perform split payments.
  • Test everything using Stripe Test Mode before going live.

Explore More Valuable No-Code Resources

How to integrate Bubble.io with Git?

Learn how to seamlessly integrate Bubble.io with Git through our comprehensive step-by-step guide. Perfect for beginners and professionals.

Explore

How to integrate Bubble.io with Reddit Ads?

Learn how to seamlessly integrate Bubble.io with Reddit Ads using our easy step-by-step guide. Boost your ad management today!

Explore

How to integrate Bubble.io with AWS S3?

Explore our step-by-step guide on integrating Bubble.io with AWS S3, making your app development process more efficient and secure.

Explore

How to integrate Bubble.io with Lucidchart?

Follow our step-by-step guide to seamlessly integrate Bubble.io with Lucidchart, enhancing your workflow & productivity.

Explore

How to integrate Bubble.io with Kentico?

Learn how to seamlessly integrate Bubble.io and Kentico with our comprehensive, easy to follow step-by-step guide.

Explore

How to integrate Bubble.io with Box?

Discover easy-to-follow steps for integrating Bubble.io with Box. Boost your workflow and secure your files seamlessly today.

Explore

Stuck in Bubble.io? We’re here to help!

Fix broken workflows | Optimize logic | Boost performance | Scale with confidence

4.9
Clutch rating 🌟
600+
Happy partners
17+
Countries served
190+
Team members

By clicking “Accept”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our Privacy Policy for more information.

Cookie preferences