website logo
⌘K
Getting Started
Introduction
Basic Concepts
Opening an Account
Creating & Configuring Products
Integrating SDK and Configuring License Fulfillment
Activate a Key-Based License
Vendor Platform
Issuing New Licenses
License Detail View
Order Detail View
Customer Detail View
Metadata
Analytics
Settings
Product Configuration
Product Features
Product Custom Fields
Product Versioning
License Policies
Product Bundles
License Entitlements
License Types
Activations & Device Transfers
Features
Custom Fields
License Start Date
License Note
Maintenance Period
Trial Licenses
Floating Licenses
License Activation Types
Portals
End-User Portal
Offline Portal
Air-Gapped Portal
License API
License API Authorization
License Activation/Deactivation
License Check
Consumption
Floating
Trial Key
Product Details
Device Variables
Changing Password
Management API
Making API Requests
Management API Authorization
Customer
Product
Order
License
Device
Analytics
SDKs
Tutorials
.NET/C# SDK
.NET/C# Management SDK
C++ SDK
Java SDK
Python SDK
Go SDK
Delphi SDK
Swift/Objective-C SDK
Android SDK
Unity SDK
Errors and Response Codes
Floating Server
API Reference
Deployment
Configuration
Floating Server UI
Securing the Server
Whitelabeling
FAQ
Floating Server Changelog
Integrations
Salesforce
FastSpring
Stripe
Shopify
Common Scenarios
Single Sign On (SSO)
Glossary
General
SDK Glossary
Vendor Platform
Product Configuration Glossary
License Configuration
Postman Collections
Frequently Asked Questions
Changelog
License API changelog
Platform changelog
Docs powered by
Archbee
License Entitlements

License Types

18min

One of the fundamental building blocks of a license within our model is the license type. Every license issued will always have a type. In the vendor platform, this appears in many places, such as the license summary page as well as on the license detail page.

License Type Appearing on the License Detail Screen
License Type Appearing on the License Detail Screen


You cannot change the license type once it has been created.

LicenseSpring defines 4 types of licenses:

  • Perpetual
  • Time-Limited
  • Subscription
  • Consumption

Let's dive into the different license types:

Perpetual License

A perpetual license does not expire. The is_expired field on a license check will always return False .

At the time of this writing, we distinguish a trial license through a Boolean value isTrial . If a license is of type trial, then the date stored in the validity period refers to the validity period of the trial. For example, if the license is of type perpetual, and isTrial is true, you would see a perpetual license with an expiry date in the vendor platform.

Statuses of a Perpetual License

  • Inactive The times_activated for this given license is 0 , meaning that this license has not been bound to a device.
  • Active The times_activated for this field is greater than 0 , meaning that the license has been bound to at least one device.
  • Disabled The license has been disabled by the vendor, this will override other rules for this status.

Time-Limited License

Time-limited licenses always have a calendar date as a value in the Expiry date row that you can see in the vendor platform.

On a license check, the field is_expired will be True if the expiry date is earlier than the server's current date, and False if the expiry date of the license is at a future date than the server's timestamp.

Status of a Time-Limited License

  • Inactive The Total Activations for this given license is 0 , meaning that this license has not been bound to a device.
  • Active The Total Activations for this field is greater than 0 , meaning that the license has been bound to at least one device.
  • Disabled The license has been disabled by the vendor, this will override other rules for this status.

There are other timestamps you can work with, instead of just at the license type level. For instance, you can set an expiry date for a specific feature, or define a maintenance period validity.

Subscription License

A subscription license synchronizes the status of the subscription with the state of the license.

For a subscription license, LicenseSpring requires an integration to an external source of truth (like a recurring billing system). LicenseSpring updates the status of the license according to the status of the subscription, which is handled by a 3rd party.

Unlike the other license types you can encounter in LicenseSpring, the status is not dependent on the value of the times_activated field. Instead, a license of type subscription will be active once created, and will remain active until the system handling the subscription tells LicenseSpring that the subscription is no longer active (cancelled, refunded, etc). In this case, the license status will be set to inactive

Subscription Grace Period

Grace periods offer you the flexibility to determine a specific timeframe, measured in hours, subsequent to the expiry of the designated validity period.

During this defined interval, the license will retain its validity (isExpired() status will remain false), ensuring a seamless transition even after the official expiration.

Status of a Subscription License

  • Inactive LicenseSpring received information from the external source of truth stating that the subscription is no longer active.
  • Active This is the default state of a subscription license, when it is created.
  • Disabled The license has been disabled by the vendor, this will override other rules for this status.

Consumption License

A consumption license, also known as a metered license, permits usage metering. consumption licenses work by setting a value the the resource the vendor wishes to meter, and then recording the times that resource has been used. The resource can really be anything that has a discrete value, for example:

  • Times the software was run
  • The number of API requests made
  • Number in minutes that a pooled resource was used
  • Credit

Consumption licenses support overages, total consumptions can be incremented or decremented (by adding a negative value), and the total consumptions can be periodically reset.

Options available when issuing a consumption-based license
Options available when issuing a consumption-based license


Unique Fields in a Consumption License

Unique fields for a consumption license
Unique fields for a consumption license

  • Max Consumptions: Number of "consumptions" granted to the end user.
  • Total Consumptions: Number of "consumptions" the end-user has currently consumed. This number must be less than or equal to the max consumptions + max overages.
  • Overages: If overages are allowed, then the software vendor can specify a value that the license can exceed the value for max consumptions by. Otherwise, the max overages is 0.
  • Consumption Period: If this field is set, then the value for total consumptions is reset to 0. The consumption period can be Daily, Weekly, Monthly or Annually
    • Daily is reset at midnight UTC
    • Weekly is reset on Monday at midnight UTC
    • Monthly is reset on the first day of the month at midnight UTC
    • Annually is reset on the first day of the year at midnight UTC

Status of a Consumption License

  • Inactive : The Total Activations for this given license is 0 , meaning that this license has not been bound to a device.
  • Active : the Total Activations for this field is greater than 0 , meaning that the license has been bound to at least one device.
  • Disabled : The license has been disabled by the vendor, this will override other rules for this status.

LicenseSpring also allows an ISV to meter the usage of an individual module or component by defining features consumptions, and adding them as part of the license entitlements.









Updated 15 Sep 2023
Did this page help you?
PREVIOUS
License Entitlements
NEXT
Time-Limited vs Subscription Licenses
Docs powered by
Archbee
TABLE OF CONTENTS
Perpetual License
Statuses of a Perpetual License
Time-Limited License
Status of a Time-Limited License
Subscription License
Subscription Grace Period
Status of a Subscription License
Consumption License
Unique Fields in a Consumption License
Status of a Consumption License
Docs powered by
Archbee