Affiliate tracking integrations for the billing you run.

Stripe, Paddle, Lemon Squeezy, Polar, Chargebee and Recurly walk into a webhook.

AffiliateTracking has affiliate tracking integrations for 6 billing tools: Stripe, Paddle, Lemon Squeezy, Polar, Chargebee and Recurly. Your billing tool reports each sale, renewal and refund. AffiliateTracking works out who sent it and what they're owed.

What connecting takes6 tools
StripeA script tag and one key
PaddleOne line at checkout
PolarA script tag
Lemon SqueezyA script tag
ChargebeeOne custom field
RecurlyOne custom field

What each billing tool needs from you. The setup for each is below.

Billing tools

Pick your billing tool

Each one gets its own setup guide, with every event it sends and what AffiliateTracking does with it.

Stripe

One script tag on your site and one restricted key. Payment Links, the Pricing Table and the Buy Button need nothing else.

  • One-time sales, subscriptions, renewals and upgrades
  • Full and partial refunds take the commission back
  • Cloud creates the Stripe webhook for you
Stripe setup, event by event

Paddle

Your checkout passes the affiliate's token to Paddle in one line. After that, Paddle's webhook does the rest.

  • First sales and every renewal after
  • Refunds and chargebacks, once Paddle approves them
  • On cloud, one API key adds the webhook for you
How the Paddle setup works

Lemon Squeezy

The script adds the token to your checkout links as custom data. Orders, renewals and refunds all report back.

  • Orders, subscription renewals and partial refunds
  • Test-mode orders never earn commission
  • On cloud, one API key adds the webhook for you
Lemon Squeezy setup

Polar

The script adds the token to your Polar checkout links as reference_id. Add one webhook and paste its secret.

  • Paid orders and every renewal order after
  • Commission on the net amount, before tax
  • Refunds take back the refunded share
Polar affiliate setup, step by step

Chargebee

Save the token in one customer custom field at checkout. Every paid invoice after that credits the same affiliate.

Chargebee setup

Recurly

Save the token in one account custom field when you create the account. Renewals, refunds and voids follow.

Recurly setup

Side by side

The same questions for each billing tool, answered the same way.

Checked against the code on . Addresses go after your workspace address, or your own on self-host.
Billing toolHow the first sale finds its affiliateRenewalsRefundsConnect on cloudWebhook address
StripeThe script, or your Checkout SessionYesYesOne restricted key/webhooks/stripe
Paddlecustom_data.token at checkoutYesYesOne API key/webhooks/paddle
Lemon Squeezycheckout[custom][token], added by the scriptYesYesOne API key/webhooks/lemonsqueezy
Polarreference_id, added by the scriptYesYesWebhook and its secret/webhooks/polar
ChargebeeThe cf_aff_token customer fieldYesYesWebhook and a password/webhooks/chargebee
RecurlyThe aff_token account fieldYesYesWebhook and a password/webhooks/recurly

What every billing event goes through

Whichever tool sends it, an event takes the same path before any affiliate earns a cent.

Checked first

A signature or password check runs before anything touches the database. A forged event goes nowhere.

Counted once

Billing tools resend events. The same event arriving twice changes nothing the second time.

13 fraud rules

Rules like self-referral, coupon hijack and bot traffic hold a sale with the evidence, before the payout run.

Written to the ledger

Each sale is a journal whose lines sum to zero, so balances can't drift.

Refunds come back

A refund takes back the same share of the commission. Already paid? It comes off the next payout.

Customers stay linked

The first affiliate to bring a customer keeps them, so every renewal after credits the same person.

Beyond your billing tool

Other ways in and out, plus what isn't on the list.

What else connects

  • A REST API, with admin keys and keys that only see one affiliate
  • Postbacks that send each sale to an affiliate's own tracker, signed
  • A read-only MCP server for asking Cursor or Claude about holds and earnings
  • Import from Rewardful, FirstPromoter, Tolt or Tapfiliate, with a dry run first

Not on the list

One ledger for every billing tool

Each paid sale becomes a journal in the partner's ledger, in the sale's own currency. A refund adds a second journal that takes the share back. Nobody edits a journal after the fact.

Two billing tools at once? They write to the same ledger, so a partner has one balance per currency. How the ledger keeps every cent.

Partner ledger on demo data: every journal entry with its source, amount, line count, a journal sum of 0 and a running balance.
A partner ledger on demo data. Stripe, Paddle, Polar and the rest post journals like these.

Integrations FAQ

Which billing tools does it work with?

Stripe, Paddle, Lemon Squeezy, Polar, Chargebee and Recurly, on cloud and on self-host. Other checkouts, like Shopify, can't report sales to it yet.

Do I need a developer?

Not for Stripe Payment Links, the Pricing Table, the Buy Button, Lemon Squeezy links or Polar links. The script handles those. Paddle, Chargebee and Recurly need one line or one field in your checkout code. The rest happens in settings.

Do integrations cost extra?

No. Every billing integration is on every cloud plan and in self-host.

Where do I connect my billing tool on cloud?

In your workspace settings, under Connect your billing. Stripe, Paddle and Lemon Squeezy connect with one key, and AffiliateTracking adds the webhook for you. Polar, Chargebee and Recurly show their webhook address and a field for the secret or password.

Can I use two billing tools at once?

Yes. Each one has its own webhook address, and they all write to the same ledger.

Your billing tool,
now with affiliates.

Self-host for free: the code is open source. Or let us run it for you.