Meta Conversions API setup for Paddle
The Meta build on Paddle needs an explicit currency on every event — Paddle sells globally and localizes prices by design, so an account default will be wrong for most of your transactions. Pair the pixel and the Conversions API on the Paddle transaction ID so a purchase counts once whether or not the customer stayed on the page.
Free30 minutesNo obligation
Paddle + Meta CAPI · 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 + Meta CAPI · the fix
What changes — Paddle + Meta CAPI
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 + Meta CAPI · architecture
How Meta tracking behaves on Paddle
The Meta destination on Paddle.
- 1
Purchase from the webhook with a shared event_id
The overlay may also fire a pixel event; they must be paired or every sale counts twice.
- 2
Customer data hashed from the Paddle transaction
Normalized before hashing.
- 3
Currency sent explicitly
Paddle sells globally by design, so the account default will be wrong for most transactions.
- 4
Renewals as a custom event or not at all
Never as Purchase.
- 5
Refunds and chargebacks reversed
Both are exposed and both matter.
Paddle + Meta CAPI · 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 + Meta CAPI · prove
The QA evidence — Paddle + Meta CAPI
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 + Meta CAPI · 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 + Meta CAPI · 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 + Meta CAPI · what we deliver
What gets built for Meta on Paddle
A shared event ID on both paths
the Paddle transaction ID
Standard event names, exactly cased
Meta matches on name and ID together, so a case difference alone produces two events.
Customer data normalized then hashed
Lowercase and trimmed email, phone in E.164. This is where nearly every low match quality score comes from.
fbc and fbp forwarded from the browser
fbc only exists if fbclid was captured on landing — a very common gap.
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 + Meta CAPI questions, answered
The Paddle transaction ID as a shared event_id on both the pixel event and the Conversions API event. Then check the deduplication indicator in Events Manager on a real purchase rather than assuming.
Because Paddle sells globally and localizes prices by design, so a large share of your transactions are in currencies other than your account default. Without an explicit currency per event, Meta interprets every one of them in the default and your revenue figures become inexplicable.
The billing email and country from the transaction, normalized before hashing. Paddle's data is clean; the losses come from skipping normalization.
Yes. Paddle exposes refunds and chargebacks clearly, and leaving them unreversed means reported revenue drifts upward by your refund rate permanently.
Free · 30 min
Get Pixel and CAPI counting once on Paddle
Free30 minutesNo obligation
