Welcome! In today’s post, we’ll be providing an intro into Stripe payments. Stripe is by far the best payment processor in the market today. You should try using it for payments if at all possible.
Currently, Stripe is available in 46 countries. Take a look to see if your country is available here.
If you don’t have a Stripe account set up yet, head over to Stripe.com to create one. It should take 15-20 minutes at most.
Breaking Down Payments
Before you begin implementing payments, you need to understand your monetization strategy. Is your business selling one-off products or subscriptions? Or are you building a marketplace with buyers and sellers?
Having a solid understanding of your revenue model will help to shape how you implement payments in your no-code app.
One-off payments: You are selling products or perhaps lifetime access to your app. You will create a product in Stripe and have the customer purchase the product or lifetime access once. You can sell products more than once, but Stripe will treat it as a new transaction.
Subscriptions: You are selling recurring access to your product/app. You’ll set up a product in Stripe and decide the recurring costs & periods. You’ll also need to decide if this is a fixed flat cost or based on usage. Lastly, you’ll decide the cost *and* the frequency (monthly, every 6 months, yearly, etc.).
Marketplaces: Your app will have buyers and sellers. You’ll have to register sellers and have them create products. You’ll link buyers to sellers and will take a ‘platform’ fee. Here, you just act as a middle man and take a cut off every transaction.
Note: You are not limited to only selecting one payment method. You are certainly welcome to mix in different payment methods. For example, you can act primarily as a marketplace but offer subscriptions to sellers where you take no platform fee.
As you can see, it’s extremely important to understand your revenue model *before* implementing payments in your app.
In-app Payments Vs. Stripe Hosted
Stripe is extremely flexible in the sense that you can make checking out as customized as you want or fairly basic.
Depending on your app/biz, you need to decide if you want Stripe to host the checkout or process payments in your app.
Stripe Hosted: Here, you’ll initiate a payment session from your app and open a new tab with a Stripe hosted checkout. Stripe will handle payment failures and the checkout process. Super simple.
Above, you can see how the URL is checkout.stripe.com. This means that when the user clicks “purchase” from your app, you’ll redirect them to a Stripe URL. The Checkout portal is conversion-optimized and mobile responsive.
Pros:
Conversion optimized and mobile responsive
Stripe handles payment failures and all necessary workflows to capture payments
Cons:
Customization is limited
Users are taken away from your app (not necessarily a bad thing by the way)
In-app: Here, you’ll build the checkout page/popup in your app. You’ll have complete control on the look and feel. You’ll build in workflows to capture payments and handle failures. Not as simple.
Pros:
Complete control over the look and feel of your checkout page/popup
Users stay on your app and don’t get redirected to Stripe
You won’t have to setup Webhooks to confirm payments
Cons:
More work upfront to handle all use cases (creating customers, cards, linking cards to customers, payment workflows, failure workflows)
You’ll have to make the checkout page/popup responsive (desktop, tablet, phone)
To summarize, there are pros and cons to both Stripe-hosted checkouts and building out the checkout pages yourself. In the end, it comes down to what you’re comfortable with and what your business requires.
Our Recommendation: Start off with stripe-hosted checkouts. It’s much easier to implement and get started with. Once your app is live, you can consider switching over to in-app payments. There are no repercussions from starting out with one versus another. You’re always welcome to switch if you’d like. Of course, we’ll show both methods in this Substack.
API’s or Plugins
If you look at Stripe’s documentation, you’ll see that to use *most* of their capabilities, you’ll have to use API’s. For a developer that’s non-technical, implementing API’s can be extremely challenging. What’s great in Bubble though is the ability to use plugins.
Plugins: To quickly define plugins in Bubble, think of them as traditional code wrapped into an easy to use, no-code solution. The coding layers are abstracted so you’re left with Bubble workflows and data calls. So using a Stripe plugin is actually just making API calls (assuming the plugin developer built them right).
API Connector: You’re welcome to use Bubble’s API connector for Stripe payments. In this method, you would build out every API call necessary. You’d have a call to create and retrieve a customer. Another call to create a card and attach it to a customer. Another call to initiate a payment, and so on. With this method, you won’t have to rely on a plugin. Plugins *do* break down (rarely), and sometimes are not maintained by the developer/author. If you’re going to use a plugin in Bubble, make sure they are well maintained and built by a reputable developer.
Plugins: Instead of having to build out every API call, you can simply download a Stripe plugin for your use case. There are at least 10 or so last we checked. Using a plugin is *much* more simple than building out the traditional calls. They’ve already been built out for you!
Our Recommendation: Use the well established, reputable Stripe plugins offered. They are much simpler to implement. Paying $10-75 for a plugin saves you countless hours from building out each API call one-by-one in the connector.
Picking the Right Plugin: We’ll go more in depth on each plugin that we recommend, but for now just know that there are several out there, with different degrees of complexity, flexibility, customization, and use cases. When we cover each payment type (one-off, subscription, marketplace), we’ll go more in depth on the actual usage of the plugins.
Plugins
Here’s a very quick breakdown of the reputable plugins we recommend:
Stripe (developed by Bubble)
A very basic yet capable plugin. You’ll be able to incorporate all payment types with this plugin, but the checkout popup is outdated and not flexible. We don’t really recommend this plugin unless you want quick payments and don’t care about the look and feel.
Stripe.JS (developed by CoPilot)
An extremely powerful Stripe payments plugin. This is the one you’ll want to use if you’re implementing in-app payments. You’ll have complete control over the look and feel of everything. Stripe.JS is simply every Stripe API call built into a plugin. You’ll have to build out the checkout pages/popups and incorporate workflows. Bubble’s Stripe plugin is also in-app payments, but the actual checkout popup cannot be customized. With Stripe.JS, you control the checkout popup and have many more API calls built in.
Stripe Marketplace Express (developed by Zeroqode)
This is the plugin you want to use if you’re building a marketplace. Marketplaces have the toughest payment integrations because you have to handle both the buyer and seller (as opposed to one-off purchases and subscriptions where you just handle the buyer side). This plugin makes onboarding sellers extremely simple, along with simple workflows for initiating marketplace payments (and taking platform fees).
Stripe Checkout (developed by Lance)
You’ll use this plugin if you want to incorporate Stripe-hosted checkouts. This plugin is simple in nature because Stripe handles most of the payment processes. All you need to do in this case is create a customer and initiate a checkout link. Much more simple than implementing in-app payments. If you didn’t want to purchase this plugin (easy purchase in our opinion), you would need to build out a couple API calls through Bubble’s connector.
Other plugins: There are even more plugins available, however the ones we noted are the ones we recommend. Feel free to take a look at the plugin store and let us know if you’re thinking about using a different one. We’d be happy to provide our thoughts.
Closing Remarks
Building and implementing payments in your app/biz is tough but exciting. Why? Because you’re one step closer to getting paid and monetizing your app!
In the next post, we’ll start with the easy/simple method of Stripe-hosted checkouts. As we noted, this is our recommendation for getting started. The choice is yours, however.
For now, we recommend:
Setting up your Stripe account on Stripe.com
Plotting out your revenue model and deciding which payment types you’ll be incorporating (one-off purchases, subscriptions, marketplace payments, or a combination)
Deciding if you’re ok with Stripe-hosted checkouts or if you want to go down the route of in-app payments (complete control of look & feel of checkout)
Looking at the Bubble plugin store and exploring the multiple Stripe payment options available
If you have any questions about Stripe payments, please feel free to leave a comment and we’d be happy to help you out.
Still on the free plan? Upgrade now to get our in-depth Stripe payments posts.
-BowTiedVampire