Templates Plugins Courses

Stripe marketplace - On Behalf

When I call Create session and set the field OnBehalf to the SellerID, I get an error, but if I set this value in the SellerID field all works.

Problem is when I do the SellerID, they pay the fees where for OnBeHalf has us paying the fees which is what I want to happen.

Hi @peter3,

Thanks for reaching out. Perhaps this forum thread can help you Marketplace plugin issue because same questions were addressed. You just need to use the Create session with the fields to be filled in as per mentioned forum thread, as well as Go to checkout afterwards. And use the Seller ID in both places.

You can also check our demo and its editor, to preview how everything works.

However, if you still encounter the same issues, please share screenshots of your workflows with all property editor settings, the resulted error, the error from your Stripe Logs, as well as describing what you are trying to accomplish with these actions. This way, we can have a better input to provide working solutions asap.

Best,
Alex

I have had both fields filled in and I get this error.

Stripe message sent.
{ "payment_method_types": { "0": "card" }, "success_url": "...", "cancel_url": "...", "mode": "payment", "customer_email": "[email protected]", "line_items": { "0": { "quantity": "1", "price_data": { "unit_amount": "500", "currency": "aud", "product_data": { "name": "MentorME", "description": "MentorME powered by being actioned by ...." } } } }, "payment_intent_data": { "application_fee_amount": "100", "capture_method": "manual", "on_behalf_of": "acct_1HThXPL.....", "receipt_email": "[email protected]", "setup_future_usage": "off_session" } }

Have inserted … for identify data.

{ "error": { "message": "The 'payment_intent_data[on_behalf_of]' param cannot be set to your own account.", "param": "payment_intent_data[on_behalf_of]", "type": "invalid_request_error" } }

This is shown in the connected account stripe console.

I have filled in Both SellerID fields. It may be I’m using manual as I’m only charging the client(current user) on completion of the service.

I then call checkout SCA Create Session but don’t get to that point in the process.

If I don’t fill in OnBehalf, then it works 100%, but then the seller gets charged the fees.

Thanks @peter3 for feedback.

We are going to check on it with our dev team and get back to you with a reply asap!

Best,

You are right, @peter3

It is not necessary to complete the On Behalf field, but if you want to make it work properly, please check our demo and its editor to preview all workflows, because we have multiple use cases for creating a session, so you can simply replicate the workflows on your side.

Best,

The reason I’m wanting to use the OnBeHalf model is it then makes us pay the Stripe fees, not the Seller.

I’ve been through your demo and I have this all working with no problems if I’m willing to have the Seller pay the fees, but I’m not willing to do that as we want the Seller to now exactly what they are getting in a sale always which is 80%.

You also don’t have this case in the demo as I can see and I 've been through all the examples.

Can you tell me which one allows you to a sale, put on Hold (manual) with a Seller and the platform paying the fees.

I already have another problem dealing when the sale is cancelled later or the price is changed and have ended up writing my own backend code for this case. You have it in your list f things to do.

My Business model is a clients asks for Service from the seller for an estimated price. Once the seller completes the service they can change the price down, or do for free. We pay all fess so they always know they are getting 80% of the fee being charged.

Thanks @peter3 for feedback.

In this case, you’ll just need calculate the fees accordingly if you want your sellers to receive complete 80% and you’ll take care of the fees. You can check Stripe’s transaction fees + some processing fees so you can lower the fees in your app. This way, your seller can get the 80% without actually being charged for fees as well.

Hope it helps.

If you use the OnBehalf model, then it’s auto worked out for you. The fees can be different depending upon the deals you have with Stripe and the location of the buyer.

https://stripe.com/docs/connect/destination-charges

Can you run through the situation I have covered and see what happens.

Thanks @peter3 for feedback.

Sorry for any misunderstanding. The on_behalf_of parameter is the ID of the connected account to use as the business of record for the payment. When it is set , Stripe automatically:

  • Settles charges in the country of the specified account, thereby minimizing declines and avoiding currency conversions
  • Uses the fee structure for the connected account’s country
  • If the account is in a different country than the platform, the connected account’s address and phone number shows up on the customer’s credit card statement (as opposed to the platform’s)

Unfortunately, this parameter doesn’t change anything related to the fee amount and who is paying it. From every transaction, Stripe will always take a cut no matter who is charged, who is receiving the money or what type of transaction it is.

So as previously mentioned, the solution will be to set a smaller app fee so the seller won’t feel the Stripe fees.

Thanks :pray:

I think you are reading this wrong.

OnBehalf means the owner of the platform pays the stripe fee, not the connected account and that is what I’m wanting and is reflected correctly in the diagram above.

But when I insert the SellerID into the OnBehalf I get the error message. What I’m asking is what ID do I insert into this field.

ie, please tell me how to get OnBehalf to work or tell me which button shows this working as have looked at all and found none with OnBehalf set with a value.

Hi @peter3,

Please let us check on it with our dev team if we can do anything about it at this point, to see whether or not it is possible to accomplish what you are looking into. I’ll get back to you with a reply asap. :pray:

Thanks for your patience.

@peter3

Unfortunately, this feature is not intended to accomplish what you are looking into. As explained previously, it just specifies the business of record for the payment. The money therefore are charged by the platform and then you can transfer them to a seller. But you actually pay the stripe fees 2 times doing so. So as explained above, this parameter is not what you need I’m afraid. You just need to lower the app fee if you, as a platform, want to pay the stripe fees. It’s the most logic thing to do and you pay stripe fees only once.

However,

Here is a quick video of how you should set things up to make it work, if you will: https://www.loom.com/share/e82d82c0520c4750ba929de6aa4ba13a

You will need to make a transfer to the seller those funds were intended, and you will see if it works.

Thanks

I think I see the problem now is it isn’t OnBehalf I should be using but Collecting fees with transfer_data[amount]which you don’t support. Will create my own model for this, same as which I’ve already form the the update command.

As for OnBehalf when I watch the video and the reason I may get the error is that my capture method is manual where yours is empty. Your video has the data inserted, but not run to show the payment.

https://stripe.com/docs/connect/destination-charges

Hi @peter3,

Please give it a try with the setups as per video instruction and you can preview it and test it out. It should work with no errors.

Thanks :pray:

I have finally got back to this and worked out the problem.

If SellerID is not filled in you are sending “null” in this field which is causing the error.

Exactly as per the error message from Stripe.

1 Like

Thanks @peter3 for confirming.

I’m glad you managed to work it out. If you like our plugin so far, could you please rate it by going to Plugins tab in Bubble editor? You can find the plugin by name and give it as many stars as it deserves. The more feedback we get, the more motivated we are to build great plugins and improve existing ones.

Thanks!

Will do once this problem is fixed in stopping the “null” value being sent if the SellerID field is empty unless there is a setting in Bubble to stop this.

Let me know when fixed as I have this same problem using the API calls to my backend and have code to deal with it in my backend.

Sorry @peter3 but this null error is caused when the setup is wrong. If you set it right, even by leaving the Seller ID field empty, it will not throw any error messages.

Could you please share screenshots and/or screencast of all your settings so we can check on it and see where the problem is.

All my settings are generic.

I get this “null” problem with my API calls if I leave the field blank, could this be the problem and not actually caused by you but something Bubble is doing. Looked at my export file and saw the in the problem ones I had in “sample_value” a null, not a blank space.