Forum Academy Marketplace Showcase Pricing Features

💳 Stripe Marketplace Express Checkout + SCA 3D Secure - New Plugin from Zeroqode

Hi ZeroqodeSupport,

I am trying to make my platform SCA 3D secure.
I have suppliers and resellers on my platform.

Suppliers display their products on our platform for resellers to sell on their own website.
When resellers receive an order for X products of Supplier Y, I need to create a button that allows the reseller to pay the supplier (no money goes through our app; all from reseller to supplier).

I have managed to save the reseller credit card on Stripe + save a payment method (pm) on our platform.
Also, the suppliers are connected to Stripe so they all have a stripe account with an id that I keep on the platform.

I am trying now to create that payment button with the information I have available to me. I would like to make sure this is SCA 3D secure?

Any chance you tell me if what I’m doing is right?

Also, for a better UX, I’d like to keep the last 4 digit of the reseller’s card, the expiration date and the card brand on the platform. What’s the correct workflow to retrieve these?

Here is what I have done for order payments:

Thanks a lot for your help.


Hello @geoffrey.guilbert1,

Thanks for reaching out

Stripe Marketplace is SCA Ready plugin that comes with the SCA element token to authenticate, the online payments flow requires the use of 3D Secure for card payments. To make sure that your payment are SCA 3D Secure you will have to use “Go to checkout a SCA” action and retrieve the ID of the create session (result of step 2), you can find this action in our Demo Editor.

As for saving the last 4 digit of the reseller’s card, you can it do by using Retrieve a customer action call, you can find how to use it here: Stripe Marketplace Express Plugin - Zeroqode Documentation.

Please note, that you must mention to the customers that their card data is being saved. We are not recommending saving the card number’s data on Bubble’s database as it is might not be the most secure option.

Also, please use our Demo Editor to see the examples of using the plugin’s actions :slight_smile:

Please let me know if you have any other questions.


Zeroqode Support Team

Hi Zeroqode,

I used your demo editor to create my workflows as you said.

An error occurs when I want to “GO TO CHECKOUT SCA” to create/save a payment method.
Here is the message I get:

Here is the workflow that I use:

Could you help me with this?
I did check on Stripe, the customer does exists. The error doesn’t come from this.
As for the success URL, some parameters are empty because I sometimes use this Workflow to create things after creating the payment method.
What really matters in the URL is “status=setup”.

Thank you for your help.



I’m looking for a way to cancel payment Intent (that’s set to be capture later).

When sell accept reservation, payment Intent is captured. But when the seller decline, I can’t manage to cancel payment Intent. I tried to create a refund but I’ve got an error message saying I need to cancel PI first but how can I create this workflow?


Hi @geoffrey.guilbert1, thanks for your message.
We’re afraid that provided information is not enough to identify the error origin.
Please share (here in the thread or in DM) a screencast with your workflow (with each step settings) and use case flow when you get the error. This will allow us to identify any issue much faster.

Looking forward to your reply.

Hi @wilfriedessomba, thanks for your question.

Unfortunately, current plugin functionality doesn’t provide a possibility to cancel payment intent.

This API call can be added by using the API Connector by Bubble.

Zeroqode Support Team

Hi Levon,

I’ve been having some trouble with this plugin and am in need of some help.

I’m creating a tutoring marketplace where I link students and tutors. I have a repeating group, where each cell is a tutor listing (1 cell per tutor, essentially). Everything is working great, except for the fact that on the last step of payments, I get an error when I’m connecting the buyer and the seller. I’m getting an error for my header value.

Here is what I have in my header


And here is how I defined the Seller_ID previously in my workflow (I created it within the “current user” section, then added it as a variable within “Listing”)



If the tutors had their own pages where they were paid, the header value in the workflow would be as follows:

(header) Stripe Account: Current Page Service’s Creator’s Seller_ID

However, it seems that because tutors have their advertisements within cells in a repeating group, I can’t use the above syntax.

I tried posting on Zeroqode, but every time I tried to login to the forum section, it said there was a problem with my account and I should contact the administrator.

Can you or anyone else help me?

Hello, @seenamakari
Thanks for reaching out!

First of all, please allow us to recommend you to check our Demo Page for the plugin, because there you find the correct settings:

As for the issue with the error in the Header, please check the privacy settings for your users. It is possible that Seller ID is visible only to the Current User so they are not visible to the API (plugin itself).

If the privacy settings are correct, let us know and we will continue to investigate the issue :pray:

Best regards,
Zeroqode Support team


How do I make the current user public instead of private? The default setting is private and I tried changing it but don’t know how.

Thank you!


I changed the privacy setting to public but I’m still getting the same error. What should I test next?

Thank you!

Hello, @seenamakari
Thanks for the feedback.

Please allow us to note that the most probable reason for the issue - configuration of the Header:

In case the steps before this were configured incorrect - the process might be wrong.
Thus, these are the required steps to follow, as per our demo:

  1. create a bank account token
  2. when bank account token is created, you implement the following action steps: 1) creates a new seller; 2) sets the SellerID etc. (but it would be best to save this SellerID into your database at this step, as you’ll need it later on)
  3. separate button for creating a card token
  4. when card token is created, you implement the following action steps: 1) create a customer; 2) set state CustomerID; 3) set state CardID; and when actually paying, you have to: 4) Link customer to a seller; 5) seller charge a customer etc.

As for Connect express/standard account action, it is important to mention that you’ll also have to Complete express/standard account connection afterwards.
When connecting, you have to specify the redirect_uri that you want your user to be redirected after saving Stripe information, and make sure this URL is present in your Stripe Dashboard.
When completing, user gets back to your provided page and will be redirected with a URL param. After this action step, you have to also save the resulted ID from the previous step (into your database as previously mentioned for seller ID).

Please check the suggested thread and our docs as well, for more information. Try to replicate the demo including all steps with appropriate details, then give it a try again.

On our Demo Page, you can try it by pressing on “Try Demo” button.

Please check all these steps and let us know about the result.
Best regards,
Zeroqode Support Team


I think I figured out what the issue is, but now I have an additional question.

I believe the reason it wasn’t working was because I don’t know how to define the Seller_ID so that it works within a repeating group. After doing some tests with some text boxes, I’ve realized that each cell has the same Seller_ID despite having different sellers. I believe it’s due to the following reason:

Current User’s Seller_ID gives the seller ID of the buyer, not the seller (when browsing the list of sellers as a buyer).

While I don’t have an error in the header group anymore, I still can’t make payments.

How can I define a Seller_ID in a sign-up page, and have it carry through to the seller’s cell in the repeating group? I tried defining it in my “listing” group but that kept giving me the header error. I ask this question with much more detail here Stripe Marketplace plugin: how to link a buyer and seller in a repeating group?

The only difference is that I changed the header value from “Parent Group Listing’s Seller_ID” to “Current User’s Seller_ID”., and I removed “Seller_ID” from the “Listing” data set.

Thank you!

Hello, @seenamakari
Thanks for the details.

As we can see from your screenshot, the issue is related to the creating of the Seller ID within your application.
Can you please let us know if you created a Seller ID without the Repeating Group? So, in case the creation of the ID worked previously, there is a chance that RG affects the functionality.

Please find the workflow for this action from our Demo Page. You should just replicate the settings:

  1. Create the Custom States for the page:

We highly recommend you to try creating the Seller_ID without RG firstly, and after succeeding in this process- combine it with the RG.

Please use our Demo Page for replicating the settings and configuring the app.

Best regards,
Zeroqode Support Team

Hello, i cant find the error in the workflow i make a customer, then create a sesion then use the go to checkout and it returns an error


Also can you guide me, im trying to make a marketplace hold a charge and then after an action/time passes it will send the money to the seller with a comision for the marketplace.

Hello, @renegh
Thanks for using our plugin and for reaching out.

As we can see from the provided screenshots, part of the required data is missing in your workflow.
Please find the screenshots from our Demo Page with the correct configuration:

The most probable reason for the issue - incorrect creating of the Seller’s ID.

Please verify your keys and screens above, and let us know if it helps.
If not, share with you the screenshots of the keys and all workflow (not only one action).

Looking to hearing from you soon.
Best regards,
Zeroqode Support Team