Stripe.js - The most powerful payments plugin for Bubble. 💳

@mike28, good question! Take a look at Stripe’s documentation around tax collection. The Stripe.js plugin does have support for Stripe’s automatic tax collection features which could be useful to you as you walk through Stripe’s recommended ways of handling tax. :blush:

Security Guidance

Hey everyone!

On April 20th, 2022, we advised Bubble of a security concern with information cached in one of their frontend assets. Bubble loads a file with every page load containing information about the application from design elements, state descriptions, plugin keys and more. Upon inspection, we noticed some applications’ Stripe secret keys being exposed to the frontend, which could allow malicious individuals to execute actions within that application’s Stripe account.

Working with Bubble, we were able to test and deploy a fix for this critical security issue. The fix has been detailed in an email sent to any potentially at-risk application owners. Rolling your API keys is recommended but not necessary.

Directly, this security flaw was caused by Bubble’s infrastructure and not by Stripe.js nor Copilot. Be sure to stay up to date with the latest plugin versions to take advantage of the latest in security and features. :slight_smile:



I’m having an issue with displaying invoice dates. Any date. They either return as something like “1655253516” or they do not display at all as demonstrated in the photo.

My goal is to have a repeatinggroup of past invoices and display things like the amount paid, the date, etc. Can’t seem to get dates to show.

Is there something I’m doing wrong on my end?

Thank you

Been an interesting time trying to learn this plugin but I have fallen my way through creating a full marketplace with sellers and using Stripe Connect. One thing that has been weird though. When I onboard new sellers the “Stripe.js - External Account - Create” does not actually create the ‘ba_’ token. I set up a 2 step Workflow to test this directly and when I click the trigger the first time it does not do anything which causes an error inside Stripe - No token generated yet. However when I click the trigger again it does create a ba_ token. So what the heck is happening here? I am tokenizing the bank account and then creating the external account but its not working the first time.

@copilot I have some errors that started popping up about a month ago. Looking at my logs, actions involving creating or updating Subscriptions run into an error that looks like this:

Workflow error - Plugin action Stripe.js - Subscription - Create error: TypeError: Cannot read property ‘client_secret’ of null at eval (eval at build_function (/var/task/index.js:86:21), :148:66) at /var/task/index.js:349:23 at run_fn (/var/task/u.js:594:18)

These workflows worked fine previously. Nothing was changed about them and my keys haven’t changed either.

This has caused a bunch of issues in my billing infrastructure that I’ve had to fix manually.

Any idea what’s going on and how to fix it? Thank you for this plugin!

EDIT: Even though there was an error that stopped the whole workflow, the subscription does indeed get created despite the error. No error shown in Stripe logs.

@rod.danan I just had the same issue. I believe it was related to the “Retrieve Invoice” option. When I switched it ‘off’ the problem resolved. Not sure if that helps your implementation.

Screen Shot 2022-08-15 at 6.06.05 PM

Hey @rod.danan and @bryce1 ,

The issue you’ve identified was addressed in the most recent versions of the plugin. Hop over to your applications’ Plugins tab to upgrade to the latest and see if the issue persists. This issue surrounding invoice retrieval with Subscriptions was shared with us by users through a bug report, which is the way to go when you run into any technical snags with intended functions of the plugin.

If you continue to experience the issue above, please opt for emailing us directly vs. posting on this thread so we can investigate. :slight_smile:

@copilot Is it possible to check this topic and create an update?

In short, to give more flexibility on the creation of a PM and PI. Right now, if the PM is created by the connected account, the PM is linked to the connected account. Any following actions need to then be run on the connected account - Creating a customer, attached a default PM to a customer, Creating a PI, etc.

It would be nice if the PM could be created on the platform account instead of the connected account even though the connected account is the one creating the PM.

  1. Add a Stripe Connect section on the Create a PM using the Stripe Element Action
  2. If left empty, create on the platform account
  3. If a stripe account is added, create on the connected account

Is this something that can be added in an update?

Thank you,


Whenever trying to update a payment intent I get this error. Any idea what I’m doing wrong?

In Stripe it shows that my update actually succeeded which is making me more confused.

Screen Shot 2023-06-06 at 12.01.28 AM

Is there something wrong I am doing when it comes to PaymentMethodID creation? I have an element on the page and when someone clicks a purchase button the workflow creates a PaymentIntent, generates a PaymentMethodID and then starts a payment using the IDs. However it seems like the entire workflow finishes (and fails) before the PaymentMethodID can even be created from the element. So the workflow ends with no transaction happening. Is generating the PaymentMethodID really that slow that it cant even be generated before the rest of the workflow executes?

Hey @arebstar,

Element actions are JavaScript powered so your workflow will not wait for them to finish before continuing. We go into detail about the payment setup process and considerations to make with Stripe during development in the Stripe Payments course. :slight_smile:

You need to split the workflow so the first part uses uses the Element to create the PaymentMethod and then the second part runs from the Element action “PaymentMethod was created”. You will also need more workflows that are triggered when a payment is successful, or if it fails.

The course recommended by @copilot is worth doing IMO.

1 Like

First off, thanks for the reply! I did end up buying the course for $20 (what the heck) and it was definitely a head slap moment that I was overlooking. I definitely knew of that trigger but didn’t make the connection to implement it that way as apparently I had a brain fart - I was just dead set on wanting it to be in a single workflow for easy reference. I have been using this plugin for so long that the basic stuff sometimes slips out. I only slightly regret the $20 only because the solution was so simple (and you answered it right here!) but the answer WAS in the training series as well! Thanks again and thanks @copilot for making this plugin :slight_smile: I am sure I will learn more stuff in the course as well.

1 Like

So glad you benefited from it! Thanks for your kind words and also thanks a ton for supporting the plugin by going through the course. Everything fuels the plugins and courses we push out for the community! :blush:

I do have one other minor question though. When I put a stripe element on the page it doesnt ever seem to line up with where it displays in the dev evironment. In order to get this thing centered I have to offset it several pixels to get it line up sort of. I know that the styling is very limited but this seems like a different issue. I didnt see anything in the course I purchased so just putting it out there… maybe I am missing something simple. In this instance I have the element inside a group (by the way)… thanks :slight_smile:



Hey @arebstar,

Its good to know you got things going! Styling is limited as the options from Stripe are also limited, particularly related to sizing. You’ll likely want to increase the size of your containing group and play with positioning options.

For the future, give us a shout at :slight_smile:

Facing the same issue. Have you found any solution?


Just checking to see if something has changed with this plugin as everything was working fine and now I get this with my webhooks.

1 Like

Hey @pattokane,

We’re not aware of any changes that would cause that issue. It’d be best if you give us a shout at with more information and we’ll take it from there! :slightly_smiling_face:

Hi @copilot ,

I had been using a fairly old version of stripe.js but today I updated to the newest version (as required by Bubble by January for plugins with server side actions). I’m using the Create Customer action which was working perfectly fine but now I’m getting this error. I attached how my action looks as well as the error

Workflow error - Plugin action Stripe.js - Customer - Create error: TypeError: context.request is not a function at eval (eval at build_function (/var/task/util/util_harness.js:37:12), :67:31) at eval (eval at build_function (/var/task/util/util_harness.js:37:12), :91:8) at /var/task/plugin_api_v4_alpha.js:198:35 at harness (/var/task/harness.js:115:21) at /var/task/harness.js:154:70 at withGlobalHandlers (/var/task/harness.js:66:41) at Runtime.myHandler [as handler] (/var/task/harness.js:154:16) at Runtime.handleOnceNonStreaming (file:///var/runtime/index.mjs:1173:29)

Can you please take a look?? This is fairly urgent for my site, thanks

Update - I rolled back to 2.0.40 and it works again, so it’s due to the most recent update