Concept

Seat-based billing is a prevalent model, typically managed manually by companies using subscription update APIs in tools like Hyperline.

Here’s the typical process:

The process can become more intricate if you’re seeking automatic updates to prevent immediate charges to users, or if your billing needs involve specific payment terms.

For instance, if you want to bill customers yearly on a pro-rated basis at each month’s end based on the maximum number of users, you would need to:

  1. Monitor initial and peak monthly seat counts.
  2. Schedule monthly updates for yearly subscriptions.
  3. Wait until the end of the month or manually calculate earnings.
  4. Manually calculate pro-rated charges unless using a flexible billing tool.

Our goal is to automate these steps directly in Hyperline.

Theoretical Differences

How do metered and seat-based items differ?

Seat-basedMetered
Invoiced at the end of the period based on data usedInvoiced at the start of the period, end of the period or in real-time (when an event occurs)
Resets every period (meaning when we restart a period we restart the count)Can be invoiced outside of the base schedule (a yearly item can be reviewed monthly)
Considers timestampsDoes not consider the time for each “event”
No pro-rata management as we don’t track when an item is addedPro-rata management
Useful for: API calls, financial flowsUseful for: users, devices, connectors… anything that’s always live

Practical Application

How to create an automated seat-based product?

1

Create a seat-based product

Navigate to the Products Section for this.

2

Activate Metering configuration

Ensure to choose the event you wish to count or sum, as connected seats products are centered around an entity called an aggregator.

The aggregator plays a crucial role in gathering data received by Hyperline.

It determines whether the incoming data should be factored into the billing calculations, providing a more streamlined and accurate billing process.

3

Click on Create Product

That’s it! Your seat-based product should now be marked as ”Connected seat“.

How to configure connected seats product in subscriptions?

There are two main parameter groups: Refresh and Invoicing.

Refresh schedule

  • Realtime: The count updates immediately when a change is detected, instantly if you’re using the API, or based on the dataloader interval if you’re using loaders.
  • Periodic: The count refreshes based on the interval entered by the user in the Refresh interval field. It’s independent of the subscription billing interval but can be matched to it.
  • Manual: Users must trigger the refresh using the endpoint for a more customized experience.

Invoicing schedule

  • Immediately: Hyperline charges (or refunds) the update as soon as it detects it, even in the middle of the period. If selected alongside the “periodic” option, it will simply invoice the customer at every “end” of period.
  • With next invoice: Hyperline adds the update amounts to the next invoice as additional lines (so if the update is realtime but invoicing is at the end of the month, we’ll update the subscription count in realtime but will then add the charge to the next invoice).
  • Custom: Allows the user to set an invoicing period, for instance, if they have an annual subscription they want to update in realtime but want to charge the update every month.

Other parameters

  • Application schedule: We’ll apply the update to the subscription immediately or wait until the end of the period. It doesn’t impact billing but it affects the subscription values.
  • Charging method: If prorata is selected, we’ll charge the units at the pro-rated rate given the product payment interval. Full amount means we’ll charge the entire price regardless of when the change is detected.
  • Charge the highest detected value for the period: Instructs Hyperline to use the highest value it has counted regardless of the current one. Useful to always commit the maximum number of seats.
  • Refund when a decrease in unit count is detected: Instructs Hyperline to count negative updates as refunds if they’ve already been paid.