PayPal - Accept payments globally with PayPal. 💳


Official Page | Documentation | Subscribe


  • Charge users with a click
    Easily integrate PayPal’s secure payment processing into your platform

  • Native PayPal user experience
    Pass users to PayPal’s seamless, safe and secure payment experience flow

  • Customize button styling
    Configure shape, size, color, labelling and more within PayPal’s guidelines

  • Craft your own result handling
    Easily hook into payment results to handle completions and errors

Visit the Official Page to learn about new and upcoming features.


Here are some useful resources to help with installation and usage.

PayPal Documentation
A solid technical introduction to PayPal’s library of products and services.

Platform Payments
An in-depth course on setting up payments for PayPal and Stripe.

The Bubble Forums are a great resource to see other Bubblers’ implementations and questions!


:black_circle: Get notified of new updates, pre-release testing, reported bugs and more by subscribing.

:large_blue_circle: If you need help setting things up, book a half-hour Session with us and we’ll do it together!

:red_circle: To report potential bugs, file a bug report with a description and reproduction steps.

Disclaimer: Copilot does not own the Checkout.js library. Review PayPal’s docs and terms before using.


Okay, @copilot, I have to say, you’re amazing lol

Still waiting for the documentation! I’m ready to implement this right now!

What are the advantages of using the Paypal plugin over using Braintree (with Paypal integrated)?

For me not getting gray hair at 21 years of age, that’s an advantage, I can’t seem to work with Braintree, and I already have PayPal, so hey might as well work with it.


Hey @vincent56,

Every business and product is different so you’ll have to weigh out what makes most sense to you. Two of the more obvious benefits are registration and ease of integration. Braintree has a verification process which can block businesses in their roadmap. Additionally, integrating with PayPal is a simple and easy process that should be apparent for beginners as well. :slight_smile:

1 Like

When will a video documentation be available? I’ve waited for ages!

1 Like

Hi @copilot, Thank you for this plugin!
I had it working fine but suddenly it stopped…
The button is not visible even when it has all the details and Im getting an error (see a part of it below).
Did anything change on Paypal’s end that might require updating the plugin?

TypeError: Cannot set property ‘innerHTML’ of null
at eval (eval at p.create_code (, :3:101)
at T (

Hey @yonimn,

Bubble’s recent update to their plugin developer tools may have caused this. We’ll be pushing an update (among others) later this evening. It’s also possible that the DOM isn’t quite ready at the time we push, which we’ll also take a look at. :slight_smile:

Amazing! Thanks! :slight_smile:

@copilot a friendly heads-up here.
Looks like you might be accessing the DOM directly.
As Emmanuel adviced me yesterday when I had some of my plugins broken too, when we write a plugin, we shouldn’t expect the div to be already in the DOM, so we should access it from instance.canvas, not by using document.getElementById(ID).

I haven’t seen your code yet but from the error message your user posted above it looks like whatever element you were getting the innerHTML of was not ready in the DOM.

Bubble recently did the some performance improvements that may have changed the timing of when elements are ready.

So if you haven’t already figured things out, as I mentioned earlier, if you added any div element to the canvas in your initialize function, then access it from instance.canvas in your update function instead of trying to get it directly from the document DOM object.

Thanks for the heads-up! We happened to stroll by that thread earlier which seemed to apply to us as well. :slight_smile:

Version 1.0.3

A progressive plugin update that comes with support for Responsiveness and Performance Updates.


-Client ID is now set in the Plugins tab
-Run Mode is now the Production checkbox


Documentation for this update is available on the PayPal Plugin page.

:stop_sign: Need help with something? Keep the thread clutter-free, email us at!

no more element id?

Hey @falcor,

The PayPal Checkout element renders the PayPal button in itself - no more need for a separate element. :slight_smile:

Version 1.1

An anticipated plugin update that comes with support for Repeating Groups and Production Mode.

-Support for multiple buttons on a page including Repeating Groups

-Client IDs are now set within the PayPal element
-Element IDs are now handled by the PayPal element


Documentation for this update and more is available on the PayPal Plugin page.

:hammer: Want to sponsor a feature like this? Found a bug here or there? Let us know at!

Version 1.2

A necessary plugin update that migrates sensitive fields to the Plugins tab.


-Sandbox Client ID must be set in the Plugins tab
-Live Client ID must be set in the Plugins tab


Documentation for this update and more is available on the PayPal Plugin page.

:hammer: These changes were made in favor of user security at the cost of some developer friendliness.

Version 1.2.1

A minuscule plugin update that improves re-rendering of existing PayPal buttons on pages.


-Existing buttons will be destroyed prior to rendering the processing new button


Documentation for this update and more is available on the PayPal Plugin page.

:hammer: If you’ve found a bug or have feature requests, let us know at

Version 1.2.2

A timely plugin update that resolves the environment mode issue for Production.


-Support for the Production environment mode has been repaired


Documentation for this update and more is available on the PayPal Plugin page.

:hammer: If you’ve found a bug or have feature requests, let us know at

it does not work :slightly_frowning_face:
pressing the button opens the panel and closes again (version 1.2.2)