How to accept payments with our deep Stripe integration
Customers
: Write
Payment Intents
: Write
Setup Intents
: Write
Checkout Session
: Write
Credit notes
: Read
Subscriptions
: Write
Generate and share the necessary Stripe keys
Add a Stripe component to your Embeddable
+
left-hand sidebar, and select Stripe
from the list of components.Choose the type of payment you want to accept
Choose which payment methods you want to accept
Add line items to the checkout
How to find the Price ID
Copy price ID
.Include the customer email address (and, optionally, phone number)
{{email}}
).Collect shipping information
{{address_line_1}}
.Add dynamic line items
Set values based on dynamic data
{{email}}
or {{phone}}
.
Control Stripe prices from the Embeddables CMS
Apply coupons and promo codes
Place a hold on the customer's card
Automatically set default payment methods in Stripe
Add a custom success message
Choose a layout for the Stripe component
Set up Apple Pay and Google Pay
Set up Stripe Link
Trigger actions on payment events
Event | Triggered when |
---|---|
Payment attempted | The user clicks the Pay button (regardless of success or failure) |
Payment successful | The payment is completed |
Payment failed | The payment is declined |
Collect Stripe IDs to send to your backend
Stripe ID | Provided for |
---|---|
Customer ID | All payment types |
Invoice ID | All payments except on-hold payments and collecting card details |
Payment Intent ID | One-time payments only |
Subscription ID | Recurring payments only |
userData
, provided in the Action function’s first argument.Store the selected plan/product and payment status in User Data
stripe_payment
.The status will then appear in the User Data as one of the following:stripe_payment: 'fresh'
- The Stripe checkout has been reset and is ready for another attemptstripe_payment: 'pending'
- The payment has just been attempted, and is awaiting a success or failure response from Stripestripe_payment: 'error'
- The payment failedstripe_payment: 'completed'
- The payment was successfulSend custom metadata to Stripe
user_id
, order_source
, etc.) and a value.{{user_id}}
or {{email}}
, to dynamically insert user data. You can even compute a new value in a Computed Field and use that in the metadata.+
button to add more metadata fields.I'm getting an error about a missing publishable key
?savvy_test=true
to your URL.I'm getting an error about a missing restricted key
Error: You must provide one of `price` or `price_data` for each line item when using prices.
Error: No such price: 'price_xxxxxx'; a similar object exists in test mode, but a live mode key was used to make this request.
?savvy_test=true
in the URL, ORpreview.embeddables.com
linkCmd+F
/ Ctrl+F
to search for data-flow-stripe-publishable-key-value
.pk_live_
or pk_test_
.Error: No such price: 'price_xxxxxx'
I'm seeing test mode errors on a live link
?savvy_test=true
).I'm seeing live mode errors on a test link
?savvy_test=true
), it usually means that the keys provided to Embeddables are for live mode only.?savvy_test=true
from the URL).