Appearance
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
| Field | Required | Where |
|---|---|---|
| Access token | Yes | Polar → Settings → Developers → New token |
| Organization ID | Yes | Polar → 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.
