StripePayment LinksProduct CatalogCheckoutCatalog Guide

Stripe Payment Links Plus a Product Catalog: No Platform Fee

Pair a product catalog on your own domain with a Stripe payment link per variant. You pay Stripe's processing fee and no store subscription. Here is the setup and its limits.

Uğur Sözen·Founder, Beste
7 min read
Stripe Payment Links Plus a Product Catalog: Checkout Without a Platform Fee

A product catalog on your own domain plus one payment link per variant gives you card checkout with no store subscription. You pay the payment provider's fee on each sale and nothing else: Stripe lists Payment Links as included at no extra charge, with no setup or monthly fees, per its pricing page. You give up a shared cart and automatic stock sync. For a short range of fixed-price products, that is usually a fair trade.

Stripe is the example here because its links are the best documented, but the same pattern works with the provider that fits your country. This post is part of our guide to Catalog-First E-commerce.

Should you use payment links?

Use them if your products have a fixed price, people buy one or two at a time, and you sell fewer than a few dozen items. Courses, workshops, prints, preorders, small-batch goods.

Skip them if buyers usually combine many products in one order, stock changes daily, or the price depends on a conversation. Then a store, or a quote form, fits better.

Mix them if some products are simple and some are not. Fixed-price items get a payment link; custom work gets a quote form or a WhatsApp link. One catalog, two exits.

What a payment link is

A payment link is a hosted checkout page with its own URL. In Stripe you create it in the Dashboard without code, pick the product and price, and share the URL anywhere: on a button, in an email, as a QR code, per Stripe's Payment Links docs. The same link works for many customers, and you can add address collection, shipping rates, promotion codes, quantity editing or a purchase limit without code.

The customer pays on Stripe's page, in their browser's language and, if you turn it on, in their local currency. The money lands in your Stripe account.

A real example: lessons sold like products

British Academy, a language school in Italy, sells online one-to-one lessons in English, Spanish, French and German, and its site is built with Beste. Each lesson type is a product in the catalog, such as a single English lesson or a 12-lesson package. On the product page the buyer picks the level and whether to add the yearly enrollment fee. Each combination is a variant with its own price and its own Stripe payment link.

The buy button only appears once every choice is made. That small detail does a lot of work: the buyer cannot pay for the wrong combination, and every payment that reaches Stripe already says which lesson, which level and whether enrollment was included. Nobody has to write back and ask.

British Academy product page for an individual French lesson at 30 euros, with a level and an enrollment option selected and a Buy now button below
On the British Academy lesson page, the buy button shows once the level and the enrollment option are chosen.
Stripe checkout for the French lesson, with the order summary at 30 euros on the left and the contact and card fields on the right
The button opens Stripe checkout for that exact combination, and the order summary already names the lesson and the level.

What makes it work is that the school did not stop at the payment button. A buyer who is unsure of their level takes a free quiz or books a one-hour test with a teacher, and WhatsApp is always one tap away. The payment button handles the people who are ready; the other exits catch the people who are not. That is the pattern I recommend to most service businesses with fixed prices.

The setup, step by step

  1. Build the catalog first. Product pages, photos, variants, prices. The catalog is what gets found and what the customer reads before paying.
  2. Create one payment link per sellable variant. A 60 cm table and a 90 cm table are two links; a B1 lesson with enrollment and a B1 lesson without are two links. Name them in Stripe the way they are named on the site.
  3. Set the options on the link. Shipping rates if you ship, address collection if you need it, quantity editing if people buy more than one, a purchase limit if stock is finite.
  4. Attach the link to the variant's button. When the shopper picks the 90 cm size, the button must carry the 90 cm link. Show the button only once a variant is chosen.
  5. Add tracking parameters. Stripe supports URL parameters on payment links, per its docs. Use them to see which page sent the buyer.
  6. Set the after-payment page. Send the buyer to a thank-you page on your site that says what happens next and when.
  7. Test one purchase end to end. Then test the refund.

That is the whole integration. No API keys, no webhooks, no checkout page to build.

A payment link is tied to the price it was created with. When a price changes, create a new link, put it on the variant and deactivate the old one, or buyers with the old URL in a chat or email can still pay the old price.

What it costs compared with a store

CostCatalog plus Stripe Payment LinksShopify Basic
Monthly platform feeNone$29 a month billed yearly, per Shopify's pricing page
Online card rate (US)2.9% + 30¢, per Stripe pricing2.9% + 30¢ with Shopify Payments
Using another payment providerNot applicableAn extra 2% per sale on Basic

With a few sales a month, the store subscription is the larger cost. With many, the store's cart, orders and stock control are worth paying for. The post on catalog website vs online store gives a test for that.

Two costs people miss: Stripe charges more for international cards and currency conversion, and its processing fee is not returned when you refund, per its pricing page. If most of your buyers are abroad, price with that in mind.

Payment links outside the US

Oil painting of small parcels wrapped in brown paper and string lined up on a wooden counter by a sunny window
One link per price, wherever you sell. The payment provider changes from country to country; the pattern does not.

Stripe does not serve every country; check its list first. Where it is missing, or where buyers prefer a local method, a local provider offers the same idea under another name.

ProviderGood choice if you sell inWhat to know
Stripe Payment LinksUS, UK, EU and many other countriesNo monthly fee; best documented
PayPalAlmost anywhereBuyers recognise it; fees vary by country, per PayPal
MollieEU and UKSupports local methods such as iDEAL and Bancontact, per Mollie
Razorpay Payment LinksIndiaUPI, cards and netbanking, per Razorpay
Mercado PagoMexico, Brazil, Argentina and Latin AmericaCards, wallet balance and transfers, per Mercado Pago
iyzico LinkTurkeyLink payments without integration, per iyzico

How to choose: pick the provider your buyers already pay with, not the one that is easiest to set up. A Dutch buyer expects iDEAL, an Indian buyer UPI, a Brazilian buyer Pix. A link that offers only cards loses some of those sales.

Processor or merchant of record

Stripe, PayPal, Mollie and the others above are payment processors: you are the seller, and sales tax or VAT is yours to collect and report. Stripe Tax can calculate tax on Payment Links, but it is a separate paid product, per Stripe's tax docs.

A merchant of record, such as Paddle, Lemon Squeezy or Gumroad, is the legal seller instead and handles tax for you, at a higher fee. Paddle and Lemon Squeezy list 5% plus 50 cents per transaction, per Paddle and Lemon Squeezy.

Which to pick: for physical goods or services sold mainly in your own country, a processor is enough. For digital products sold across many countries, a merchant of record saves you a lot of tax paperwork and is usually worth the higher fee.

What you lose

The saving is real, and so are the gaps.

  • No shared cart. Each link sells one product. A customer who wants a table and two chairs makes separate payments, unless you create a bundle link or let them edit quantities.
  • No stock sync. If the last item sells, the catalog page still shows it until you change it. A purchase limit on the link stops overselling but does not update the page.
  • No order management. Payments show in the provider's dashboard. Packing, shipping and "where is my parcel" happen in your inbox.
  • Checkout on the provider's domain unless you pay for a custom domain option. You can change fonts, colors and logo.
  • Search results. A page whose button leaves for a payment link can still get product snippets with price and availability in Google, per Google's documentation.

If several of these matter, the Shopify Buy Button or a full store may fit better. The post on the Shopify Buy Button or full Shopify compares them.

Before you publish

  • Price, availability and shipping on each product page match its payment link
  • Every sellable variant's button carries its own link
  • The button appears only after a variant is chosen
  • Old links are deactivated after any price change
  • Each product page has Product structured data with a price and currency
  • One purchase and one refund are tested end to end

How this works in Beste

Beste builds the catalog and leaves the payment to your provider. You add products, options and variants, each variant with its own price, stock and photo. Attach a Stripe payment link to each variant and the product page's button opens Stripe checkout for the variant the shopper picked; until a full combination is chosen, there is nothing to buy. The shopper pays on Stripe and the money goes to your own Stripe account. Beste does not process payments and takes no commission on sales. Product pages are generated from a template you design once, product grids filter on the attributes you choose, and every product page includes Product structured data. The catalog has no product limit and is on the Free plan. Beste also links checkout to Shopify or Gumroad if you use those instead. Details on the Products Catalog and E-commerce pages.

Sources

Checked in October 2026.

Made with BesteUpgrade to Pro