Payments in Embeddables are handled via Stripe, with a dedicated Stripe component that is integrated deeply into our platform.

Keys and IDs that you’ll need

  • Your Stripe Publishable Key
  • A Restricted Key generated in Stripe, with the following scopes/permissions:
    • Customers: Write
    • Payment Intents: Write
    • Setup Intents: Write
    • Checkout Session: Write
    • Credit notes: Read
    • Subscriptions: Write
  • Any Price IDs for specific products you want to offer

Setting up Stripe

The following are the minimum steps required to add a Stripe component to your Embeddable:

1

Generate and share the necessary Stripe keys

  • Get your Publishable Key, and generate a Restricted Key with the scopes/permissions listed above, from the API Keys section of your Stripe Dashboard.
  • Pass these keys to the Embeddables Team (make sure to share the Restricted Key in a secure way).
2

Add a Stripe component to your Embeddable

  • In the Builder, switch to the checkout page that should contain the Stripe component.
  • Select a Container to insert the Stripe component into, or a copmonent that it should be added next to.
  • Open the + left-hand sidebar, and select Stripe from the list of components.
3

Choose the type of payment you want to accept

  • Under Checkout mode, select one of the following options:
    • Payment: If you’re accepting only one-time payments, or want to place a hold on a user’s card.
    • Setup: For setting up a user’s payment method to take payments in the future.
    • Subscription: If your line items will include at least one recurring payment.

Please note that Stripe only supports placing a hold on one-time payments, not recurring payments.

4

Choose which payment methods you want to accept

  • Under Payment methods, select the payment methods you want to accept, from the following options:
    • Credit card
    • Link (Stripe’s own quick purchase login system)
    • US Bank Account
    • Buy now, pay later services: Afterpay/Clearpay, Klarna, Affirm

You need to have the relevant payment methods enabled in your Stripe account in order for them to appear for users.

5

Add line items to the checkout

  • There are two different types of line item that you can add:
    • Price ID: This corresponds to a product and price that you’ve already created in Stripe.
    • Custom line item: This lets you manually enter an amount, currency and name for the line item in Embeddables.
  • Both types of line item require you to enter a quantity.
  • If you need your line items to be dynamic (i.e. change based on the user’s answers, like what plan they select), see below.
6

Include the customer email address (and, optionally, phone number)

  • To insert the user’s given email address into the Stripe checkout, add the key name of the component you use to collect the user’s email, using Templating (e.g. {{email}}).
  • You can optionally collect a user’s phone number, using the same method.

By default, Stripe’s credit card fields will also include Country and Zipcode / Postal Code fields.

These are all Stripe needs for a customer billing address, so you don’t need to provide any billing address fields.

Optional: Additional Stripe configurations

These features are not required in order to successfully accept payments, but they can be useful in different scenarios.