Conversion tracking for Stripe
Stripe is the cleanest source of truth in this entire list — every charge, refund, renewal and failure is recorded with an ID and a timestamp — and its checkout is frequently hosted on Stripe's own domain, which splits the session at exactly the moment the money moves. That combination makes Stripe both the easiest platform to reconcile against and one where browser-side purchase tracking is least reliable.
Free30 minutesNo obligation
Stripe tracking · what breaks
What goes wrong on Stripe
- 01
Stripe Checkout is a different domain
The session splits where the money moves, so browser attribution is at its weakest exactly when it matters.
- 02
Renewals have no browser at all
A card charged on month four fires nothing anywhere.
- 03
Refunds and failed payments ignored
Both are webhook events and both are routinely unwired.
- 04
Lifetime value guessed at signup
Rather than accumulated as payments clear.
Stripe tracking · the fix
What changes — Stripe tracking
Every charge counted as it clears
First payment, renewal, upgrade.
Click ID in Stripe metadata
So renewals stay attributable indefinitely.
Refunds and failures reversed
So reported revenue tracks collected revenue.
Stripe tracking · architecture
What Stripe actually lets you do
Stripe is a near-perfect event source wrapped around a checkout you may not own.
- 1
Comprehensive webhooks
Charges, invoices, subscriptions, refunds, failures. Everything you need.
- 2
Metadata on customers and subscriptions
Where the click ID lives so renewals stay attributable.
- 3
Stripe Checkout, hosted
A different domain, which splits the session.
- 4
Stripe Elements, embedded
Stays on your domain, which avoids the hop.
- 5
The API
Authoritative reconciliation, trivially.
Stripe tracking · diagnose
Where Stripe 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
Compare Stripe collected revenue to platform revenue
For a closed month.
- 02
List subscribed webhooks
Usually none, or only the checkout one.
- 03
Check whether click IDs reach Stripe metadata
Determines renewal attribution entirely.
- 04
Check whether refunds do anything
Usually not.
- 05
Establish whether checkout is hosted or embedded
It decides how much the browser can see.
Stripe tracking · prove
The QA evidence — Stripe tracking
Run on Stripe specifically, on a live conversion rather than in preview mode.
Source of truth
your Stripe charge and invoice records
- Each payment type confirmed arriving as its own event.
- Click ID present in Stripe metadata on a live customer.
- Charge ID confirmed as the deduplication key at every destination.
- Collected revenue reconciled against Stripe for a closed month.
- A real refund tested and confirmed reversing.
- Reconciled over a fully closed window, matched per record rather than on totals.
- Re-checked 30 days later, and after any platform update.
Stripe tracking · free audit
What we check in the free audit
- Compare Stripe collected revenue to platform revenue
- List subscribed webhooks
- Check whether click IDs reach Stripe metadata
- Check whether refunds do anything
- Establish whether checkout is hosted or embedded
Checked against
your Stripe charge and invoice records
Free30 minutesNo obligation
Stripe tracking · when not to buy
When you don't need this on Stripe
Worth reading before you buy anything, from us or anyone.
- If you sell one-time products through embedded Elements on your own domain and your numbers reconcile, the browser event may genuinely be sufficient.
- If you have no subscriptions and no refunds, most of the recurring complexity here doesn't apply to you.
- The webhook work is well-documented and any backend developer can do it. Hand them this page.
- Check which webhooks you already subscribe to first. Some stacks have more wired than the team realises.
Stripe tracking · what we deliver
The event map on Stripe
Checkout started
Browser-side, before the hop to Stripe.
Charge succeeded
Stripe webhook, with the charge ID. The money event.
Invoice paid
Stripe webhook, per renewal.
Refund
Stripe webhook, as a reversal.
Payment failed
Stripe webhook. Involuntary churn, separable from voluntary.
Written guarantee
95%+ tracking accuracy
Measured against your Stripe charge and invoice records. 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
Stripe tracking questions, answered
The webhook. Stripe Checkout is often a different domain and the customer may never return to your success page; the charge is a fact either way.
Store the click ID in Stripe customer or subscription metadata at signup. Every later invoice can reference it.
Elements keeps the session on your domain and avoids the hop. Hosted Checkout is simpler and splits the session. Either works if the money event comes from the webhook.
A separate webhook and a separate problem. Involuntary churn is often more recoverable than voluntary, and it's worth tracking distinctly.
Free · 30 min
Get Stripe tracking done properly
Free30 minutesNo obligation
