Introducing the Chargebee CLI

Bill per seat with included usage per seat and monthly overages

Overview

Seat-based pricing charges customers for the number of users who have access to your product. Many products pair the per-seat fee with an allowance of included usage, so the allowance grows as the customer adds seats. Any usage beyond the allowance still needs to be invoiced as it happens, so billing stays aligned with consumption. This guide shows you how to build that hybrid model in Chargebee Billing: a monthly per-seat plan whose included usage is defined once at the plan level and multiplied by the number of seats on the subscription, paired with monthly metered addons that bill every unit consumed beyond the total included usage.

Throughout this guide, you configure the model for a single running example. John Doe signs up for an AI workspace product on the Team plan: $20 per seat per month, with 10,000 API requests and 5 GB storage included per seat each month. If the team consumes more than its included total in a month, the excess is invoiced monthly at $0.02 per API request and $1 per GB of storage. John Doe buys 10 seats, so the subscription is billed $200 per month and is granted 100,000 API requests and 50 GB storage.

See also

If you do not want to grant included usages based on the seats but charge users based on their usage, refer to Bill only for what customers use with pay-as-you-go pricing.

How this billing model works

The illustration below explains how this billing model works:

Before you start

If you don't already have a Chargebee Billing account, click here to sign up.

Confirm your access. You need an admin role to change site configuration and build the Product Catalog and ingest usages.

Advanced Usage-Based Billing is enabled by default for new Chargebee Billing sites. If you are an existing user, enable it before you build the model.

Validate before go-live

Before enabling this on a live site, validate the full monthly cycle on a test site, including a mid-term change in seats. You can test your billing setup in Chargebee's test site using Time Machine. Time Machine lets you simulate billing cycle progression, from the initial invoice through monthly overages to renewal, without waiting for real calendar time.

When you enter Time Machine, existing subscriptions and customer details on the test site are erased. Export the data first if you need a backup.

When you are ready to go live, copy the configuration and Product Catalog from the test site to the live site with Transfer Configurations. To transfer customer, subscription, or invoices data, you can import them on your live site.

Implementation steps

Follow these steps in order. Each step shows how to do the task in the Chargebee Billing app and with the API.

1. Send usage into Chargebee Billing

Start by streaming your product's usage into Chargebee Billing before you've decided what to charge for. For this example, a usage event is generated for API requests, and it includes an api_requests property. Another usage event reports how much storage the workspace is using, and it includes a storage_gb property. For your business, this could be a file upload, a message sent, a workflow run, and so on.

Chargebee's ingestion is schemaless. While this example uses API requests and storage as the value metrics, you can track usage for additional parameters as required for your business. You can start sending raw usage before finalizing the per-seat quotas or overage rates. Track adoption patterns over time, then use those insights to define the metered features, included usage per seat, and overage pricing.

You can send usage in one of the following ways, based on how your product emits usage:

Using the app

CSV bulk upload. Export a CSV from your data warehouse and upload it in Chargebee Billing. Each row must include a deduplication ID, subscription ID, and usage timestamp in milliseconds.

  1. Go to Usages > Usage Events > Add Usage Events.
  2. Select the Quick file upload tab, or go to Settings > Import & Export Data > Choose a Bulk Operation, then select Usages > Create a Usage.
  3. Upload the file and click Proceed to review.
  4. Review the data, then click Import Events.

You can also add a small number of events manually: go to Usages > Usage Events > Add Usage Events, select Enter usage events, and click Import Events.

Using the API

Send events in real time or in micro-batches as they happen. You can send both raw and aggregated usage events using Ingest a usage event and Ingest usage events in batch. Usage events use the ingest host ({site}.ingest.chargebee.com), not the standard Chargebee API host.

Ingest a single usage event

curl  https://{site}.ingest.chargebee.com/api/v2/usage_events \
     -u {site_api_key}:\
     --header 'Content-Type: application/json;charset=UTF-8' \
     --data '{
     "deduplication_id": "usage-api-0001",
     "subscription_id": "{subscription_id}",
     "usage_timestamp": "1737612931000",
     "properties": {
          "api_requests": 12,
          "request_id": "req_1001",
          "user_id": "user_01"
     }
     }'

Ingest usage events in batch (up to 500 events per request)

curl  https://{site}.ingest.chargebee.com/api/v2/batch/usage_events \
     -u {site_api_key}:\
     --header 'Content-Type: application/json;charset=UTF-8' \
     --data '{
     "events": [
          {
               "deduplication_id": "usage-api-0001",
               "subscription_id": "{subscription_id}",
               "usage_timestamp": "1737612931000",
               "properties": {
                    "api_requests": 12,
                    "user_id": "user_01"
               }
          },
          {
               "deduplication_id": "usage-storage-0001",
               "subscription_id": "{subscription_id}",
               "usage_timestamp": "1737612991000",
               "properties": {
                    "storage_gb": 41.5
               }
          }
     ]
     }'
Using Amazon S3

Upload usage event files from an S3 bucket. Chargebee Billing picks them up and processes them automatically. See Ingesting usage from Amazon S3.

Backdated ingestion limits differ by method and site type. On a live site, the Usage Events API accepts events from the last 12 hours (configurable on request); CSV and S3 uploads accept events from the last 30 days. On a test site, the API window is 12 hours and file uploads accept events from the last year. See Usage-Based Billing limits.

2. Define the units of value your product delivers

Now that usage is flowing, decide what you'll actually charge for beyond the seat fee: the units of value your product delivers. For this example, a usage event records API requests and storage in GB. For your business, this could be a file upload, a message sent, an image generated, and so on.

A metered feature tells Chargebee how to aggregate your raw events into a single billable number for each period. You set the aggregation rule on the feature, and from that point Chargebee rolls up matching events against it.

Using the app
  1. Go to Usages > Metered Features and click Create Metered Feature.
  2. Enter a name for the feature, such as API Requests.
  3. Under Usage Calculation, select Sum and select the api_requests event property.
  4. Review the usage calculation formula and preview, then click Create.
  5. Repeat for Storage, selecting Max and the storage_gb event property.
FieldAPI RequestsStorage
NameAPI RequestsStorage
Feature IDapi-requestsstorage
TypeMeteredMetered
Aggregation methodSUM. You can select Sum, Count, Min, Max, Average, or Count Distinct.MAX
Event property to aggregateapi_requestsstorage_gb
Using the API

Use Create a metered feature.

The aggregation method is expressed as a SQL query over usage event properties. Chargebee Billing returns a meter whose id is also the feature ID you use in later entitlement and usage calls.

curl  https://{site}.chargebee.com/api/v2/metered_features \
     -u {site_api_key}:\
     -d name="API Requests" \
     -d feature_unit="api_request" \
     -d description="Number of API requests consumable." \
     -d query="SELECT SUM(api_requests) from events" \
     -d "column_definitions[column_name][0]"="api_requests" \
     -d "column_definitions[data_type][0]"="NUMBER"

Create the Storage feature the same way, aggregating storage_gb with MAX:

curl  https://{site}.chargebee.com/api/v2/metered_features \
     -u {site_api_key}:\
     -d name="Storage" \
     -d feature_unit="gb" \
     -d description="Storage consumable, in gigabytes." \
     -d query="SELECT MAX(storage_gb) from events" \
     -d "column_definitions[column_name][0]"="storage_gb" \
     -d "column_definitions[data_type][0]"="NUMBER"

3. Package your offerings into a plan

This step establishes the per-seat plan, sets its price per seat, and defines how many API requests and how much storage are included for each seat.

3a. Create the plan

Create a Team plan that carries the per-seat platform fee, and link pricing to the plan in the next step.

Using the app
  1. Go to Product Catalog > Plans > + Create Plan.
  2. Select a product family, enter the plan details, and click Create.
FieldValue
Internal NameTeam
Plan IDteam
Using the API

Create the plan item with Create an item. Replace {item_family_id} with your product family ID.

curl  https://{site}.chargebee.com/api/v2/items \
     -u {site_api_key}:\
     -d id="team" \
     -d name="Team" \
     -d type="PLAN" \
     -d item_family_id="{item_family_id}"

3b. Define the plan price point

Once the plan is saved, create a per-seat price point for it.

Using the app
  1. Open the plan details page. In the Pricing section, click Set Price for the monthly frequency and currency you want.
  2. Configure the pricing as follows, then click Create.
FieldValue
Pricing modelPer Unit
Price$20 per unit
Billing frequencyMonthly

The quantity you set on the subscription represents the number of seats.

Using the API

Create the monthly price point with Create an item price. price is in the minor unit of the currency: 2000 is $20.00 per seat.

curl  https://{site}.chargebee.com/api/v2/item_prices \
     -u {site_api_key}:\
     -d id="team-USD-monthly" \
     -d item_id="team" \
     -d name="Team USD monthly" \
     -d pricing_model="PER_UNIT" \
     -d price=2000 \
     -d currency_code="USD" \
     -d period_unit="MONTH" \
     -d period=1

3c. Grant features and define included usage

Link the API Requests and Storage metered features you created in Step 2 and set the included usage for each. Define the included usage for a single seat. Chargebee Billing multiplies each plan-level entitlement by the number of seats on the subscription.

Using the app
  1. Go to Usages > Metered Features and select API Requests.
  2. Click Link to items.
  3. Select the Team plan and click Next: Set Included Usage.
  4. Set the included usage per seat, then click Link to Items.
  5. Repeat for Storage.
FieldAPI RequestsStorage
FeatureAPI RequestsStorage
Included usage (per seat)10,000 API requests5 GB

The included usage is granted at the start of each monthly billing cycle and tracked across that month. The totals grow linearly with the number of seats:

Seats on the subscriptionIncluded API requests per monthIncluded storage
110,0005 GB
10100,00050 GB
25250,000125 GB
Using the API

Grant the included quotas with Manage entitlements for a feature. Use the metered feature IDs returned when you created the features. Each value is the entitlement for one seat.

curl  https://{site}.chargebee.com/api/v2/entitlements \
     -u {site_api_key}:\
     -d action="UPSERT" \
     -d "entitlements[feature_id][0]"="api-requests" \
     -d "entitlements[entity_id][0]"="team" \
     -d "entitlements[entity_type][0]"="PLAN" \
     -d "entitlements[value][0]"="10000" \
     -d "entitlements[feature_id][1]"="storage" \
     -d "entitlements[entity_id][1]"="team" \
     -d "entitlements[entity_type][1]"="PLAN" \
     -d "entitlements[value][1]"="5"

4. Define how to measure overages

Metered addons are catalog items that let you measure and rate metered features beyond the included usage granted through the plan. In this case, one addon bills customers for every API request made after the total included API requests across all seats is exhausted, and another bills every GB of storage used beyond the total included storage.

4a. Create the addons

Using the app
  1. Go to Product Catalog > Addons > + Create Addon.
  2. Enter the addon details below, select This addon is metered, and click Create.
  3. Repeat for the second addon.
Internal NameAddon IDMeteredMetered feature
On-demand API Requestson-demand-api-requestsYesAPI Requests
On-demand Storageon-demand-storageYesStorage
Using the API

Create each metered addon with Create an item. Set metered to true. The following example creates the On-demand API Requests addon. Repeat for On-demand Storage.

curl  https://{site}.chargebee.com/api/v2/items \
     -u {site_api_key}:\
     -d id="on-demand-api-requests" \
     -d name="On-demand API Requests" \
     -d type="ADDON" \
     -d item_family_id="{item_family_id}" \
     -d metered=true

Then link each addon to its metered feature as on-demand usage with Manage entitlements for a feature. Entitlements on metered addons are unlimited by default so every unit beyond the plan quota is billable:

curl  https://{site}.chargebee.com/api/v2/entitlements \
     -u {site_api_key}:\
     -d action="UPSERT" \
     -d "entitlements[feature_id][0]"="api-requests" \
     -d "entitlements[entity_id][0]"="on-demand-api-requests" \
     -d "entitlements[entity_type][0]"="ADDON" \
     -d "entitlements[value][0]"="unlimited" \
     -d "entitlements[feature_id][1]"="storage" \
     -d "entitlements[entity_id][1]"="on-demand-storage" \
     -d "entitlements[entity_type][1]"="ADDON" \
     -d "entitlements[value][1]"="unlimited"

4b. Define the addon price points

Once the addons are created, create a monthly price point for each of them.

Using the app
  1. Open the addon details page. In the Pricing section, click Set Price for the monthly frequency.
  2. Configure the pricing as follows, then click Create.
  3. Repeat for the second addon.
addonPricing modelPriceBilling frequency
On-demand API RequestsPer Unit. You can also use Tiered, Staircase, or Volume based on your business needs.$0.02 per API requestMonthly
On-demand StoragePer Unit. You can also use Tiered, Staircase, or Volume based on your business needs.$1 per GBMonthly
Using the API

Create the monthly price point with Create an item price. price is in the minor unit of the currency: 2 is $0.02 and 100 is $1.00. The following example creates the price point for On-demand API Requests.

curl  https://{site}.chargebee.com/api/v2/item_prices \
     -u {site_api_key}:\
     -d id="on-demand-api-requests-USD-monthly" \
     -d item_id="on-demand-api-requests" \
     -d name="On-demand API Requests USD monthly" \
     -d pricing_model="PER_UNIT" \
     -d price=2 \
     -d currency_code="USD" \
     -d period_unit="MONTH" \
     -d period=1

Create the On-demand Storage price point the same way, with id="on-demand-storage-USD-monthly", item_id="on-demand-storage", and price=100.

5. Be notified on usage and spends and take desired action

Use a Usages alert to watch API requests and storage against the subscription's total included monthly usage, and a Spends alert to watch accrued overage charges before the monthly invoice is generated.

Create a Usages alert

A Usages alert monitors a metered feature against a percentage of the subscription's included usage. Set alerts at 75% to warn the account admin before overages begin and 100% to notify them when the included quota is exhausted.

Using the app
  1. Go to Usages > Alerts and click Create Alert.
  2. Enter an Alert name, such as API requests 75 percent, and an Alert description.
  3. Under Alert Type, select Usages.
  4. In Set criteria for sending alert, select the API Requests metered feature and enter 75 as the percentage of included usage. The form shows exceeds and of included usage.
  5. Under Apply Alert to, select Subscriptions containing specific items and choose the Team monthly plan price. Select All Subscriptions only if the same percentage should apply across plans.
  6. Under Alert delivery channel, click Manage connected webhooks and configure the endpoint to receive alert_status_changed. Chargebee Billing opens Settings > Configure Chargebee > API Keys and Webhooks on the Webhooks tab.
  7. Click Save Alert.
  8. Repeat with the percentage set to 100 for the exhausted-quota notification.
  9. Create the same two alerts for the Storage metered feature so that API requests and storage are monitored independently.
Using the API

Create a usage_exceeded alert with Create an alert. Set threshold[mode] to percentage. This example monitors API requests against 75% of included usage for subscriptions containing the Team monthly plan price:

curl  https://{site}.chargebee.com/api/v2/alerts \
     -u {site_api_key}: \
     -d type="usage_exceeded" \
     -d name="API requests 75 percent" \
     -d description="Notify when API requests exceed 75 percent of included monthly usage" \
     -d metered_feature_id="api-requests" \
     -d "threshold[mode]"="percentage" \
     -d "threshold[value]"=75 \
     -d "filter_conditions[field][0]"="plan_price_id" \
     -d "filter_conditions[operator][0]"="equals" \
     -d "filter_conditions[value][0]"="team-USD-monthly"

Create a second alert with "threshold[value]"=100 and a distinct name for the exhausted-quota notification. Repeat both alerts with metered_feature_id="storage" and storage-specific names and descriptions.

To scope an alert to John Doe's subscription instead of all subscriptions on the Team monthly price, pass subscription_id="{subscription_id}" and omit filter_conditions after creating the subscription in Step 6.

Create a Spends alert

A Spends alert monitors accrued charges for usage beyond the included entitlements. In this model, it watches the combined overage spend from On-demand API Requests at $0.02 per excess API request and On-demand Storage at $1 per excess GB.

For example, set a $50 threshold to notify the account admin when monthly overage spend exceeds that amount. This is a notification threshold, not a spending cap: both addons continue to bill overages unless your product takes action.

Using the app
  1. Go to Usages > Alerts and click Create Alert.
  2. Enter an Alert name, such as Team monthly overage spend 50 USD, and an Alert description.
  3. Under Alert Type, select Spends.
  4. In Set criteria for sending alert, select USD - $ US Dollars and enter 50. The form shows exceeds and the currency symbol after the amount.
  5. Under Apply Alert to, select Subscriptions containing specific items and choose the Team monthly plan price. Select All Subscriptions only if the same spend threshold should apply across plans.
  6. Under Alert delivery channel, click Manage connected webhooks and configure the endpoint to receive alert_status_changed.
  7. Click Save Alert.
Using the API

Create a spend_exceeded alert with Create an alert. Provide currency_code and set threshold[mode] to absolute. Unlike catalog prices, the threshold is in major currency units: 50 means $50, not 50 cents.

curl  https://{site}.chargebee.com/api/v2/alerts \
     -u {site_api_key}: \
     -d type="spend_exceeded" \
     -d name="Team monthly overage spend 50 USD" \
     -d description="Notify when combined API request and storage overage spend exceeds 50 USD" \
     -d currency_code="USD" \
     -d "threshold[mode]"="absolute" \
     -d "threshold[value]"=50 \
     -d "filter_conditions[field][0]"="plan_price_id" \
     -d "filter_conditions[operator][0]"="equals" \
     -d "filter_conditions[value][0]"="team-USD-monthly"

Do not send unit_id or metered_feature_id for this alert type; the spend threshold is not feature-specific. To monitor only John Doe's subscription, pass subscription_id="{subscription_id}" and omit filter_conditions after creating the subscription in Step 6.

Take action when a threshold is crossed

When an alert's threshold is exceeded, its status changes from within_limit to in_alarm, and Chargebee sends an alert_status_changed webhook. Use your webhook handler to route the notification to email, an in-app prompt, Slack, your CRM, or another workflow:

  • 75% usage: Warn the account admin that API requests or storage are approaching the included monthly allowance, and offer a seat increase if the team needs more users and included usage.
  • 100% usage: Notify the admin that the feature's included allowance is exhausted and further usage is charged at the corresponding overage rate.
  • $50 overage spend: Notify the admin of accrued overage charges and prompt them to review consumption or adjust their subscription.

If you want to pause API requests or restrict additional storage, enforce that behavior in your product. For usage alerts, the status returns to within_limit when usage resets at the start of the next monthly billing cycle.

6. Create the customer and subscription

With the catalog in place, create the customer and their subscription. A customer record must exist before a subscription can be created. You can create it first, or create both together in the same flow. Create the subscription for John Doe on the Team plan with a quantity of 10 seats, and attach both metered addons so overages can be invoiced monthly.

Using the app
  1. Go to Customers and create a customer record for John Doe if one doesn't already exist.
  2. From the customer, create a subscription and add the Team monthly plan item price.
  3. Set the quantity to 10 to represent the number of seats.
  4. Attach the On-demand API Requests and On-demand Storage monthly addon item prices.
  5. Review and create the subscription.
Using the API

Create the customer with Create a customer:

curl  https://{site}.chargebee.com/api/v2/customers \
     -u {site_api_key}:\
     -d first_name="John" \
     -d last_name="Doe" \
     -d email="jdoe@example.com"

Create the subscription with Create a subscription for items. Attach the plan price with the seat quantity and both monthly metered addon prices:

curl  https://{site}.chargebee.com/api/v2/customers/{customer_id}/subscription_for_items \
     -u {site_api_key}:\
     -d "subscription_items[item_price_id][0]"="team-USD-monthly" \
     -d "subscription_items[quantity][0]"=10 \
     -d "subscription_items[item_price_id][1]"="on-demand-api-requests-USD-monthly" \
     -d "subscription_items[item_price_id][2]"="on-demand-storage-USD-monthly"

Your active subscription looks like this:

Line itemBilling frequencyInvoicing
Team × 10 seats (non-metered)Monthly$200 invoiced at the start of each billing cycle, granting 100,000 included API requests (10,000 × 10 seats) and 50 GB included storage (5 GB × 10 seats) for the month.
On-demand API Requests (metered)Monthly$0.02 per API request invoiced monthly, only after the 100,000 API requests monthly quota is exhausted.
On-demand Storage (metered)Monthly$1 per GB invoiced monthly, only after the 50 GB storage quota is exhausted.

7. Track usage against your subscriptions and share with customers

Use the following options to monitor usage, review billed consumption, and answer customer questions about their invoice.

Monitor usage during the current term

Using the app

Open the subscription to view cumulative API requests against the total included API requests (100,000 for 10 seats), and storage against the total included storage (50 GB for 10 seats) under the Usage summary section.

Using the API

Retrieve usage summary to show consumed usage for a feature over a reporting window. If you omit timeframe_start and timeframe_end, Chargebee Billing defaults to the start of the current subscription term through now. Call it once per metered feature.

curl  https://{site}.chargebee.com/api/v2/subscriptions/{subscription_id}/usage_summary \
     -G \
     -u {site_api_key}: \
     --data-urlencode feature_id="api-requests"

See Retrieve usage summary for a subscription.

Retrieve usage charges to show accrued overage charges before the monthly invoice is generated. This returns the current unbilled snapshot, including included usage, total usage, and the overage amount when a metered addon is attached.

curl  https://{site}.chargebee.com/api/v2/subscriptions/{subscription_id}/usage_charges \
     -u {site_api_key}:

See Retrieve usage charges for a subscription.

Review usage after invoicing and share details with customers

Using the app

Open the invoice and select View Usage PDF to review or share an itemized usage breakdown.

Manage overage invoices

At the end of each monthly billing period, Chargebee Billing creates the overage invoice in a Pending state. While an invoice is pending, you can still ingest usage events dated within the accepted backdating window, and they're included in the final charge. Pending invoices don't trigger payment collection.

You manage how pending overage invoices close under Settings > Configure Chargebee > Billing LogIQ > Usage Based Billing. Two behaviors are available:

  • Manual close. Review all usage, then close the invoice yourself.
  • Auto-close. Chargebee Billing closes the invoice automatically at a time you define.

Once an invoice is closed, no further usage can be added to it, and payment collection begins. If you need to correct a closed invoice, void it and regenerate it with the updated usage.

See Actions for pending invoices, the Invoices API, and the Credit Notes API.

Offer a trial period

On a per-seat plan with included usage, you can offer a trial without a usage cap or with a fixed quota.

To offer a trial without a usage cap, open the plan price point, select This plan has a trial period, and enter the trial duration. Chargebee Billing does not bill usage during the trial. Billing for usage starts when the trial ends. See Trial Management.

To offer a trial with a fixed quota, create a separate trial plan for the required duration and define custom entitlements for that period. The subscription starts on this trial plan. At the end of one billing cycle, update the subscription to the Team monthly plan. You can schedule that change with Subscription Ramps.

Add or remove seats mid-term

Teams grow and shrink during the month. When a plan's quantity changes mid-term, Chargebee Billing handles both the charge and the included usage:

ActionWhat Chargebee does to chargesEntitlements
Add seatsThe old quantity and price stay effective until the change. The new quantity takes effect immediately, applied for the whole term, and a prorated charge for the remaining billing period is invoiced based on the new quantity.Entitlements scale linearly with the updated quantity for the entire billing period.
Remove seatsThe new quantity takes effect immediately. With proration enabled, a prorated credit note for the unused seats applies to future invoices.Entitlements scale linearly with the updated quantity for the entire billing period.

Example

John Doe's team adds 5 seats mid-month, going from 10 to 15 seats. The included usage for the billing period becomes 150,000 API requests (10,000 × 15) and 75 GB storage (5 GB × 15). A team that had made 112,000 API requests and used 56 GB is now within both quotas, so no overage is charged for the month. Because entitlements scale for the entire billing period, removing seats works the same way in reverse: a team that reduces seats after heavy usage may move into overage.

Using the app

Go to the subscription, edit the Team plan quantity, and apply the change Immediately or on a Specific date.

Using the API

Use Update a subscription for items and pass the new quantity:

curl  https://{site}.chargebee.com/api/v2/subscriptions/{subscription_id}/update_for_items \
     -u {site_api_key}:\
     -d "subscription_items[item_price_id][0]"="team-USD-monthly" \
     -d "subscription_items[quantity][0]"=15

To schedule a seat change for the next renewal instead, use Subscription Ramps. For the full proration and entitlement behavior, see Mid-term subscription changes.

FAQs

How do I combine seat-based pricing with prepaid credits?

Keep the Team plan's per-seat price and use a prepaid credit grant instead of separate included-usage quotas for the features that should consume credits. Configure a credit unit, such as AI Credits, and a monthly grant on the plan price, including rollover settings. Set a credit rate on each eligible metered feature so usage draws down the subscription's credit balance. To bill after credits run out, attach a metered addon configured to bill overage for that credit unit, rather than the feature-overage addons used in this guide.

What if included usage should not multiply with the number of seats?

Keep the per-seat Team plan for the seat fee, but grant the fixed allowance through a separate non-metered addon instead of the plan. Create a $0 monthly flat-fee addon, link it to API Requests and Storage, and define included usage of 10,000 API requests and 5 GB. Attach the addon once to the subscription and remove the corresponding plan-level entitlements so the allowances are not combined.

The subscription then receives the same 10,000 API requests and 5 GB each month, regardless of its seat count. Keep both metered overage addons attached to bill consumption beyond these fixed allowances at the rates defined in this guide.

Summary

This guide showed you how to:

  • Turn raw usage into metered features for API requests and storage, then configure a per-seat plan whose included usage is multiplied by the number of seats, and monthly addons for overages.
  • Create the subscription with a seat quantity, monitor usage and alerts, manage seat changes, and validate the complete cycle with Time Machine.