For the mechanics behind this and the other way to provision entity plans, see entity plans. If you only need to charge by headcount, with no per-seat limits, see per-seat pricing instead.
Example case
We have an AI meeting notes product with team-based pricing:- Team plan: $30 per seat per month
- Each seat gets: 50 meeting summaries per month
Configure Pricing
1
Create Features
Create two features:- Seats - A
meterednon-consumablefeature identifying the entity type (team members) - Meeting Summaries - A
meteredconsumablefeature for the number of meeting summaries generated
2
Create the Seat License Plan
Create a Seat plan holding everything one team member gets:- A $30/month price
- Meeting Summaries: 50 per month
3
Create Team Plan
Create a Team plan and, under Licenses, add the Seat plan with 0 included seats.The Team plan now offers a pool of Seat licenses at $30/month each. (Set included above 0 to give the plan some free seats.) A team member only receives their own 50 summaries once a license is assigned to them.Implementation
1
2
Create Initial Entity
Create an entity for the admin user who is signing up. This just registers the entity — no balance is granted until a license is assigned to it. This should be done server-side for security.This entity exists but has no balances yet. It receives its 50 meeting summaries once you assign it a Seat license, a couple of steps below.
3
Attach the Team Plan and Buy Seats
When the customer upgrades to Team, attach the plan. PasslicenseQuantities to say how many Seat licenses they want — quantity is the total number of seats, including any the plan includes for free.Change the seat count later by attaching again with a new
quantity. Autumn prorates the difference.4
Assign Seat Licenses
When team members are added, assign each of them a Seat license. This is what gives them their own balance of 50 summaries. It consumes one seat from the pool bought in the previous step.feature_id is only required when the entity doesn’t exist yet — Autumn creates it for you, so you can skip the separate entity-create call.Assignment is idempotent: re-assigning someone who already holds an active Seat license succeeds without consuming another seat. If the pool has no seats left, the call errors — buy more seats first.After assigning, navigate to the Autumn customer page and you will see the entity and its balance.5
Check Access Per Entity
Before generating a meeting summary, check if that specific user has remaining balance.6
7
Check Customer-level Balance (Optional)
You can also check the total balance across all entities, useful for admin dashboards.8
Release Seat Licenses
When a team member leaves, release their license. Their balance is removed and the seat returns to the pool, ready to be assigned to someone else.Releasing a license frees the seat but does not change what the customer pays — they keep the 4 seats they bought. To stop paying for a seat, attach the Team plan again with a lower
quantity; Autumn prorates the refund.license_plan_id is optional, and only needed to disambiguate when an entity holds licenses from more than one plan.Summary
Entity-level balances are ideal when you want to:
- Ensure fair usage across team members
- Isolate consumption per workspace or project
- Bill per-entity while providing entity-specific limits
licenses.list. To see who currently holds one, call licenses.list_assignments.