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:writescope, so only the hourly sync is running.
What's Next?
- See what Chartsy tracks for Polar on the Polar analytics page
- Check exactly what is synced in Polar data models
- Learn how data sources combine under All Accounts
- Ask questions with the Chartsy AI chatbot


