Stripe Embedded Checkout vs Payment Links
By Shawn Michael Thomas II, Founder of Simple Easy Transactions · Published ·
Should I use Stripe's embedded Checkout or a Stripe Payment Link? I use a Stripe Payment Link when I need to get paid without writing code: Stripe gives me a link, I share it, and Stripe runs the whole page. I use embedded Checkout when the payment has to happen inside my own site and be set up fresh for each order. Both take the card on Stripe's side, and with both I wait for Stripe's signed webhook before I deliver anything.
AT A GLANCE
Embedded Checkout vs Payment Link.
| Question | Embedded Checkout | Payment Link |
|---|---|---|
| Where the customer pays | Inside your page | On a Stripe-hosted page |
| Setup | A server route that starts each checkout, plus a spot on your page | None; you create the link in the Stripe Dashboard |
| Changes per order | Yes; each checkout is made for one customer and one order | No; the link stays the same until you edit it |
| Where you can share it | Only on your own site | Anywhere: email, social posts, a QR code or a button |
| Card details | Collected by Stripe | Collected by Stripe |
| What proves the payment | Stripe's signed webhook | Stripe's signed webhook |
HOW EACH ONE WORKS
How each one works.
A Payment Link is a reusable address tied to a product and price in your Stripe account. You make it in the Dashboard in a couple of minutes, and Stripe hosts the page, sends receipts and lets you refund without code. You can share it by email, on social media, as a QR code or as a buy button on your site.
Embedded Checkout is the same Stripe Checkout page, placed inside your site. Because your server creates a Checkout Session for each purchase, it can set the price, the customer and your own order details at the moment someone buys. That per-order control is the real difference: a Payment Link is fixed until you edit it, while a session is built for one customer and one order.
Whichever you choose, deliver from the checkout.session.completed webhook, not from the page the customer lands on afterwards, and listen for the later payment events if you accept bank payments that settle after checkout.
FIELD NOTES
What I've learned building this.
- I started with Payment Links for the fixed-price builds and the Embedded Checkout Starter Kit, then moved every purchase on this site into the page itself, so a buyer never leaves the page they were reading to pay.
- Open Payment adds one step: the customer types the amount, and my server checks it against the allowed range before Stripe ever sees it.
- My server writes the version of my terms the buyer agreed to onto every Checkout Session it creates, so the record my webhook creates for the sale is complete. I kept the old Payment Links active, so a link I already sent someone still works.
HOW TO CHOOSE
How I'd choose.
- Choose a Payment Link when the price is fixed and you want to start selling today.
- Choose embedded Checkout when the price, customer or order details change with each purchase, or when leaving your site would break the flow.
- Use both when you want a checkout inside your site plus a link you can share anywhere.
SOURCES
Where these facts come from.
Sources checked on . Providers change their products and rules, so the linked pages are the final word.