I want users to pay to acces a part of my app when they upoad datand

Hi everybody,
I need some ideas and sollusions. I have an app and it’s linkad at my site. I want users whitin a few months to pay a smaal fee when they want to upload data. How can I arrange that in my workflow? Wich plugin? Have someone expierience?

Stijn from Belgium

You’ll need to set up a payment integration, so look into Stripe (recommended) or possibly PayPal.

Then you’ll need to restrict what features of your app can be accessed with and without paying - so you’ll probably want to add fields for usertypes so you can control what users can do depending on whether they’ve paid or not.

1 Like

Thanks Adam I check it out. Have a great day

Hey Adam,
Will it look like this for the users when I install stripe?
Can I keep it simple and add a button “pay 1euro” on my page " add listing" of my bubble app? The button will send them to stripe? Is this how it works?

That’s the old version (V2) of the stripe checkout which is no longer SCA compliant, so if you’re planning on having customers inside the EU you’ll need to use the newer version (V3), which is also available on the standard Bubble Stripe plugin.

The V3 checkout looks completely different (nicer in my opinion), and requires a redirect to Stripe’s own domain where the payment is made.

So yes, you could simply have a button on your site that redirects users to the Stripe checkout (V3).

Alternatively, if you’d rather handle the payment on your own domain, without sending users to Stripe then you’ll need to look into using the Stripe API, and building your own payment processes (or you can use the Stripe.JS plugin).

In either case it’s a lot more complicated to set up, but gives you more control.

But if you just want a simple payment integration, and don’t mind sending users out of your app to Stripe’s hosted checkout, then the standard Bubble Stripe plugin is all you need.

Dear Adam,
Thank you so much for explaining. Now I’m know better what I want.

Hello Adam,
I was checking out paypall and stripe checkout V3
Either way wich one I choose, after they clicked added all the data and they confirm by clicking the button payment who direct them to stripe or paypall…how does my bubble app knows that they payed? Do i have to set up a workflow? I don’t understand. Sorry if i ask stupid questions.

kind regards

Yes, you’ll need to set up an API Endpoint in your Bubble app (in backend workflows), and set up a Webhook in Stripe or in Paypal to trigger it when a payment is made.

Then you can set up a workflow to make any necessary changes in your database once the payment has been made.

Hi Adam,
I found this on youtube . At step 4 Define endpoint workflows, after they defined
payments with “amount requestdata objectamount” and " chargeID+ requestdataobjectsID and “event type requestdatatype”, wich action and where do I have to adjust for veryfing is they payed 2 euro so they can upload data in my bubbel app?( after paying they have to be able to proceed the action and they should be able to upload pictures and information.)


Hi Adam. Another question .If I install this backend workflow and stripe, Can I make it free for a few months by just adding 0 euro in data?

In your endpoint workflow, you just need to make changes to the user. Then you can adjust whichever fields you’ve set up to identify users access permissions (or make any other changes you like).

So, you may have a simple yes/no field on your users called something like ‘Paid User’.

In this case, upon successful payment, make the adjustment to the user and change their ‘Paid User’ field to yes.

Then use conditionals throughout your app to only allow users who’s ‘Paid User’ field is ‘yes’ to access the pages and features you want to reserve for paid users.

One thing to be aware of when using an API endpoint workflow - because the workflow is triggered externally (in this case from a Stripe Webhook), the internal Bubble concept of ‘Current User’ doesn’t make any sense and wont work, so you’ll need to manually define which user you want to make changes to.

So instead of using the ‘make changes to current user’ action on the account menu, you’ll need to use ‘make changes to a thing’ on the data menu instead. Then select User as the type of thing you want to make the changes to, then ‘Do a Search For’ users, with a constraint to match the user in your database to the user on the transaction data sent via the webhook (probably by email address).

Then make the changes to that user.

Or, if you’re using the workflow to first create a transaction record in your database, then you can define the customer (user) there, then refer to that user in all subsequent steps within the workflow.

Also be aware that (at least from my experience), any subsequent workflows that are triggered from the API Endpoint workflow will also not understand the ‘Current User’, so you’ll have to pass the specific user through to any further workflows with parameters.

Regarding your second question, if you want to make it free for a few months before requiring payment, then you can either simply allow full access to your app at first for new users, then schedule a workflow to run after a set time, restricting that access and prompting the user to make a payment.

Or, you can use Stripe to take the user’s payment details, but not make any charge until a future date. You’ll have to refer to Stripe’s documentation for more details on how to do that.

1 Like

Hi Adam ,
Do I have to make the changes in user here? In my normal workflow and in stripe?
Or in my new backend workflow api endpoint and stripe?
Do I have to create a new type of user in data paid user?
This is so difficult to understand to adjust what where.
Thanks for all the patience.

Hey Adam I have little problem with stripe. I wanted to upgrade to V3 but Bubble refused. First I had this.

I did this

I recieved this message from Bubble

my workflow lokked like this

What do I do wrong?

V3 of the Stripe plugin has different available actions to V2, due to SCA compliance issues.

It looks like you’re using the ‘Charge Card With Saved CC’ action in your workflow, which isn’t available in V3, so you’ll need to change the action in the workflow. So just replace that action in the workflow with a suitable alternative from the available actions from V3.

I don’t personally use the Bubble Stripe Plugin, so I can’t comment in any detail on the available actions, but presumably you’ll want to use the ‘Subscribe the user to a plan’ action (as long as you have a plan set up in your Stripe account), in order to apply a monthly subscription, or if you only want to take a one-off payment then use the ‘Charge Current User Action’.

Thanks again Adam.
Il think about it. As a costumer, would you’re willing to pay with V2 or looks that a little onprofessional? Would you prefer V3?

It really depends on where your customers are based, as V2 will no longer be compliant with SCA inside the EU from 31st December, so if you have EU customers you’ll need to use V3 after this year.

Of course self-hosting your own checkout process is ultimately the best option (rather than using Stripe Checkout), as you have many more features and options available to you whilst still remaining compliant, but it takes more work to set up.

Personally I currently use Stripe Checkout V3, and it works very well for us (I think it looks better than v2, and in some ways redirecting to a recognise domain, i.e. Stripe, may increase customer trust and, therefore conversion rates).

At some point we’ll probably switch to hosting the checkout process on our own domain, but for now we’re happy to use Stripe Checkout v3.

Alright. I know enough. I just have to get V3. It looks better.
Tommorow I will chance the workflow and try
thanks for the effort and advice

Hi Adam,
I tried but I get this

In my workflow I can’t select as first action;collect user’s cc information.
What did I do wrong, where? In stripe.com? or stripe plugin in bubble? or in my workflow in bubble?

Yeah you can’t collect user’s credit card details with v3, so it’s not an option.

I don’t know why you’re getting that message, it could be to do with one of your other workflows.

The best thing to do is run through the whole process with the debugger to see which workflow and which action is causing the error.

ok I’ll try