Server-side tracking for Lemon Squeezy
The Lemon Squeezy server-side build is one of the smallest in this library: a webhook handler on order_created, the click identifier passed in as custom data at checkout, and refunds wired. You almost certainly do not need a server container for it, and we would rather say so than sell you infrastructure a small digital store does not need.
Free30 minutesNo obligation
Lemon Squeezy server-side · what breaks
What goes wrong on Lemon Squeezy
- 01
Hosted checkout on another domain
Your first-party cookies do not travel there, so the identifier has to be passed deliberately.
- 02
The order record living outside your database
Lemon Squeezy is the merchant, so it holds the authoritative record.
- 03
License and subscription renewals with no browser
Digital products renew on a schedule like any subscription.
- 04
Tax-inclusive pricing
What the customer paid and what you receive differ, and comparing them produces a gap that looks like a bug.
Lemon Squeezy server-side · the fix
What changes — Lemon Squeezy server-side
Orders sent from webhooks
Server-side, so a closed tab stops costing you a conversion.
The identifier carried through checkout
Via custom data, verified on a real order.
An honest answer about whether to build this
For a store at low volume, the native reporting may be enough and we will say so.
Lemon Squeezy server-side · architecture
What Lemon Squeezy exposes to a server container
The server-side build on Lemon Squeezy specifically.
- 1
Source from the order webhook
Not from the overlay callback, which a closed tab defeats.
- 2
Pass the identifier as custom data
At checkout creation, and verify it lands on a real order.
- 3
Decide gross or net
Tax-inclusive pricing means the two genuinely differ.
- 4
Separate first order from renewals
The webhook distinguishes them.
- 5
Wire refunds
Exposed and usually ignored.
Lemon Squeezy server-side · diagnose
Where Lemon Squeezy tracking breaks, in diagnostic order
Each check rules out a class of cause, so by the last one there is usually a single explanation standing.
- 01
Open a real order and check its custom data
If the identifier is absent, nothing downstream can attribute it.
- 02
Compare Lemon Squeezy orders against reported conversions
Per order, for a closed window.
- 03
Check whether the overlay callback is the only trigger
If so, closed tabs are costing you conversions.
- 04
Confirm currency is sent per order
Digital goods sell everywhere.
- 05
Check whether refunds reverse
Usually not.
Lemon Squeezy server-side · prove
The QA evidence — Lemon Squeezy server-side
Run on Lemon Squeezy specifically, on a live conversion rather than in preview mode.
Source of truth
Lemon Squeezy's order records — completed orders by date, net of refunds
- A test order completed with the identifier confirmed in its custom data.
- An order where the overlay was closed immediately, confirmed to still report.
- A refund confirmed to reverse.
- Orders reconciled per order against each platform for a closed window.
- Currency confirmed correct on a non-default-currency order.
- Reconciled over a fully closed window, matched per record rather than on totals.
- Re-checked 30 days later, and after any platform update.
Lemon Squeezy server-side · free audit
What we check in the free audit
- Open a real order and check its custom data
- Compare Lemon Squeezy orders against reported conversions
- Check whether the overlay callback is the only trigger
- Confirm currency is sent per order
- Check whether refunds reverse
Checked against
Lemon Squeezy's order records — completed orders by date, net of refunds
Free30 minutesNo obligation
Lemon Squeezy server-side · when not to buy
When you don't need this on Lemon Squeezy
Worth reading before you buy anything, from us or anyone.
- If you are selling a small volume of digital products, the native reporting is genuinely adequate and this work will not pay for itself. That is the honest answer for a real share of Lemon Squeezy stores.
- If your orders and platform conversions already reconcile within a few percent, nothing here needs doing.
- If you are not running paid media, skip the ad-platform half entirely.
- Decide gross versus net yourself first — it resolves a good number of these questions with no build at all.
Lemon Squeezy server-side · what we deliver
What the server-side build gives you on Lemon Squeezy
Container on your own subdomain
Your domain, your certificate, hosting in an account you control.
Money events from Lemon Squeezy's order records
Lemon Squeezy's order list is authoritative for what customers paid. Your payout is what remains after tax and fees. Two different numbers, and the report should say which it means.
Deduplicated at every destination
On a shared event ID, verified before any existing path is removed.
Consent enforced before dispatch
A denied destination receives nothing, verified by capture rather than configuration.
Written guarantee
95%+ tracking accuracy
Measured against Lemon Squeezy's order records — completed orders by date, net of refunds. Miss it and we keep working at no cost.
Pricing
Pick the package that fits your ad spend
Browser-side starter
$400One-time fee · lifetime ownership
Repairs and verifies the browser-side setup you already have, on a live conversion. Honest about its ceiling on this platform.
- Root cause fixed, not worked around
- Verified on a live conversion
- Reconciled against your own records
- Written handover
1st-party server-side
Recommended$800One-time fee · most popular
Money events sent from your own records through a first-party container on your subdomain, so the browser can no longer lose them.
- First-party server container on your own subdomain
- Money events from your records, not the browser
- Deduplicated on a shared event ID at every destination
- First-party cookies beyond Safari's 7-day cap
- 95%+ accuracy and 8+ Meta EMQ, guaranteed in writing
Full 1st-party stack
$1,800One-time fee · lifetime ownership
Every paid channel server-side plus the offline loop, with monitoring so the next break surfaces in days.
- Everything in 1st-party server-side
- Pinterest, Snapchat, Reddit and LinkedIn CAPI
- CRM and offline conversion loop
- Refunds and cancellations corrected wherever each platform allows it
- Monitoring on every destination
FAQ
Lemon Squeezy server-side questions, answered
Almost certainly not at this scale. A small webhook handler that receives the order event and forwards it to your destinations is simpler, cheaper and does the same job. We would say so rather than sell you infrastructure.
They behave like one-off purchases unless you sell renewable licenses, in which case treat them as subscriptions. Decide per product type rather than sending one blended value.
For the funnel above purchase, yes. The purchase itself should come from the webhook.
A day or two for most Lemon Squeezy stores. It is one of the smaller builds in this list, which is part of why the honest advice is often to check whether you need it first.
Free · 30 min
Move Lemon Squeezy events off the browser
Free30 minutesNo obligation
