In brief
Polar has no affiliate program of its own. Its docs carry one affiliate page, a setup guide for Affonso. Affonso reads three Polar events. It takes the click id as metadata on the checkout session. Refgrow documents a Polar webhook with four subscription events, and its own metadata key. Dub lists Polar as "Coming Soon". AffiliateRail connects to Stripe and Paddle, not Polar. An access token is a key you create in Polar so another service can read your account. Affonso's needs ten scopes and no expiry, because tracking stops when the token does.
No card. Cancel in one click.
Does Polar have an affiliate program built in?
In shortNo. Polar's docs carry one affiliate page, and it is a setup guide for Affonso. Two tools document a Polar connection: Affonso and Refgrow. Dub lists Polar under "Coming Soon". AffiliateRail does not connect to Polar. Neither do Endorsely or refVenue, by the platforms their own docs list.
The research method was simple. I read Polar's own docs index and its Integrate section on 6 September 2026, then the Polar page of every affiliate tool that has one. I found no built-in program, one integration that Polar itself documents, and one more that documents Polar. AffiliateRail's docs carry billing guides for Stripe and Paddle only, so this page says that first.
Four words first. A merchant of record is a company that sells to your customer in its own name and handles the tax. Polar is one. An access token is a key you create in Polar so another service can read your account. A scope is one permission on that token, such as reading orders. And a webhook is a message Polar sends to another service when something happens, such as an order. Affiliate tracking on Polar is built on the last three.
If you set an expiration date, you'll need to manually update the token in Affonso when it expires. Tracking will stop working if the token expires.
| Tool | Polar | How the click reaches Polar | Events it reads |
|---|---|---|---|
| Affonso | Yes, and named in Polar's own docs | The affonso_referral cookie, passed as metadata on the checkout session | order.created, order.refunded, subscription.canceled |
| Refgrow | Yes, a guide | The refgrow_ref_code cookie, passed as metadata.referral_code on the subscription or checkout | subscription.created, subscription.updated, subscription.canceled, subscription.renewed |
| Dub | "Coming Soon" | Not yet | Not yet |
| AffiliateRail | No | Stripe and Paddle only | Stripe and Paddle |
| Endorsely | Not listed | Its intro page lists Stripe, Paddle and Lemon Squeezy | Not stated |
| refVenue | Not listed | Its merchant docs carry Stripe, Paddle and Lemon Squeezy guides | Not stated |
How does Affonso connect to Polar?
In shortFive steps, all on Polar's own page. Create an access token with ten scopes and no expiry. Add Affonso's webhook URL and secret in Polar, with three events ticked. Add Affonso's tracking script to every page. Track signups if you want to. Then pass the referral as metadata when you create the checkout.
The token first. Polar's guide says to open Settings, find the Developers section, and create a new token. It lists ten scopes to enable. They cover discounts, events, orders, refunds, customers, subscriptions and webhooks. Some are read, some are write. Set the expiry to "No expiration". The page's warning is plain: "If you set an expiration date, you'll need to manually update the token in Affonso when it expires. Tracking will stop working if the token expires."
The webhook second. After you connect, Affonso gives you a URL and a secret. In Polar, under Settings, Webhooks, you add an endpoint with that URL. You set the format to RAW. You paste the secret. You tick three events. They are order.created, order.refunded and subscription.canceled. A sale, a refund, and a cancellation. That is enough to write a commission and reverse it. It also stops the pay on a customer who left.
The script third, then the click. Polar's page reads window.affonso_referral in the browser and passes it as metadata when the checkout session is created, under the key affonso_referral. Affonso's own guide shows the server version. On a Next.js server you read the affonso_referral cookie with cookies() from next/headers, then pass it under the same key. A click id is the short code that names one visit from one affiliate link. That is what the cookie holds. Polar's page puts the rest in two lines. "When the user makes a purchase, the referral ID is passed to Polar as metadata. Polar's webhook notifies Affonso about the purchase."
Affonso also has a guide for Polar payment links, the ones that start with buy.polar.sh. It adds a second script right after the first. And one note for testing. "Polar test mode won't appear in Affonso." The guide suggests a full-discount code for a live test instead. Or you check your server logs for the metadata.
How does Refgrow connect to Polar?
In shortThrough a webhook with four subscription events, plus a metadata field. In Refgrow you pick "Polar Webhook" as the tracking method and copy the URL. In Polar, under Settings, Webhooks, you create the webhook, tick the four events, and copy the signing secret back into Refgrow. Then your server passes the referral code as metadata.
The four events are subscription.created, subscription.updated, subscription.canceled and subscription.renewed. All four are subscription events. No order event is on the page. So a one-off order is not covered there. If you sell one-off products through Polar, check that with Refgrow before you connect.
The click reaches Polar the same way as on Affonso, under a different key. Refgrow's script sets a cookie called refgrow_ref_code. Your server reads it and passes it as metadata under referral_code, on polar.subscriptions.create or polar.checkouts.create. The page is firm about one case. With a direct subscribe flow, where users subscribe without an account first, passing the code is "essential for correct attribution". It also asks you to pick your user flow, with or without an account step before the subscription.
Two more settings are on the page. Product-specific commission rates, set per Polar product. And affiliate-specific overrides, which take priority over the product rates. Its terms name Polar among "payment processors such as Stripe, Paddle, LemonSqueezy, Polar, and Dodo Payments". Its comparison page covers the rest of the tool.
What does Polar itself provide?
In shortWebhooks with a signing secret, an access token with scopes, and metadata on checkout sessions. That is all an affiliate tool needs. Polar also changed how it signs webhooks in September 2026. That matters if you rotate a secret.
The signing change is on Polar's webhook page. "Secrets generated on or after 8 September 2026, 00:00 UTC follow Standard Webhooks. Older secrets use Polar HMAC." So a tool that verifies Polar's signature has to handle both schemes. Imagine you set a webhook up in August and rotate the secret in October. The new secret follows the new scheme. If the tool only knew the old one, every event would fail to verify. Ask your tool which scheme it supports before you rotate.
The format setting matters too. Polar's page says to leave it on Raw for "standard, custom integrations". That sends a JSON payload. The other options format the message for Discord or Slack. An affiliate tool needs Raw, and Polar's Affonso guide says to select it.
Polar is a merchant of record. So it takes a percentage of each sale, and its paid plans add a monthly fee. Its Starter plan has no monthly fee at 5% plus 50 cents a transaction. Paid plans lower the rate. For example, Pro is $20 a month at 3.8% plus 40 cents. That is the billing cost. It has no affiliate fee inside it, because Polar has no affiliate program. Whatever you pay for affiliates, you pay to the tool.
Who else connects, and who does not?
In shortDub says Polar is "Coming Soon" on its integrations page. The line under it reads "Track how your links are converting to sales on Polar." Endorsely's intro page lists Stripe, Paddle and Lemon Squeezy. refVenue's merchant docs carry Stripe, Paddle and Lemon Squeezy guides. AffiliateRail connects to Stripe and Paddle.
For AffiliateRail the answer is the same as on the Chargebee and Lemon Squeezy pages. It reads sales from Stripe and Paddle, and from nothing else today. If you bill through Polar, it cannot see your sales. No flat fee helps. If you bill through Stripe or Paddle, the Stripe article and the Paddle page are the same walk on those billing platforms.
For the tools not on the table, I did not check, and this page does not guess. A missing row means I found no Polar page for that vendor. It does not mean the vendor has no Polar support. Ask them. A vendor with a webhook receiver and a metadata field can add Polar quickly. Polar exposes both.
Which one should you pick?
In shortAffonso if you want the route Polar itself documents. The click is carried as metadata and three events are read. Refgrow if you sell subscriptions through Polar and want one tool across more than one billing system. Wait for Dub if you already run Dub links and can hold off.
The choice inside Affonso is between the Checkout API and payment links. If your app creates checkout sessions in code, the API route is a cookie read and one metadata field. If you sell through Polar payment links, its other guide covers those. Either way, get the token right first. Ten scopes, no expiry. Polar's page says tracking stops when the token expires.
Let's say you sell a desktop app through Polar and want a program running this month. You create the token. You add the webhook with three events. You add the script. You pass the cookie as metadata. A test with a full-discount code shows the metadata in your logs. Then you invite your first affiliates. The first-ten-affiliates guide covers who to ask and what to offer. It works on any billing system.
On Stripe or Paddle instead?
AffiliateRail connects to both, fills the click id itself, and pays affiliates from your own account at 0% of the payout. Fourteen days, no card.
Every fact on this page was read off Polar's own docs or the tool's own docs on the date beside it in the sources. Integrations change. Read the page before you connect anything.
Common questions
Does Polar have a built-in affiliate program?
No. Polar's docs index and its Integrate section carry no affiliate feature. The one affiliate page is a setup guide for Affonso, an outside tool. Lemon Squeezy, another merchant of record, is different. It switches an affiliate program on for every store.
Which affiliate software works with Polar?
Affonso, which Polar's own docs walk through. And Refgrow, which documents a Polar webhook. Dub lists Polar under Coming Soon. AffiliateRail connects to Stripe and Paddle only. Endorsely's intro page lists Stripe, Paddle and Lemon Squeezy. refVenue's merchant docs carry guides for the same three.
How does the affiliate's click reach Polar?
As metadata on the checkout session. Polar's own page reads window.affonso_referral in the browser and passes it under the key affonso_referral. Affonso's guide shows the server version, with cookies() from next/headers in Next.js. Polar's webhook then notifies Affonso about the purchase. Refgrow does the same under the key referral_code, on the subscription or the checkout. For payment links, Affonso has a second script that adds the tracking.
What changed in Polar's webhook signing?
Polar's webhook page says secrets generated on or after 8 September 2026 follow the Standard Webhooks specification. Older secrets use Polar's own HMAC scheme. A tool that verifies signatures has to handle both. If you rotate a secret after that date, check the tool supports the new scheme first.
Where these facts come from
Fact-checked and reviewed by Jimi Barkway on 6 September 2026. Every figure above was read off the document named here on the date beside it. To contact AffiliateRail about one, email support@affiliaterail.com and the figure is corrected and the date moved.
- Polar docs, Affonso Affiliates with Polar: the access token with ten scopes and no expiration, the webhook URL and secret in RAW format, the three events, the tracking scriptchecked 6 September 2026
- Polar docs index and integrations section: no built-in affiliate featurechecked 6 September 2026
- Polar docs, Webhook endpoints: the signing secret, Standard Webhooks for secrets generated on or after 8 September 2026, Polar HMAC for older ones, the Raw formatchecked 6 September 2026
- Polar docs, merchant of record fees: Starter free at 5% plus 50 cents a transaction, paid plans at lower rateschecked 4 September 2026
- Affonso help centre, Polar Checkout API: the affonso_referral cookie read with cookies() and passed as checkout metadata; test mode does not appear in Affonsochecked 6 September 2026
- Affonso help centre, Polar Payment Links: referral tracking added to existing payment linkschecked 6 September 2026
- Refgrow docs, Polar Integration: the Polar Webhook tracking method, the webhook in Settings, the signing secretchecked 6 September 2026
- Refgrow terms: payment processors such as Stripe, Paddle, LemonSqueezy, Polar, and Dodo Paymentschecked 6 September 2026
- Dub integrations page: Polar under Coming Soonchecked 6 September 2026
- Endorsely docs, introduction: integrations to Stripe, Paddle, Lemon Squeezy and custom solutionschecked 6 September 2026
- refVenue docs: merchant guides for Stripe, Paddle and Lemon Squeezychecked 6 September 2026
- AffiliateRail docs index: billing guides for Stripe and Paddle, no Polar guidechecked 6 September 2026