Conversion tracking for Paddle
Paddle is a merchant of record, which changes the tracking problem in a way most guides miss entirely. Paddle is the seller — it handles tax, invoicing and the customer relationship at the payment layer — and its checkout runs as an overlay or on Paddle's own domain. That means the identifier has to be passed deliberately, the transaction record lives outside your database, and refunds and chargebacks are handled by someone else's system. For SaaS businesses using Paddle, almost every revenue number in an ads account is wrong by the size of their renewal base.
Free30 minutesNo obligation
Paddle tracking · what breaks
What goes wrong on Paddle
- 01
Paddle is the merchant of record, not you
The transaction lives in Paddle's system. Your database may have no record of the money at all.
- 02
Overlay checkout with no page navigation
Nothing navigates, so anything expecting a thank-you page load never fires.
- 03
Renewals billing with no browser
The same structural problem every subscription business has, and Paddle gives you good webhooks for it.
- 04
Tax-inclusive pricing confusing every comparison
What the customer paid, what Paddle remitted and what you received are three different numbers.
Paddle tracking · the fix
What changes — Paddle tracking
Transactions sent from Paddle webhooks
Server-side, so the overlay checkout stops being a dependency.
A stated definition of value
Gross, net of tax, or your payout. Chosen once and used on both sides of every comparison.
Renewals reported and acquisition optimized
Kept apart deliberately.
Paddle tracking · architecture
What Paddle actually lets you do
What Paddle gives you, and what its merchant-of-record model changes.
- 1
A full webhook set
Transaction, subscription, adjustment and refund events, all server-side.
- 2
Custom data on the checkout
Where the click identifier goes, passed in when you open the overlay.
- 3
Merchant-of-record handling
Paddle owns tax and compliance, and also owns the transaction record — which is why your own database may not have it.
- 4
Overlay and hosted checkout
Neither navigates in a way a page-load trigger can see.
- 5
No native ad-platform conversion sending
Paddle reports its own revenue and sends conversions nowhere.
Paddle tracking · diagnose
Where Paddle 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 Paddle transaction and check its custom data
If the identifier is not there, the join is broken at the source and nothing downstream fixes it.
- 02
Compare Paddle transactions against reported conversions
Per transaction, for a closed window.
- 03
Check whether the overlay callback is the only trigger
If so, every interrupted checkout that still completed is missing.
- 04
Confirm currency is sent per transaction
Paddle is global by design; an account default will be wrong constantly.
- 05
Check whether refunds reverse anything
Usually not, and Paddle exposes them clearly.
Paddle tracking · prove
The QA evidence — Paddle tracking
Run on Paddle specifically, on a live conversion rather than in preview mode.
Source of truth
Paddle's transaction records — completed transactions by date, net of refunds and chargebacks
- A test purchase completed with the identifier confirmed present in the Paddle transaction's custom data.
- A purchase where the overlay was closed immediately after payment, confirmed to still report.
- A refund confirmed to reverse at each destination.
- Paddle transactions reconciled per transaction against each platform for a closed window, at the agreed value definition.
- Currency confirmed correct on a transaction in a non-default currency.
- Reconciled over a fully closed window, matched per record rather than on totals.
- Re-checked 30 days later, and after any platform update.
Paddle tracking · free audit
What we check in the free audit
- Open a Paddle transaction and check its custom data
- Compare Paddle transactions against reported conversions
- Check whether the overlay callback is the only trigger
- Confirm currency is sent per transaction
- Check whether refunds reverse anything
Checked against
Paddle's transaction records — completed transactions by date, net of refunds and chargebacks
Free30 minutesNo obligation
Paddle tracking · when not to buy
When you don't need this on Paddle
Worth reading before you buy anything, from us or anyone.
- If you sell a single one-off product in one currency with no subscriptions, Paddle's own reporting may be all you need.
- If Paddle's numbers and your ad platform numbers already reconcile within a few percent, this is working.
- Decide gross versus net yourself first — a surprising share of these discrepancies end there with no code change.
- If you are not running paid media, fix the reporting definition and skip the ad-platform work.
Paddle tracking · what we deliver
The event map on Paddle
Checkout completed
The acquisition event, from the transaction.completed webhook.
Subscription created
For recurring products, the event that starts the relationship.
Recurring transaction completed
Renewal revenue. Reported, rarely sent.
Subscription cancelled
Reverse the lifetime value where accepted.
Refund or chargeback
Paddle handles these and exposes them. Reverse them.
Written guarantee
95%+ tracking accuracy
Measured against Paddle's transaction records — completed transactions by date, net of refunds and chargebacks. 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
Paddle tracking questions, answered
It changes where the truth lives. Paddle is the seller, so the authoritative transaction record is in Paddle's system rather than your database — and the amount the customer paid, the tax Paddle remitted and the payout you received are three different figures. Pick which one you mean and use it consistently; most Paddle reconciliation arguments are really about that.
From the transaction.completed webhook, server-side. The overlay's JavaScript callback is convenient and unreliable — the customer can close the overlay the moment payment succeeds, and the callback never runs even though the money moved.
As custom data passed in when you open the checkout. It then appears on the transaction record and survives to the webhook. If it is not there, nothing downstream can attribute the sale, and checking one real transaction tells you in a minute.
Same as any subscription business: report them, and think hard before sending them to a bidding algorithm. A renewal credited against the original click tells the algorithm that a year-old click just produced revenue.
Free · 30 min
Get Paddle tracking done properly
Free30 minutesNo obligation
