Server-side tracking for Teachable
Teachable's webhooks carry enrolment and transaction events, which is what makes recurring revenue visible at all. The click ID has to be stored against the student at purchase, because installment three has no session.
Free30 minutesNo obligation
Teachable server-side · what breaks
What goes wrong on Teachable
- 01
Hosted checkout with limited injection
A ceiling on what browser-side tracking can see.
- 02
Payment plans and subscriptions
Most revenue arrives after the checkout page is gone.
- 03
Full plan value sent upfront
Reporting money that may never be collected.
- 04
Refunds never reversed
And course refund rates are not small.
Teachable server-side · the fix
What changes — Teachable server-side
Each payment counted as it clears
First and subsequent.
Click ID stored against the student
So installments stay attributable.
Refunds reversed
Keeping reported revenue honest.
Teachable server-side · architecture
What Teachable exposes to a server container
Webhook-sourced money events, browser-side funnel.
- 1
Transaction webhooks as the event source
One event per payment.
- 2
Click ID on the student record
Captured at the course page, referenced later.
- 3
Amount charged, not plan total
At every stage.
- 4
Refunds wired as reversals
Material in this category.
- 5
Container receiving both browser and webhook events
On your own subdomain.
Teachable server-side · diagnose
Where Teachable 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 Teachable collected revenue to platform revenue
For a closed month.
- 02
Check what value checkout sends
Plan total or amount charged.
- 03
Confirm which webhooks are subscribed
Usually none.
- 04
Check whether a click ID reaches the student record
Determines installment attribution.
- 05
Look at the refund rate
It sizes the overstatement.
Teachable server-side · prove
The QA evidence — Teachable server-side
Run on Teachable specifically, on a live conversion rather than in preview mode.
Source of truth
your Teachable transaction records
- Each payment confirmed arriving as its own event.
- Click ID present on a live student record.
- Values confirmed as amounts charged rather than plan totals.
- Collected revenue reconciled against Teachable 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.
Teachable server-side · free audit
What we check in the free audit
- Compare Teachable collected revenue to platform revenue
- Check what value checkout sends
- Confirm which webhooks are subscribed
- Check whether a click ID reaches the student record
- Look at the refund rate
Checked against
your Teachable transaction records
Free30 minutesNo obligation
Teachable server-side · when not to buy
When you don't need this on Teachable
Worth reading before you buy anything, from us or anyone.
- If you sell only one-time courses with no payment plans, the checkout event is most of the story.
- If reported revenue already matches Teachable's collected revenue, nothing here needs fixing.
- Changing the checkout value from plan total to amount charged is a small change with most of the benefit.
- The webhook work needs somewhere to receive it. If that's not available to you, say so early rather than half-building.
Teachable server-side · what we deliver
What the server-side build gives you on Teachable
Container on your own subdomain
Your domain, your certificate, hosting in an account you control.
Money events from Teachable transactions
Teachable's transaction webhooks, which fire per payment with no browser involved.
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 your Teachable transaction 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
Teachable server-side questions, answered
Visibility of installments and renewals, which no browser can see, plus refund reversal.
The student record, captured at the course page.
The Teachable transaction ID, one per payment.
Somewhere to receive the webhook. That's the honest prerequisite on any hosted platform.
Free · 30 min
Move Teachable events off the browser
Free30 minutesNo obligation
