Stripe

The Stripe Plugin charges credit cards and handles subscriptions for users. Strong Customer Authentication (SCA) is supported and can be enabled from the plugin menu by selecting “Checkout v3” in the dropdown.

See Stripe’s documentation for more information.

Charge the current user

This action charges the current user and prompts them to enter their credit card information. The response from Stripe, e.g., the Stripe charge ID, amount, confirmation, etc., can be accessed in the subsequent actions as 'Result of previous step.' In a failed transaction, the workflow will stop running. See Stripe's documentation for more details.

Payer email

Define the email of the user to charge. Often, it will be 'Current user's email.'

Amount

Enter the amount to be charged. It can be dynamic using the 'Insert dynamic data' button.

Name

Enter the product name that will appear in the checkout flow and in the email users receive from Stripe.

Description

Enter the description that will appear in the checkout flow and in the email users receive from Stripe.

Image

The image that will appear in the checkout flow.

Currency

Enter the currency of the transaction. If the currency is not in the list you can type it.

Button caption

This is the caption for the button on the Stripe Checkout form. The amount will be added to the caption in Live mode.

Statement descriptor

Optional, use this to change how this payment will show up on the customer's statement. What you enter will be appended to the "shortened descriptor set in your Stripe account, in the manner of "YOUR-APP*DESCRIPTOR". This overall string has a character limit of 21; anything past that will be truncated. In Stripe's v3 checkout, this field will comprise the entirety of the statement descriptor.

Authorize the charge only

This determines whether to immediately capture the charge. When checked, the charge issues an authorization and will need to be captured later. Uncaptured charges expire in 7 days. You can then capture the charge in your Stripe dashboard.

The payee of this transaction is another user

When setting up a marketplace, check this box so payment will go to another user instead of your own Stripe account. For this to work, you must build a flow where users can register as a seller, connecting their Stripe account to get paid.

Transaction payee

In the case of a marketplace, define who gets the payment. This is likely the 'Current list thing's creator.' This user must register as a seller for the transaction to process.

App fee

You can charge a fee on transactions, but it must a currency amount and not a percentage.You can, however, compute the value in the field using the Composer.

Allow promotion codes (v3)

Check this box to allow your users to enter a promotion or discount code when they are sent to checkout. Coupon codes can be created in your Stripe Dashboard. See Stripe Documentation for more details.

Add tax rate to checkout (v3)

Check this box to add a tax rate or list of tax rates to the user's invoice. Before you check this box, be sure to create your Tax Rate objects in your Stripe Dashboard. If the transaction payee is another user, make sure the Tax Rate object is from the Connected account, not your own Stripe account.

While Stripe offers both Fixed & Dynamic Tax rates, the Stripe Plugin only supports Fixed tax rates at this time. See Stripe Documentation to learn more about Fixed vs Dynamic tax rates.

Tax rate IDs source

This dropdown element allows you to input your tax rate IDs as static choices or dynamic data from the application database or Option set. In this dropdown menu, choose between Static IDs or Dynamic IDs.

Tax rate IDs (press Enter between each ID)

This static input allows you to paste in your Stripe tax rate ID or list of tax rate IDs by separating each entry with a new line. All tax rates entered here will be applied to the user checkout session.

Tax rate IDs

This dynamic input allows you to select a list of tax rate ids dynamically from your application, whether from the database, option set, or other datasource. This selection must evaluate to a list of texts.

If you'd like to specify a single tax rate ID, use the :converted to list operator. See the example below:

If your tax rate IDs are stored in an Option set named Tax Rates, and you'd like to select a single option named "Sales Tax" with the attribute "ID", your dynamic expression would look like:Sales Tax:converted to list's ID

Do not show success message

By default, Bubble displays an alert informing the user when the action is successful. Deactivate this behavior by deselecting this box if you want to display a custom message instead of the default Bubble message.

Collect the user's CC information

This action prompts the user to enter their credit card information without actually charging the card. Use this to delay the payment, for instance, if you are building a crowdfunding-based system. If the user fails to enter their card information, the workflow will stop running.

Update existing main card

If you check this box, the current user’s default credit card, if any, will be updated. However, the original credit card will still exist in the current user’s full list of credit cards unless it is explicitly deleted in a separate workflow action. If the box is not checked, the new credit card will be added to the current user’s full list of credit cards, but their default credit card will not change.

Do not show success message

By default, Bubble displays an alert informing the user when the action is successful. Deactivate this behavior by deselecting this box if you want to display a custom message instead of the default Bubble message.

Charge a user using saved CC

This action charges a user who has already entered their credit card information. It does not have to be the current user in this case. If no credit card information is available, the action will fail. The response from Stripe, e.g., the Stripe charge ID, amount, confirmation, etc., can be accessed in the subsequent actions as 'Result of previous step.' In a failed transaction, the workflow will stop running.

Charged user

Define the user to charge. This user must be signed up already because we need to have their saved credit card information. The user does not need to be logged in for the transaction to happen.

Amount

Enter the amount to charge. It can be dynamic using the 'Insert dynamic data' button.

Currency

Enter the currency of the transaction. If the currency is not in the list you can type it.

Name

Enter the product name that will appear in the checkout flow and in the email users receive from Stripe.

Description

Enter the description that will appear in the checkout flow and in the email users receive from Stripe.

Image

The image that will appear in the checkout flow.

The payee of this transaction is another user

When setting up a marketplace, check this box so payment will go to another user instead of your own Stripe account. For this to work, you must build a flow where users can register as a seller, connecting their Stripe account to get paid.

Transaction payee

In the case of a marketplace, define who gets the payment. This is likely the 'Current list thing's creator.' This user must register as a seller for the transaction to process.

App fee

You can charge a fee on transactions, but it must a currency amount and not a percentage.You can, however, compute the value in the field using the Composer.

Card ID to charge

You can optionally specific a card ID to charge. If this field is not filled, the default card of the user will be used.

Do not show success message

By default, Bubble displays an alert informing the user when the action is successful. Deactivate this behavior by deselecting this box if you want to display a custom message instead of the default Bubble message.

Capture an authorized charge

This action lets you capture a charge that has already been authorized by Stripe. Note that uncaptured charges expire after 7 days, per Stripe's documentation.

Charge ID

Charge ID of the charge you want to capture.

Do not show success message

By default, Bubble displays an alert informing the user when the action is successful. Deactivate this behavior by deselecting this box if you want to display a custom message instead of the default Bubble message.

Create an invoice

This action creates a draft invoice for the user. It contains all pending invoice items on that user. The drafted invoice cannot be paid or sent until it is finalized.

User

Define the user to charge. If the user does not have a credit card on file, the action will fail.

Subscription ID

If no Subscription ID is given, all pending invoice items for the charged user will be included in the created invoice. Otherwise, the created invoice will include both pending invoice items for that subscription and pending invoice items not associated with any subscription. Billing cycle and regular subscription events associated to that subscription will not be affected.

Automatic collection

When the invoice fails to be charged, you can enable this feature to allow Stripe's Smart Retries to automatically choose optimal times to retry failed payments. If set to false, no actions will be taken to advance the invoice's state automatically.

Update an invoice

This action updates the details of an invoice.

Only invoice drafts can be edited.

Invoice ID

The ID of the invoice you want to update.

Description

Extra string of text that can be added to the invoice. Visible to the recipient of the invoice. This field is referenced as "Memo" in the Stripe Dashboard.

Auto advance

Controls whether Stripe will perform automatic collection of the invoice.

Register the user as a seller

This action enables users to become merchants on your platform. For example, if you want to build a marketplace where users can sell their work to someone else, then they need to be able to credit their account when a transaction occurs. Your app will usually take a commission, which can be set when setting up the actions "Charge a user using saved cc" and "Charge the current user". You must create an application on Stripe to enable this type of transaction.

In v3 of the plugin, the registering seller will be directed to a Stripe-hosted seller onboarding experience.

At this time, only Connect Standard account onboarding is supported with this method.

See Stripe Connect for more information. Important: You need to set the redirection URIs in Stripe as 'https://bubble.io/poststripeauth' or 'https://d##.bubble.is/poststripeauth' for Dedicated environments in order for this to work. In addition, be sure to add the Connect client ID to your Stripe Plugin settings. Both the client ID and redirect URI settings can be found in your Stripe Dashboard > Settings > Connect settings.

Business email

Prefill information to ease the process with Stripe. Enter the email the user is likely to use.

Business URL

Prefill information to ease the process with Stripe. Enter the URL the user is likely to use.

Business name

Prefill information to ease the process with Stripe. Enter the name the user is likely to use.

Business address

Prefill information to ease the process with Stripe. Enter the address the user is likely to use.

Product category

Prefill information to ease the process with Stripe. Enter the product category the user is likely to sell.

Sold products are physical products

Prefill information to ease the process with Stripe. Enter whether the user is likely to sell a physical product.

Product description

Prefill information to ease the process with Stripe. Enter the type of product the user is likely to sell.

Subscribe the user to a plan

This action subscribes a user to a plan, which was previously defined in Stripe. Then, the card will be charged on a regular basis. If the user is already on a plan, their subscription will be updated to the new plan. If the user fails to enter their credit card information, the workflow will stop running.

Since the app has two versions, Development and Live, you need to have both versions of your account in Stripe to have the same plans with the same IDs.

Apply this action to the current user

By default, the 'Subscribe user' action applies to the currently logged in user. To apply the operation to another user, uncheck this box.

Subscribed user

Define the user to subscribe to a plan. This user must be signed up already because we need to have their saved credit card information. The user does not need to be logged in for the transaction to happen.

Update existing subscription

If you check this box, the current user's subscription, if any, will be updated. If the box is not check, a new subscription will be added to the user.

Subscription ID (opt.)

If you want to update an existing subscription, you can define here the subscription ID (returned by Stripe). If this is empty, the action will modify the first subscription returned by Stripe.

Dynamically specify plan

By default, the plan is chosen in a dropdown menu. To make the plan dynamic, check this box.

Subscription type

You can either pick one plan (most common case), or include more than one plan in the subscription.

Plan name

Once you enter your keys in the Stripe section in the Plugins Tab, we fetch the plans you created with Stripe to populate this list. Select the plan to subscribe the user to. If the plan is dynamic, the value must be one of the plans defined in your Stripe account.

Since the app has two versions, Development and Live, you need to have both versions of your account in Stripe to have the same plans with the same IDs.

Quantity

Enter the quantity to apply to the plan. In most cases it will be 1, but to have variable pricing on the plan, use this.

Subscription Items

You can define a list of plans/quantity to add to the subscriptions

Apply a coupon to this subscription (v2)

To provide discounts to certain customers, create coupon codes in the Stripe Dashboard. Check this box to enter a coupon ID.

Coupon ID

Enter the coupon ID. It can be dynamic information coming from an input.

Payment behavior

Select the payment behavior as specified in the Stripe documentation. See this link for creating a new subscription and this link for updating an existing subscription.

Allow promotion codes (v3)

Check this box to allow your users to enter a promotion or discount code when they are sent to checkout. Coupon codes can be created in your Stripe Dashboard. See Stripe Documentation for more details.

Add tax rate to checkout (v3)

Check this box to add a tax rate or list of tax rates to the user's invoice. Before you check this box, be sure to create your Tax Rate objects in your Stripe Dashboard.

While Stripe offers both Fixed & Dynamic Tax rates, the Stripe Plugin only supports Fixed tax rates at this time. See Stripe Documentation to learn more about Fixed vs Dynamic tax rates.

Tax rate IDs source

This dropdown element allows you to input your tax rate IDs as static choices or dynamic data from the application database or Option set. In this dropdown menu, choose between Static IDs or Dynamic IDs.

Tax rate IDs (press Enter between each ID)

This static input allows you to paste in your Stripe tax rate ID or list of tax rate IDs by separating each entry with a new line. All tax rates entered here will be applied to the user checkout session.

Tax rate IDs

This dynamic input allows you to select a list of tax rate ids dynamically from your application, whether from the database, option set, or other datasource. This selection must evaluate to a list of texts.

If you'd like to specify a single tax rate ID, use the :converted to list operator. See the example below:

If your tax rate IDs are stored in an Option set named Tax Rates, and you'd like to select a single option named "Sales Tax" with the attribute "ID", your dynamic expression would look like:Sales Tax:converted to list's ID

Tax percent (v2)

Enter the tax percentage, which should be a positive decimal between 1 and 100. It can be dynamic using the Composer. This represents the percentage of the subscription invoice subtotal that will be calculated and added as tax to the final amount for each billing period. For example, a plan that charges $10/month with a tax percent of 20.0 will charge $12 per invoice.

End of the trial

Enter the date representing the end of the trial period. After this time, the customer will be charged. When selected, this setting overrides the default trial period of the plan the customer is subscribed to.

Do not show success message

By default, Bubble displays an alert informing the user when the action is successful. Deactivate this behavior by deselecting this box if you want to display a custom message instead of the default Bubble message.

Update Stripe Customer

This action modifies email and address for an existing Stripe customer.

Apply this action to the current user

By default, the 'Subscribe user' action applies to the currently logged in user. To apply the operation to another user, uncheck this box.

Subscribed User

Define the user to subscribe to a plan. This user must be signed up already because we need to have their saved credit card information. The user does not need to be logged in for the transaction to happen.

Email

Enter the new email user would like to update to

Address

Enter the new address user would like to update to

Create a Stripe Coupon

This action creates a coupon which can be used by any Stripe customer.

Coupon Name

Name of the coupon displayed to customers

Amount Off

Amount (in the currency specified) that will be taken off via the coupon

Percent Off

Percentage that will be taken off via the coupon

Duration

How long a customer can apply the coupon for. Choose one from forever, once, and repeating.

Duration in Months

If duration is repeating, the number of months the coupon applies.

Expiration date

After this date, the coupon will be no longer valid

Currency

Enter the currency of the coupon. If the currency is not in the list you can type it.

Max redemption

Maximum number of times a customer can redeem the coupon for

Apply a coupon to the user's subscription

This action applies a coupon/discount to the current user's subscription

Apply this action to the current user

By default, the 'Apply a coupon to the user's subscription' action applies to the currently logged in user. To apply the operation to another user, uncheck this box.

Subscribed user

Define the user to apply a coupon to. This user must be signed up already because we need to have their saved credit card information. The user does not need to be logged in for the transaction to happen.

Subscription ID

If you want to update an existing subscription, you can define here the subscription ID (returned by Stripe). If this is empty, the action will modify the customer object in Stripe and all plans will have the coupon applied to them.

End of the trial

Enter the date when the trial period should end. If left empty, no trial period will apply.

Do not show success message

By default, Bubble displays an alert informing the user when the action is successful. Deactivate this behavior by deselecting this box if you want to display a custom message instead of the default Bubble message.

Create an invoice item

This action creates an invoice item for the user. The invoice item will be paid with the next invoice.

Note: Since the introduction of the Bubble Stripe plugin, Stripe has clarified and updated some of its terminology. For this plugin, what Bubble calls a "line item" is what Stripe calls an "invoice line item" - these have Stripe IDs starting with 'il_' and are entries on an existing invoice. The change Stripe made was to have its own concept of "line items" which correspond to future entries on the next invoice; these Stripe IDs start with 'ii_' and can exist separately from an invoice. Bubble still uses its original definition of 'line items' (i.e. as Stripe's 'invoice line items') for the time being.

User

Define the user to charge. If the user does not have a credit card on file, the action will fail.

Amount

Enter the amount to charge. It can be dynamic using the 'Insert dynamic data' button.

Currency

Enter the currency of the transaction. If the currency is not in the list you can type it.

Description

Enter the description that will appear in the email users receive from Stripe.

Subscription ID

To add the invoice item to an existing subscription, specify the Stripe Subscription ID. This is an optional field.

Add tax rate to invoice item

Check this box to add a tax rate or list of tax rates to the user's invoice item. Before you check this box, be sure to create your Tax Rate objects in your Stripe Dashboard.

While Stripe offers both Fixed & Dynamic Tax rates, the Stripe Plugin only supports Fixed tax rates at this time. See Stripe Documentation to learn more about Fixed vs Dynamic tax rates.

Tax rate IDs source

This dropdown element allows you to input your tax rate IDs as static choices or dynamic data from the application database or Option set. In this dropdown menu, choose between Static IDs or Dynamic IDs.

Tax rate IDs (press Enter between each ID)

This static input allows you to paste in your Stripe tax rate ID or list of tax rate IDs by separating each entry with a new line. All tax rates entered here will be applied to the user checkout session.

Tax rate IDs

This dynamic input allows you to select a list of tax rate ids dynamically from your application, whether from the database, option set, or other datasource. This selection must evaluate to a list of texts.

If you'd like to specify a single tax rate ID, use the :converted to list operator. See the example below:

If your tax rate IDs are stored in an Option set named Tax Rates, and you'd like to select a single option named "Sales Tax" with the attribute "ID", yo

Pay an invoice

This action finalizes a draft invoice and immediately charges a pending invoice. It uses the card the user has on file.

Invoice ID

Enter the Stripe invoice ID to charge.

Cancel an Invoice

This action cancels an invoice by setting its status to void or uncollectible. For more information, check out the Stripe documentation for Void an Invoice and Mark as Uncollectible.

Invoice ID

Enter the Stripe invoice ID to cancel.

Status

Select the invoice's new status (void or uncollectible)

Create a refund

This action fully refunds a previously created charge that has not already been refunded.

Charge ID

Charge ID of the charge you want to refund.

Cancel the current user's plan

This action cancels a subscription with Stripe. The card will not be charged anymore.

Apply this action to the current user

By default, the 'Cancel Plan' action applies to the currently logged in user. To apply the operation to another user, uncheck this box.

Subscribed user

Define the user to unsubscribe. This user must be signed up already. The user does not need to be logged in for the transaction to happen.

Cancel all subscriptions

If this box is checked, all subscriptions on the user will be canceled. If not, you will be able to specify a subscription ID.

Subscription ID

If you want to cancel an existing subscription (and keep the other subscriptions running), you can define here the subscription ID (returned by Stripe).

Do not show success message

By default, Bubble displays an alert informing the user when the action is successful. Deactivate this behavior by deselecting this box if you want to display a custom message instead of the default Bubble message.

Create a subscription item

This action adds a plan to an existing subscription.

Subscription ID

Define here the subscription ID (returned by Stripe) to add the plan to.

Plan name

Once you enter your keys in the Stripe section in the Plugins Tab, we fetch the plans you created with Stripe to populate this list. Select the plan to subscribe the user to. If the plan is dynamic, the value must be one of the plans defined in your Stripe account.

Since the app has two versions, Development and Live, you need to have both versions of your account in Stripe to have the same plans with the same IDs.

Quantity

Enter the quantity to apply to the plan. In most cases it will be 1, but to have variable pricing on the plan, use this.

Update a subscription item

This action modifies a plan to an existing subscription that has more than one plan.

Subscription Item ID

Define here the subscription item D (returned by Stripe) to update.

Plan name

Once you enter your keys in the Stripe section in the Plugins Tab, we fetch the plans you created with Stripe to populate this list. Select the plan to subscribe the user to. If the plan is dynamic, the value must be one of the plans defined in your Stripe account.

Since the app has two versions, Development and Live, you need to have both versions of your account in Stripe to have the same plans with the same IDs.

Quantity

Enter the quantity to apply to the plan. In most cases it will be 1, but to have variable pricing on the plan, use this.

Delete a subscription item

This action deletes a plan to an existing subscription that has more than one plan. The subscription will still keep going after the deletion.

Subscription Item ID

Define here the subscription item ID (returned by Stripe) to delete.

Make a card new default

This action modifies the current user and makes a card the new default payment mean.

Credit Card ID

Define here the card ID (returned by Stripe) to use.

Delete a credit card

This action deletes a credit card on the current user.

Credit Card ID

Define here the card ID (returned by Stripe) to delete.

Retrieve all user invoices

This user call retrieves all user invoices based on the email of the user.

Because of limitations associated with the Stripe API, we can only retrieve up to 100 invoices per user at this moment.

Set a user's credit balance

This action uses the Stripe Customer API to set an absolute value for a customer's balance.

Note: This action does the same thing the legacy action "Adjust a user's balance" did. It has been renamed to more accurately reflect the action it performs - setting an absolute value rather than adjusting an existing value.

User

Define the user that corresponds to the Stripe customer whose balance you'd like to set. The user must already be a Stripe customer in your system.

Amount

Specify the absolute value of the above user's balance. For example, setting the value to $0 will wipe out any positive (amount owed) or negative (amount credited) value for the current customer balance.

Adjust a user's credit balance

This action uses the Stripe Credit Balance API to increase (debit) or decrease (credit) a user's Credit Balance. This action can be used to issue a credit to a user that will be documented as a Transaction on their account and applied to their next invoice. See Stripe Documentation for more detail.

User

Define the user that corresponds to the Stripe customer whose balance you'd like to adjust. The user must already be a Stripe customer in your system.

Type of adjustment

Select the type of adjustment you would like to issue to the above user. The options are credit, meaning you owe them money, or debit, meaning they owe you money.

Amount

Specify the amount you would like to credit or debit from the user's Stripe credit balance, depending of the type of adjustment you selected above.

Currency

Specify the currency (USD, EUR, etc.) of the amount. This currency must match the one set by the customer. If the customer’s currency is not set, it will be updated to this value.

Transfer to seller

This action uses the Stripe Transfer API to send funds from your Stripe account to a Connected (seller) account.

Amount

Enter the amount to send. It can be dynamic using the 'Insert dynamic data' button.

Currency

Enter the currency of the transaction. If the currency is not in the list you can type it.

Destination seller

Enter the User that the money will be sent to. Note, the user must be a registered seller with a valid Connected account for the transfer to be valid.

Description

Optionally enter a description of the Transfer to be shown on the record of the transaction.

Source charge ID

Optionally enter the pre-authorized charge ID as the source of this transfer instead of the parent Stripe account balance.

Transfer group

Optionally enter a text identifier for this individual transaction as a part of a group of transactions. More information on transfer groups can be found in the Stripe Connect Documentation.

Create payout

This action sends a payout in the amount specified from your Stripe account balance to the bank account linked to your Stripe account.

Amount

Enter the amount to send. It can be dynamic using the 'Insert dynamic data' button.

Currency

Enter the currency of the transaction. If the currency is not in the list you can type it.

Enter API Key

This button will appear if not all of your Live keys (Client ID, Secret Key, Publishable Key) are filled out in the Stripe plugin settings. Clicking this button will bring you to the plugin settings page so you can fill them out. Refer to the Setup section below for more information on these keys.

Create a Stripe value list item

This action creates a new Value List Item object, which is added to the specified parent value list.

Value list ID

Enter the identifier of the value list which the created item will be added to.

Value

Enter the value of the item.

Enter API Key

This button will appear if not all of your Live keys (Client ID, Secret Key, Publishable Key) are filled out in the Stripe plugin settings. Clicking this button will bring you to the plugin settings page so you can fill them out. Refer to the Setup section for more information on these keys.

Manage Tax IDs

Create a Tax ID

  • Action

    • Creates a tax ID in Stripe associated with the current user.

  • Fields:

    • type: required; type of the tax id. (The available options are here)

    • value: required; value of the tax id. (string)

Delete a Tax ID

  • Action

    • Deletes a tax ID associated with the current user. If the tax ID doesn’t exist, we do nothing.

  • Fields:

    • Tax ID: required; the identifier of this tax ID. (string)

Stripe Tax IDs

  • Action

    • Returns a list of all of the current user’s tax IDs.

  • Fields:

    • Limit: optional; max is 5 per customer

Stripe Tax IDs

  • User data call (i.e., Current User’s Stripe Tax IDs)

    • Returns a list of all of the current user’s tax IDs.

  • Fields:

    • Limit: optional; max is 5 per customer

Retrieve Tax ID

  • External data call

    • Returns a tax ID

  • Fields:

    • Tax ID: required; the identifier of this tax ID. (string)

Setup

You will need an active Stripe account before you can set up the Stripe plugin. Go to Stripe to create an account.

Note: Stripe has two environments (like Bubble) Live and Test. If both environment keys are set below, your Bubble app will use the development (test) keys in development and the Live keys in Live.

Live Client ID

Enter the Client ID from the Stripe Live environment. This information can be found in the Stripe Dashboard > Settings > Connect settings.

Note: This key is only relevant if you will be using Stripe Connect functionality.

Live Secret Key

Enter your Secret Key from the Stripe Live environment. This information can be found in the Stripe Dashboard > Developers > API Keys settings.

Live Publishable Key

Enter your Publishable Key from the Stripe Live environment. This information can be found in the Stripe Dashboard > Developers > API Keys settings.

Client ID - development

Enter the Client ID from the Stripe Test environment. This information can be found in the Stripe Dashboard > Settings > Connect settings.

Secret Key - development

Enter your Secret Key from the Stripe Test environment. This information can be found in the Stripe Dashboard > Developers > API Keys settings.

Publishable Key - development

Enter your Publishable Key from the Stripe Test environment. This information can be found in the Stripe Dashboard > Developers > API Keys settings.

Image for Stripe Checkout

Add a default image to be included in your Stripe Checkout sessions.

Name for Stripe Checkout

Enter a default product name that will appear in the checkout flow and in the email users receive from Stripe.

Stripe Checkout Version

Select the version of the Stripe Plugin that you will like to use.

Note: v3 is strongly recommended as v2 relies on an outdated version of Stripe Checkout and is no longer supported.

This enables Link payments on any Stripe Checkout page that the user is directed to. If a user completes a transaction using Link, then that same payment method will be used for future transactions executed by the "Charge a user using saved CC" action.

Collect the user's address with Checkout

Check this box if you would like to collect the user's address when collecting a customer's payment information during a Checkout session.

FAQ

Can I use a custom domain with Stripe checkout

Yes, you can choose to use a custom domain with Stripe Checkout and your Bubble app. This means you can send your customers to checkout.yourbubbleapp.com (or whatever subdomain you want to use) when they are transacting on your app instead of the default checkout.stripe.com. Note that Stripe charges an extra fee for custom domains.

In order to get a custom domain working, you’ll want to follow the steps listed in Stripe’s documentation, namely:

  1. Adding your domain to the Stripe Dashboard

  2. Creating DNS records to point at Stripe

  3. Verifying your DNS setup

  4. Setting your domain as active

On the Bubble side, the Bubble-created official Stripe Plugin supports this feature, so once you’ve set things up on the Stripe and the DNS side, they’ll work in your app as well as long as you are using Checkout v3 within the plugin. The following actions will be affected:

  • Charge the current user

  • Subscribe the user to a plan

  • Collect the user’s CC information

Stripe and Privacy Rules

Privacy rules currently bundle certain fields under “Social Networks,” including Stripe customer data. If you would like to get the customer ID and subscription information, this field will need to be enabled. This privacy rule controls plugin-borne fields, most commonly social network signup fields. When you sign up with an OAuth provider like Facebook, for example, this controls your Facebook name and profile picture.

Stripe and iFrames (v2)

By default, iFrames are blocked for your Bubble application, which will cause the Stripe v2 checkout to navigate to a broken page on mobile if this setting is not updated.

Android Webview (v2)

The webview browser on Android is not supported by Stripe’s legacy Checkout (v2), which can make it fail. Given that the webview controls its own user agent, however, you can “pretend” that your browser is another one by setting your webview’s user agent to another browser’s, for example:

  • Desktop Chrome

webView.getSettings().setUserAgentString("any user agent string");

  • iOS 9 webview

webView.getSettings().setUserAgentString("Mozilla/5.0 (iPhone; CPU iPhone OS 9_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13E233 Safari/601.1");

You can experiment with similar settings at the top of your Android application, if wrapping your Bubble app.

Test Mode Plans vs Live Mode Plans

If both dev and live keys are set, your app will be interacting with Stripe's test environment when you are in development mode, and Stripe's live environment when you deploy to live. If your Stripe plan ids are different between your test mode and live mode, and you are selecting a plan id in dev, this can lead to errors in live as this plan id will not exist in this environment. Consider adjusting your Stripe plans to have matching ids between environments. If this is not possible, try dynamically setting the plan id with Isn't live version:formatted as text and set the text value of "yes" to the dev plan id and "no" to the live plan id.

Language Support (v2)

Stripe Plugin version v2 uses an older version of the Stripe Checkout API that has limited language support, including for languages like Portuguese. Consider upgrading to v3 for more robust language support. When an unsupported language is detected, v2 will default to English.

Other ways to learn

Articles
  • eCommerce and payments - this article series covers how to understand and plan for different types of payments

Other payment gateways with official plugins

Last updated

#686: Updates to SAWOL

Change request updated