One billing manager, many seats. Prorated automatically.
A seat-based product is purchased by a single billing manager who decides how many seats they need. From there, they assign seats to teammates by email or by your own external customer ID.
Benefits only fire when a seat is actually claimed by the recipient, which keeps usage in step with billing. The billing manager doesn't receive benefits unless they assign a seat to themselves, so a finance buyer can pay without consuming a seat they'll never use.
The same primitive covers recurring subscriptions and perpetual licenses. Subscriptions stay in sync with the team while the plan is active; licenses grant benefits forever once a seat is claimed, and growth happens through new orders rather than mutating the original purchase.
Assign seats by email or external customer ID. Claim links handle onboarding.
Adding seats charges immediately, prorated. Reducing seats issues a credit.
Customers manage their own team without you in the loop.
Assign seats programmatically and react to seat.claimed and seat.revoked events.
Pick the shape that matches the way you sell to teams. The choice is made when the product is created.
Polar separates the act of paying for a seat from the act of using one. Three statuses describe where any seat is in that process.
Seat assignments are first-class objects in the API. List them on a subscription, assign them programmatically when a customer onboards a teammate inside your app, and revoke them through the same endpoint.
On the receiving side, seat.claimed, seat.revoked, and subscription.updated webhooks let your own permission system stay in lockstep without polling.
The model supports up to 1,000 seats per subscription and arbitrary metadata on every seat, so role, team, or external user ID can travel with the assignment. Seat-based pricing is in beta today; enable it under Settings → General → Features.
Create a seat-based product and Polar handles assignment, claim, and proration.