Revenue Sources (Stripe / Polar)
If you sell your own product (SaaS, e-commerce, courses…), Revenue Sources let you tie each Stripe or Polar payment back to the Synaptyx click that drove it — so you know your true ROI, not just clicks.
This is different from Synaptyx’s own billing. Revenue Sources connect your merchant account so your customers’ payments become attributed conversions.
How attribution works
- A visitor lands on your site via a Synaptyx link, so the
clickidis in the URL (and stored in a_syx_cidcookie). - A small JS snippet exposes
window.synaptyx.attach(...)which injectsmetadata.synaptyx_clickidinto your Stripe/Polar checkout payload. - When the payment succeeds, the provider fires a webhook to Synaptyx.
- Synaptyx verifies the signature, reads the click ID, and creates a conversion with the real order total — attributed to that click.
For Stripe Payment Links and Buy Buttons (where you can’t set metadata),
Synaptyx falls back to Stripe’s client_reference_id. And if no click ID is present
at all, an optional coupon/promo code on the campaign provides a last-resort
attribution path.
Connecting a source
Go to Sources → Revenue Sources and pick Stripe or Polar. There are two connection modes, chosen automatically based on whether OAuth is configured:
| Mode | How | TLS / webhook |
|---|---|---|
| OAuth | One-click connect | Webhook auto-provisioned (Polar), or routed by connected account (Stripe Connect) |
| API key + webhook secret | Paste credentials manually | You set up the webhook; the signing secret is stored encrypted |
Stripe
- Uses Stripe Connect when OAuth is enabled; otherwise API-key mode.
- Events are automatically routed to the right source by their connected Stripe account.
- Every webhook is signature-verified, with replay protection.
All credentials are encrypted at rest, and every incoming webhook is verified by its cryptographic signature before Synaptyx acts on it.
Installing the snippet
Each source exposes a JS snippet (its “snippet” endpoint). Drop it on your site; it:
- reads
clickidfrom the URL or the_syx_cidcookie, - exposes
window.synaptyx.attach(opts)to inject the click ID into checkout, - works with Stripe Checkout, Payment Links, and Polar.
Refunds, disputes & event mapping
- Refunds, chargebacks, and disputes update the existing conversion in place (adjusting the amount) rather than writing a negative row — so your revenue stays consistent.
- Event mappings let you decide which provider events count as conversions and how they map to goals.
- Every webhook is logged with an outcome (
attributed,orphan_no_clickid,duplicate,invalid_signature, …) you can review; webhook logs are kept 30 days.
Health & sync
Synaptyx automatically reconciles revenue and refreshes your connection before it expires, and warns you if a source breaks or a connection is about to lapse.