Skip to main content

Apply usage-based bill for subscriptions

The Cleverbridge platform supports usage-based billing and ensures that all usage-based bills are synced with client-hosted applications that calculate usage.

Usage-based billing Components and requirements

The process of usage-based billing involves the following system components:

HeaderDetails
Your SystemYour system must be set up to track the usage, determine the billable amount of this usage, and pass the billable quantity to Cleverbridge. Cleverbridge will then use this quantity to bill the customer based on the per-unit price for the subscription item.
Subscription APIUsage-based billing implies that customers are billed for the usage after the end of the billing interval. Use cases in the following sections explain different usage-based billing options that can be implemented using our Subscription API.
ProcessCart APIIf the ProcessCart API is used, then the usage is not tied to the subscription, and a one-time purchase is created.

Usage-based billing use cases

General usage billing

  1. On March 17th, a customer purchases a SaaS data storage subscription that is billed monthly. This service is priced entirely upon the amount of data storage used each month using a formula that your organization applies to activity records within its data centers. Although the customer was required to enter payment information to complete the purchase, the customer is not billed at this time.
  2. At the end of the day on April 16th, you use a program that accesses the Update Subscription Item endpoint to update the usage quantity for the monthly billing interval that just ended. This program calculates usage for each subscription with a renewal date of April 17th.
  3. On April 17th, the Cleverbridge platform automatically bills each customer for the prior month's usage.
  4. Every subsequent month, you run the program to update subscriptions with usage information.

This use case calls the Update Subscription Item API endpoint as described below:

ParameterSet to Value
SubscriptionIdThe unique identifier of the subscription.
RunningNumber1 (This subscription has only one item.)
ProductIdProduct ID for the subscription item usage.
QuantityQuantity of usage.
AlignmentSettingsAlignToCurrentInterval: false
GetCustomerPricePreviewOnly: false
UpdateActionSee the note below.

907bf9a-sub-bill-usage-usage

Billing for excess usage

It is also possible to charge your customers for excess usage. For example:

  1. On March 17th, a customer purchases a SaaS data storage subscription that consists of two subscription items billed on a recurring basis as follows:
    • Base usage: €50 for up to 500 gigabytes, billed at the start of the monthly billing interval
    • Excess usage: Storage used in excess of 500 gigabytes, billed at €1 per 25 gigabytes used and billed in arrears
  2. The same day, the Cleverbridge platform automatically bills the customer €50 for the base usage subscription item.
  3. At the end of the day on April 16th, the client applies a formula to activity records in its data centers to calculate the quantity of excess usage for each customer.
  4. The same day, you run a program that uses the Update Subscription Item endpoint to update the subscription's usage quantity in the Cleverbridge platform. This program calculates usage for each subscription with a renewal date of April 17th.
  5. On April 17th, the Cleverbridge platform automatically bills the customer €58, which is the sum of €50 for base usage and €8 for 200 gigabytes in excess. This use case calls the Update Subscription Item API endpoint as described below:
ParameterSet to Value
SubscriptionIdThe unique identifier of the subscription.
RunningNumber2 (Excess usage is the second of the two subscription items.)
ProductIdProduct ID for the subscription item usage.
QuantityQuantity of excess usage.
AlignmentSettingsAlignToCurrentInterval: false
GetCustomerPricePreviewOnly: false
UpdateActionSee the note below

Sub Bill Usage Excess Usage

Using Quantity-Based Pricing

You can use a tiered or volume pricing approach to bill a customer for usage. For example:

  1. On October 17th, a customer subscribes to a cloud messaging product that is billed at the end of every monthly billing interval based solely upon the number of messages sent during that billing interval. The customer was advised that usage during every billing interval would be priced according to the following tiers:

    Number of MessagesPrice per Message
    1,000 or fewer¥5.00
    1,001 – 10,000¥1.00
    10,001 – 50,000¥0.75
    50,001 – 100,000¥0.50
    Over 100,000¥0.30

    Although the customer was required to enter payment information to complete the purchase, the customer is not billed at this time.

  2. At the end of the day on November 16th, the program running on your organization’s system does the following for each subscription with a renewal date of November 17th:

    • Calculates the quantity of usage during the billing interval, and then uses the same table to determine the correct price at which to bill the usage quantity
    • Uses the Update Subscription Item Price endpoint to update the subscription item’s quantity and price
  3. On November 17th, the Cleverbridge platform automatically bills the customer ¥39,211 (78,421 messages sent, priced at ¥0.50 per message) during the billing interval that ended on November 16th.

This use case calls the Update Subscription Item Price API endpoint as described below:

ParameterSet to Value
SubscriptionIdThe unique identifier of the subscription.
RunningNumber1 (it is assumed that the messages item is the only item in the subscription).
Quantity78,421
AlignmentSettingsAlignToCurrentInterval: false
GetCustomerPricePreviewOnly: false
CustomerPriceCurrencyId: JPY
IsGross: false
Value: 0.50
UpdateActionSee the note below.

Illustration

Sub Bill Usage Usage Qty Based Price

Important comments

For all of the use-cases above, it is important to keep in mind the following information.

The use of "UpdateAction" Parameter

The UpdateAction parameter is currently used for documentation and tracking only. The value set does not affect transaction processing.

The supported values are as follows:

  • For upgrades, set the parameter to upgrade(or 1 for JSON)
  • For downgrades, set the parameter to downgrade, (or 2 for JSON)
  • For all other changes, set the parameter to update (or 0 for JSON)

Additional options

Although not covered in this use case, the following options are also available:

Reduce the price of the subscription by applying a discount coupon that was set up in the Cleverbridge platform. Suppress generation of the confirmation email to the customer for the transaction.

note

The Cleverbridge platform generates an email for new purchases that cannot be suppressed.

tip

Get the customer's consent for changes to subscription-metrics. For more information, see Obtain customer consent.


Did you find this doc useful?