Stripe Seat Sync: A simpler way to build seat-based billing with WorkOS
WorkOS now supports automated seat-based billing with Stripe. It tracks organization members and sends seat usage to Stripe Meters so billing stays accurate without custom scripts, webhooks, or billing infrastructure.
Modern SaaS teams move fast, but billing often does not. Pricing is usually defined early in the product lifecycle, but billing logic is postponed until late in development. By then it becomes time-sensitive, risky, and harder to implement correctly. Most teams wire up Stripe usage tracking manually using WorkOS webhooks and scripts, even though billing is not a core product feature.
This work is essential, but it slows teams down and is difficult to maintain. Billing should be simple, reliable, and directly connected to real product usage. That is why we built Stripe Seat Sync, an automated way to connect WorkOS organization data with Stripe Billing.
Billing should not add engineering overhead
Per-seat pricing is one of the most common SaaS billing models. It provides clarity for customers and aligns pricing with value, but implementing it correctly introduces engineering challenges:
- Tracking organization membership in real time
- Detecting when users are added or removed
- Ensuring usage is continuously accurate
- Preventing invoice drift or billing errors
- Keeping Stripe in sync with product data
To solve this, teams often build custom billing services or cron jobs that sync seat counts to Stripe. This increases complexity and introduces long-term maintenance work. Revenue should not depend on manual subscription updates or metering scripts.
Built to work with Stripe
Some developer platforms have started building their own billing products and pricing layers. That’s not our strategy.
Stripe already offers powerful billing capabilities, and many of our customers standardize on Stripe for their financial operations.
Stripe Seat Sync extends Stripe; it does not replace it. It lets customers use Stripe Billing exactly as intended, with accurate usage data automatically populated from WorkOS. Pricing plans, invoicing, dunning, and tax handling all remain managed inside Stripe.
Powered by Stripe Meters
Stripe recently introduced Stripe Meters, a way to track usage events inside Stripe Billing. WorkOS now integrates directly with Stripe Meters to automatically send seat usage based on real organization membership.
This gives teams a clean and scalable solution:
- Accurate invoices that reflect real usage
- Zero custom metering logic to maintain
- Faster implementation using existing WorkOS data
- Stripe remains the system of record for billing
WorkOS tracks seat counts. Stripe handles billing, subscriptions, and invoicing.
How it works
Automated seat-based billing uses WorkOS Organizations as the source of truth for usage. When a user joins or leaves an organization, WorkOS updates seat usage and sends that data to Stripe Meters in real time. Stripe Billing then calculates charges based on your pricing.
When Stripe Seat Sync is enabled, WorkOS creates a billing meter in your Stripe account called “WorkOS Seat Count” with the event name workos_seat_count.
Each event includes:
- Event name:
workos_seat_count - Customer ID: The Stripe customer ID associated with the organization
- Value: The current number of active members in the organization
WorkOS automatically sends meter events to Stripe whenever organization memberships change. Whenever a member is added, removed, deactivated, or reactivated, WorkOS reports the new seat count.
Stripe bills using the “last” aggregation method, meaning each billing period is based on the most recent seat count reported. You can use this meter to create usage-based pricing tied to the number of active seats.
No additional code is required. WorkOS handles all event reporting automatically as organization membership changes.
Here is a demo of how this works from our ERC conference:
Walkthrough: How to enable seat-based billing
Below is a step-by-step example of how it works.
1. Connect Stripe in the WorkOS Dashboard
Go to WorkOS Dashboard > Authentication> Add-ons and select Enable. Check the “Sync organization seat counts” option and click Continue.
You can also check the “Use Stripe entitlements” option to automatically include Stripe Entitlements in WorkOS access tokens.

2. Complete the Stripe Connect flow
After clicking Continue, you will be redirected to Stripe to approve the connection. Once complete, the integration becomes active.
WorkOS automatically creates a Stripe Meter to track seat usage. In the Stripe dashboard, create a Product that uses this meter, then create a Subscription for a customer. Usage is now ready to flow.
From this point on, WorkOS will automatically send meter events to Stripe whenever organization memberships change. You can:
- View meter events in your Stripe Dashboard under Billing → Meters
- Create pricing models that bill based on the
workos_seat_countmeter - Use the meter in subscription items to charge customers based on their seat count
3. Link a WorkOS Organization to a Stripe Customer
WorkOS needs to know which Stripe customer matches each organization. For this, you need to set the Stripe Customer ID on a WorkOS Organization using the API or SDK.
Example:
Why this matters
Seat-based billing is essential for many SaaS businesses, and it must be reliable. This integration makes it easy to:
- Bill based on real usage
- Avoid incorrect invoices
- Eliminate manual seat tracking
- Remove billing infrastructure maintenance
- Launch pricing faster
- Maintain Stripe as the billing source of truth
Stripe Seat Sync is now generally available
Stripe Seat Sync is now generally available. Teams can start using it today to send accurate usage data to Stripe without building metering logic.
Learn more in our WorkOS AuthKit + Stripe Add-ons documentation.