How to Use Lemon Squeezy to Sell a SaaS Plan With a Trial
By Joris van Huët
Enterprise Interim CMO & Marketing Leader · 15+ years · 50+ orgs
Published
2026-10-26
The short answer: if you are launching a monthly SaaS plan with a free trial and most of your buyers are outside the United States, Lemon Squeezy will keep 7% + 50¢ of each renewal's total (the 5% platform fee, 1.5% for international buyers and 0.5% for subscription payments, per its fees page, checked on 26 October 2026) and handle the VAT; that is the price of not filing it yourself. The steps: apply for activation, build the plan with a trial in test mode, put the overlay checkout on your pricing page, pass your user ID through checkout, wire a webhook, test every status, set recovery, then copy everything to live mode.
Disclosure: I may earn a commission through some links on this site. It does not change what this page says.
The job: a visitor on your pricing page starts a 14-day trial without leaving your site, your app grants access when the subscription starts, and loses it only when Lemon Squeezy says the subscription has expired. What the platform is and costs is in the Lemon Squeezy glossary entry.
Settle three things first:
- Work out one renewal. For example, a $29 plan sold to a buyer in an EU country with a 19% VAT rate is a $34.51 order. The fee is 7% x $34.51 = $2.42, plus $0.50, so $2.92. The $5.51 of VAT is remitted for you, and $34.51 - $5.51 - $2.92 = $26.08 is yours, before any payout fee.
- Reuse the account system you have. Your app already knows its users. Pass the user's ID through checkout as custom data, which the webhooks article says comes back to you in the webhook, and you never have to match people by email.
- Pick the number that says the launch worked. Trials that become paying subscriptions, read from the subscription statuses in your dashboard, and failed renewals that recover.
What you need
- A Lemon Squeezy account. It is free to start and there is no monthly fee, per the pricing page.
- A product it will approve. Software sold by subscription or license key is the typical approved case, per the activation article.
- Someone who can add a script and an endpoint to your site and app. Two small jobs: the overlay script and a webhook receiver.
Step 1: Apply for activation on day one
A new store starts in test mode. Click "Activate your store" in the sidebar, answer the short questionnaire and verify your identity; the activation article says approval typically takes 2 to 3 business days. Start it now and build while you wait.
Step 2: Create the plan with a trial
Add a product, choose Subscription under pricing, set the price and a monthly interval, then switch on "Subscription has free trial?" and enter 14 days, as the free trials article describes. The subscriptions article caps a billing period at one year and warns that changing a product's price later only affects new subscriptions; existing ones keep the price they started with.
Step 3: Put the overlay checkout on your pricing page
The checkout overlay opens the checkout as a popup on your own site. Copy the HTML embed code for a Buy link, style it like your other buttons, and choose whether the overlay shows your logo, product media, description, name field and discount code field. The script, lemon.js, watches for clicks on .lemonsqueezy-button elements. In React or Vue, call window.createLemonSqueezy() after the component mounts, because the script may load before your button exists.
Step 4: Wire the webhook that grants access
Under Settings » Webhooks, add a callback URL in your app, a signing secret of 6 to 40 characters and the events you need, at least subscription created, updated and expired, per the webhooks article. Validate the signature on every request. Then map statuses to access the way the subscriptions article does: on trial, active, paused, past due, unpaid and cancelled all keep access; expired removes it.
Step 5: Run the whole thing in test mode
Make a test purchase from the overlay with card 4242 4242 4242 4242, any future expiry and any three-digit CVC, following the test mode article. Receipts in test mode go to you and your team, whatever customer email you type. Then use simulated webhook events to send subscription cancelled, resumed and expired to your app, and check that access follows each one.
Step 6: Set recovery before the first renewal
The recovery and dunning article lists what it does for you: renewal reminders seven days before the date, four retries of a failed card over two weeks with an email each time, then dunning emails whose wording and schedule you can edit in the Recovery settings. Decide there whether an unpaid subscription is cancelled after a set time or left unpaid so the customer can reactivate it.
Abandoned cart emails are also on by default: three emails over three days, sent on your behalf, with a 5% fee on the revenue they recover, per the abandoned cart article. Lemon Squeezy earns a second cut of a sale that its own reminder closed, so whether those emails stay on for a trial that costs nothing to start is your call in Settings » Recovery, not a default to accept.
Step 7: Give customers the portal
Link "Manage billing" in your app to the Customer Portal at your store's /billing address. Customers can switch plans, pause, cancel or resume, and change payment methods without a support ticket. Signed portal URLs from the API skip the magic-link sign-in.
Step 8: Copy to live mode
Once the store is approved, use "Copy to Live Mode" on the product and any discounts, create a live API key and add live webhooks. The test mode article is explicit that test products, test keys and test webhooks do not carry over on their own.
One step for an agent, with a person on the switch
A failed renewal is a moment where a short personal note can save a customer, and it is a good first job for an agent. The Zapier integration offers a Subscription Payment Failed trigger. Add an AI by Zapier step that drafts two sentences using the plan name and the customer's first name, then a Human in the Loop approval so a person reads, edits or declines the draft before it sends. Two limits: the Zapier integration works with live mode data only, and Lemon Squeezy's own dunning emails are already going out, so the note should add a human voice, not another reminder.
Warnings from Lemon Squeezy's docs
- Real cards in test mode. The test mode article says this may be treated as fraud and can get the store suspended.
- Expecting test work to go live by itself. Products, keys and webhooks are separate per mode.
- Repricing existing subscribers by editing the product. It only changes new subscriptions; existing ones need a plan change.
- Expecting abandoned cart emails in week one. They are not sent for stores less than a week old.
FAQ
How long can the free trial be?
Any length in days, weeks, months or years, per the free trials article; trials are available on subscription products.
What happens when a renewal payment fails?
Four retries over two weeks, with an email each time and access kept while the subscription is past due, then dunning emails once it becomes unpaid, according to the recovery article. PayPal subscriptions follow PayPal's own retry rules.
Can customers cancel without emailing me?
Yes, through the Customer Portal, which also handles pausing, plan changes and payment methods.
ABOUT THE AUTHOR
I am Joris van Huët, an enterprise interim CMO. 15+ years, 50+ organizations, including ING, P&G, Nestlé, BNP Paribas, WeTransfer and Vinted. I take on innovation projects (venture building, design sprints), agentic marketing (setting up and running AI agents) and hands-on multi-channel work. See the track record.
I wrote and published this with AI assistance, and I answer for it. Claims about my own experience are limited to the track record above, and a statistic links to its source or is labelled as an example. I sell interim and fractional CMO work, which is why this site exists. How this site is written.
A senior operator doing the work: campaigns, channels, CRM and AI agents, live from day one.