Polar

A revenue dashboard for Polar

Polar shows you one organization at a time. Paylytics reads as many as you have, and adds them up with whatever else you sell through.

What connecting a Polar organization gives you

Paylytics pulls orders, subscriptions, customers and products out of Polar and keeps its own copy. Every figure the dashboard draws is then a query against that copy rather than a request to Polar, which is what makes reading six organizations at once instant instead of six times slower than reading one.

It is a mirror, so it is only ever as current as the last refresh — and refreshing is a button, not a background job you have to trust. Nothing is written back to Polar at any point.

The token you create, and what it can do

Polar issues organization access tokens with per-scope permissions, so the token you paste into Paylytics is one you created for exactly this and nothing else. Grant the four read scopes and stop there.

A personal access token is refused before it reaches Polar or our database. Paylytics checks the credential type first, so a token that carries more than one organization never gets as far as being stored.

Credential
Organization access token, beginning polar_oat_
Where
Organization settings, under Developers
Scopes to grant
orders:read, subscriptions:read, customers:read, products:read
Refused outright
A personal access token

What we cannot prove, and will not claim

Polar does publish a token introspection endpoint, and it is real — but it authenticates with OAuth client credentials rather than with the token being introspected, and we hold only your token. So there is no way for Paylytics to enumerate what a Polar token is allowed to write.

That means a "verified read-only" badge is a claim this product cannot back, and you will not find one here. What you get instead is the credential type checked before anything is stored, and a capability probe that reports which of the four resources the token can actually read — rerun on every refresh, so a permission changed at Polar months later shows up here rather than silently stopping a figure from updating.

What Polar reports, and how it is read

Polar already reports money in minor units, so nothing is converted and no figure passes through a float on its way to the screen. Its subscription intervals arrive lowercase and need no normalising.

Polar is one of only two providers here that publishes a usable picture for the account itself, so a connected organization turns up in the dashboard already wearing its own logo — and that logo is refreshed on every sync, so an organization that rebrands stops showing the mark it had on the day you connected it.

Polar plus everything else you sell through

A Polar dashboard tells you about Polar. If you also take money somewhere else — a second Polar organization, or an account at another provider entirely — nothing at Polar adds the two together, and nothing at the other provider does either.

Paylytics normalises every provider onto one shape at the point it reads them: amounts in minor units, one shared vocabulary for paid, refunded and partially refunded, one customer identified across accounts by a keyed fingerprint of their email rather than by the address itself. After that, merging is not a special case — a total across all 4 providers is the same query as a total across one.

The other providers

Connect any mix of them. A total across all 4 providers is the same query as a total across one.

Read-only, and nothing written back

Keys are encrypted before they touch the database and decrypted only to read. What that guarantee rests on differs per provider, and each page here says which.