Overview
Seat-based subscriptions enable:- Per-seat pricing with automatic proration
- Seat assignment and invitation management
- Flexible minimum and maximum seat limits
- Self-service seat management for customers
Seat-based pricing is only available for recurring (subscription) products.
Creating Seat-Based Prices
Configure seat-based pricing when creating a product price:Seat-Based Price
Seat Configuration
- amount: Price per seat per billing period
- minimum_seats: Minimum number of seats required (default: 1)
- maximum_seats: Optional maximum seat limit
- pricing_type: Must be
"seat"
How Seat Billing Works
Initial Purchase
When a customer subscribes:$10/seat × 5 seats = $50/month
Seat Changes
Customers can add or remove seats at any time:Seat changes are prorated automatically. Customers are charged immediately for added seats and credited for removed seats at the next renewal.
Seat Assignment
Seat-based subscriptions support assigning seats to specific users:Seat Status
Seats have three statuses:pending: Assigned but not yet claimed by the memberclaimed: Member has accepted and is actively using the seatrevoked: Seat access has been removed
Seat Object
Seat Management Rules
Increasing Seats
✅ Allowed at any time:- Must not exceed
maximum_seats(if set) - Proration charge applied immediately
- New seats become available instantly
Decreasing Seats
❌ Restrictions:- Cannot decrease below
minimum_seats - Cannot decrease below currently assigned seats
- Must revoke seats before decreasing
Error: Seats Already Assigned
Proration
Seat changes are automatically prorated:Adding Seats Mid-Cycle
When adding seats during an active billing period:- Immediate Charge: Customer is charged for the prorated amount
- Proration Period: From now until the end of the current billing period
- Next Invoice: Full amount for new seat count
Removing Seats Mid-Cycle
When removing seats:- Credit Applied: Prorated amount credited to customer balance
- Applied at Renewal: Credit reduces the next invoice
- No Immediate Refund: Credit is not immediately refunded
Proration behavior can be controlled with the
proration_behavior parameter in subscription updates.Seat Assignment Methods
By Email
By Customer ID
By External ID
Invitation Emails
When a seat is assigned, Polar sends an invitation email:- Subject: You’ve been invited to [Product Name]
- Content: Personalized invitation with claim link
- Expiration: Links expire after 7 days
- Token: Secure single-use claim token
Customize invitation email templates in your organization settings.
Customer Portal Integration
The customer portal provides self-service seat management:- View Seats: See all assigned and available seats
- Assign Seats: Invite new team members
- Revoke Seats: Remove access from members
- Change Quantity: Add or remove total seats
Customer Portal URL
Webhooks
Seat-related webhook events:customer_seat.assigned: Seat assigned to a membercustomer_seat.claimed: Member claimed their seatcustomer_seat.revoked: Seat access revokedsubscription.seats_updated: Total seat count changed
customer_seat.claimed Event
Seat Validation
Polar enforces seat limits:Error: Below Minimum
Error: Above Maximum
Best Practices
Set Reasonable Minimums
Balance revenue goals with customer acquisition (e.g., 3-5 seat minimum)
Communicate Limits
Clearly show seat limits and pricing in your checkout flow
Enable Self-Service
Let customers manage seats in the customer portal
Track Utilization
Monitor seat utilization to identify expansion opportunities
Seat-Based vs Fixed Pricing
| Feature | Seat-Based | Fixed |
|---|---|---|
| Pricing | Per seat | Flat rate |
| Scalability | Linear growth | One price |
| Seat Assignment | Required | N/A |
| Proration | Automatic | N/A |
| Best For | Team/B2B products | Individual plans |
API Reference
See the full API documentation:- Create Product Price - Configure seat pricing
- Update Subscription - Change seat count
- Assign Seat
- Revoke Seat
- List Seats