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.

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.


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
- Build the catalog first. Product pages, photos, variants, prices. The catalog is what gets found and what the customer reads before paying.
- 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.
- 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.
- 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.
- Add tracking parameters. Stripe supports URL parameters on payment links, per its docs. Use them to see which page sent the buyer.
- Set the after-payment page. Send the buyer to a thank-you page on your site that says what happens next and when.
- 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
| Cost | Catalog plus Stripe Payment Links | Shopify Basic |
|---|---|---|
| Monthly platform fee | None | $29 a month billed yearly, per Shopify's pricing page |
| Online card rate (US) | 2.9% + 30¢, per Stripe pricing | 2.9% + 30¢ with Shopify Payments |
| Using another payment provider | Not applicable | An 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

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.
| Provider | Good choice if you sell in | What to know |
|---|---|---|
| Stripe Payment Links | US, UK, EU and many other countries | No monthly fee; best documented |
| PayPal | Almost anywhere | Buyers recognise it; fees vary by country, per PayPal |
| Mollie | EU and UK | Supports local methods such as iDEAL and Bancontact, per Mollie |
| Razorpay Payment Links | India | UPI, cards and netbanking, per Razorpay |
| Mercado Pago | Mexico, Brazil, Argentina and Latin America | Cards, wallet balance and transfers, per Mercado Pago |
| iyzico Link | Turkey | Link 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.
