Skip to content

Polar ​

Polar is a merchant of record built for open-source and indie software sellers. It collects and remits tax, and appears on your buyer's statement as the seller.

What you need ​

FieldRequiredWhere
Access tokenYesPolar → Settings → Developers → New token
Organization IDYesPolar → Settings → General

The organization id is not a secret. The access token is an Organization Access Token and needs: webhooks:write, checkouts:write, checkouts:read, orders:read, subscriptions:read, customers:read, products:write.

Webhook ​

PackEdge creates the endpoint and generates the signing secret for you over HTTPS, subscribing order.paid, order.created, subscription.created, subscription.updated, subscription.active, subscription.canceled and subscription.revoked.

To do it by hand, add the endpoint in Polar → Settings → Webhooks with format Raw, and paste the generated secret into the console.

Plans ​

Automatic. PackEdge creates one Polar product per plan.

A Polar product's price is fixed at creation, so changing a plan's price creates a replacement product and archives the old one — only after the new one exists, so a failed re-create never leaves the plan unbuyable.

Only monthly and yearly recur

Polar's recurring intervals are month and year. A quarterly, semiannual, weekly or biweekly plan becomes a one-off purchase at Polar rather than billing at the wrong cadence.

Test mode ​

Polar's sandbox is a separate account at sandbox.polar.sh, with its own token, its own organization id, and its own product ids. Create one, then connect it as your test credentials.

Card 4242 4242 4242 4242.

Buyer emails

Some sandbox payloads omit the buyer's email. PackEdge falls back to looking the customer up through Polar's API, which is why the token needs customers:read.