Connect your Lemon Squeezy store. Its orders, subscription charges and refunds then come into Spreelytics by themselves, credited to the channel that brought the buyer in.
Orders arrive as purchase events and flow into goals, the overview and the acquisition reports.
Orders on their own
Connecting creates the webhook on your store. Each order and subscription charge then arrives by itself, with no revenue events for you to send.
Orders and subscription charges
Refunds, partial included
Counted once, even when Lemon Squeezy retries
Attributed to a channel
Add the visitor id to the checkout’s custom data. On a plain buy link, your page adds it as a URL parameter on click, so no backend is needed.
checkout[custom][spreelytics_visitor_id]
Works on a plain buy link
Last-touch or linear, 1–90 day window
One reporting currency
Charge in as many currencies as you like. Each payment is converted once into your reporting currency at the rate for the day it happened, then frozen.
Converted at that day’s rate
Past revenue never moves
The original amount is kept
How it works
Use it in three steps.
01
Connect your store
In Settings → Revenue, enter your store ID and a Lemon Squeezy API key. Connecting creates the webhook on that store.
02
Pass the visitor id
Add Spreelytics.getVisitorId() to the checkout as checkout[custom][spreelytics_visitor_id], or to the buy link when it is clicked.
03
Read revenue by channel
From the moment you connect, payments land on the Revenue page, with MRR and ARR for subscriptions, and as purchase events in goals, the overview and the acquisition reports.
Your store ID and a Lemon Squeezy API key, entered once in Settings → Revenue. The webhook is created on that one store. The key also reads your past orders when you import them.
Where does the visitor id go?
In the checkout’s custom data. Through the API that is checkout_data.custom; on a buy link it is the URL parameter checkout[custom][spreelytics_visitor_id], which your page adds when the link is clicked.
What if a payment has no visitor id?
It is still recorded and counts toward your totals. It just cannot be traced to a channel. The Channels list counts it as Direct and the Sources list as Direct/None. The URLs and UTM lists leave it out.
Do payments count toward my event allowance?
Each payment counts as one event, the same as a custom event. Refunds do not count. Payments you import from before you connected do not count either.
Can I send payments from my own server as well?
Yes, for payments Lemon Squeezy does not see. The revenue API is in the docs. If you also send a Lemon Squeezy payment that way under a different id, it is counted twice.