Stripe for marketplace

Hi Bubblers !

I am currently exploring a new idea and designing it with Bubble.
I’d like to be sure what I have in mind is possible especially regarding payment and stripe plugin.

What I am building is a marketplace, where people can buy services to others. I have two question regarding the Stripe plugin :

  1. In the process of booking/buying the service, I want that the user pay the service when booking it.
    And the person who do the service, to be paid the day after they did the service.
    So that the platform or stripe account « hold » the money for several days. Can someone confirm me this is possible ?

  2. In the case describe above, it is possible that someone cancel a demand or an offer.
    Is it possible to refund the person who paid ?
    And / or, is it possible to process a workflow where the payment is effective only when the person who do the service confirm it will.
    For example : I see a service offer -> I book it -> I enter my payment infos -> the service provider accept or deny the demand within 24h -> I only pay when the demande is accepted. Is that possible ?

Thanks a lot for your help !

Stripe doesn’t provide escrow services so they will NOT retain the money.

What they do is check if the buyer’s credit card has funds and freeze them until the transaction is marked as complete. Once marked as completed Stripe will release the funds from the credit card to the seller.

You have up to 90 days to mark the transaction as completed. If it isn’t Stripe unfreezes the amount and doesn’t proceed with the payment to the seller.

Check more info about Stripe Connect product.

Ok !
Many Thanks !

So if I am well understanding, What I need to di works perfectly.
Buyers enter credit card infos.
Once the service provider confirm the money is sent to him.
If I never confirm the money will never be sent. Right ?

What if there is a cancellation ? Is it possible to « unfreez » ?

I suggest you go through Stripe Connect docs because these questions will also depend on the type of the account you open there: standard, express or custom.

Answering your questions. In short, yes. But there is a lot more to it.

I’m actually creating something very similar and this part of the process takes a whole lot of work (to which I’m still figuring some parts out).

Bubblers correct me if I’m wrong, but here’s how I see Stripe Connect working in a set up like this. I’ve also added info about how my app works. A few notes before I start my main rant: I’m using Stripe Connect Custom. If you’re planning on using Standard or Express, you’ll need to build out a way for Sellers (i.e. the persons doing the work) to onboard. For some things you want to do, Standard edition may not work.

Registering a person as a buyer is pretty easy, as not much in the way of verification is needed. The seller however needs to add information such as bank account (which varies according to country), address, telephone, ID documents, date of birth etc. You’ll also need to encrypt files with a separate Stripe token before uploading them (ensuring they are encrypted correctly).
I’m currently working with this plugin, which takes a lot of the headache away: 💳 Stripe Marketplace Express Checkout - New Plugin from Zeroqode

So the way I have my app working is as follows:

Sellers (people getting paid for the work they do)

  1. They sign-up
  2. They go through on-boarding for my app
  3. They hit the dashboard and are asked for bank info but can browse the site freely. They are asked for bank info if they try to apply for a job
  4. When adding bank info, they are taken to a page containing fields for all fields required for verification
  5. Once complete, an Stripe “Connect account” exists and they can apply for jobs

Buyers (the people doing the hiring

  1. App on-boarding is the same
  2. They are only asked for credit card details once they hire someone
  3. The buyer and seller are connected in Stripe Connect
  4. A “Payment intent” is sent to Stripe and the payment is taken by Stripe

Technically at this point, the funds are placed into the Sellers “Connected account”. You can set the frequency that this account pays out (immediately, next day etc.). This functionality is only possible with Express or Custom accounts (see more: https://stripe.com/docs/connect/payouts).

Refunds are possible, but only if the balance of the sellers Connect account has funds available. For this reason, you should consider your approach of scheduled payouts. Is paying out the next day enough time for a customer to trigger a refund? Read more about refunds here: https://stripe.com/docs/connect/charges#refund-creation
You could process a workflow that allows an unhappy users to trigger a refund.

Hopefully that gives you a little background and good footing to start.

1 Like

Hi @mattb, this sounds like a similar flow as what I have in my app, however I’ve noticed it has created some problems of its own.

Primarily, that those registered as sellers and their profiles are not selectable/viewable by the buyers unless the sellers immediately onboard with Stripe as soon as they sign up in my marketplace. The transaction through the marketplace is a secondary feature for me.

I’m wondering if you know how or have come across a thread discussing how you can defer Stripe onboarding so that the bubble marketplace can be fully available to everyone until they later decide that they want to receive payment through the marketplace?

Thanks and hope to hear back from you!

Will

Hi. Unfortunately I can’t help you out with that as I ended up scrapping the whole Stripe system from my app and offering it for free!