How to Connect Polar.sh to Chartsy

To connect Polar to Chartsy, you create one Organization Access Token in Polar and paste it into Chartsy. Chartsy then imports your products, customers, subscriptions, orders and refunds, adds a webhook so new orders show up within a minute, and turns it all into MRR, churn, LTV and net revenue - across subscriptions, per-seat plans, usage-based billing and one-time sales.

Each Polar organization is connected as its own data source. Run more than one? Connect each one, and All Accounts adds them up - together with any Stripe, Paddle or Freemius accounts you have connected.

Before You Start

  • A Polar organization you can create access tokens for
  • A Chartsy account (sign up free)

Match Polar Revenue to Marketing Channels

If you track your website with Chartsy, set the site's Revenue account to your Polar source under Settings → domains. Then pick whichever fits how you sell:

Checkout links - no code

In Polar, open Products → Checkout Links, and set each link's Success URL to a page on your site that has the Chartsy tag, ending in ?checkout_id={CHECKOUT_ID} - for example https://yoursite.com/thank-you?checkout_id={CHECKOUT_ID}. When the buyer lands, Chartsy looks up the order and credits it to the visit that brought them, even if they never signed up.

Checkouts created from your server

Add the visitor's chartsy_visitor_id cookie to the checkout's metadata - Polar copies it onto the order:

// Polar copies checkout metadata onto the order it creates
const checkout = await polar.checkouts.create({
  products: ['<your product id>'],
  // ...your existing options
  metadata: { chartsy_visitor_id: req.cookies.chartsy_visitor_id || '' },
});

Both methods match by visitor id, so they keep working with GDPR Mode on. Buyers are also matched by email to people who signed up, unless GDPR Mode is on. Limits and details are in the revenue attribution guide.

Troubleshooting

  • "Polar rejected this token" - paste the whole Organization Access Token again, or create a new one under Settings → Developers.
  • "The token is missing these scopes" - create a new token with the listed scopes ticked and paste that one.
  • "The token can't read your organization" - the token needs organizations:read.
  • "This Polar organization is already connected" - each organization can be connected once, even with a new token, so its numbers are never doubled.
  • New orders take up to an hour to appear - the token has no webhooks:write scope, so only the hourly sync is running.

What's Next?

Chartsy Team

Written by

Chartsy Team

Analytics team at Chartsy

The Chartsy Team writes guides, product updates, and resources to help SaaS and eCommerce founders make sense of their metrics, without SQL or spreadsheets.

Chartsy
Ministry of Economy and Innovation
Startup Albania

The Chartsy program is realized with the financial support of the Albanian Government through the Ministry of Economy and Innovation, under the Grant 2026 scheme, and is implemented by the Innovation4Albania Agency.