Skip to Content
Integrations & TrackingRevenue Sources (Stripe / Polar)

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

  1. A visitor lands on your site via a Synaptyx link, so the clickid is in the URL (and stored in a _syx_cid cookie).
  2. A small JS snippet exposes window.synaptyx.attach(...) which injects metadata.synaptyx_clickid into your Stripe/Polar checkout payload.
  3. When the payment succeeds, the provider fires a webhook to Synaptyx.
  4. 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:

ModeHowTLS / webhook
OAuthOne-click connectWebhook auto-provisioned (Polar), or routed by connected account (Stripe Connect)
API key + webhook secretPaste credentials manuallyYou set up the webhook; the signing secret is stored encrypted
  • 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 clickid from the URL or the _syx_cid cookie,
  • 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.

Next