If you are new to LicenseSpring, or to software licensing in general, you might find it helpful to review the following concepts so that you can get up and running as quickly as possible.
This is what you wish to add software licensing to. A product can be a web app, a desktop application, a plugin, a device/hardware or a microservice for example. A product can have many possible attributes, but here are a few that you should be aware of:
This is what you call your app. It can be anything, and is not particularly consequential for configuring your LicenseSpring account. The Product name can be edited at any time by a user of the vendor platform.
The product code is important as it is a required field for most of the License API calls.
You cannot change a product code once you have defined a product in LicenseSpring, so choose it wisely!
LicenseSpring supports key-based or user-based authorization:
- Key-based licenses use a license key to authorize a license with the License API. It is mostly used for Node-Locking licenses to a machine or device.
- User-based licenses require that an email is assigned to a license. The user's email and password (or Single Sign On) is used as part of the Authorization Process
Licenses serve as a record of entitlements granted for a given product. These license entitlements can be issued, modified, transferred, revoked, and contain many configuration options. Here are a few of the main options to be aware of.
There are 4 elementary types of licenses which can be issued using LicenseSpring:
- Perpetual: These licenses do not have expiry dates.
- Time-Limited: These licenses have a fixed end date. This end date can affect the license status.
- Subscription: The license status is determined by an external source of truth (like a recurring billing system such as Stripe). Subscriptions also have subscription periods recorded.
- Consumption: Allows for usage metering, such as counting the times a license application is run, or number of API requests.
Max activations is a field determining how many unique devices can be bound to a license.
Total activations is also a field that belongs to a license, and counts how many distinct devices have been bound to a given license.
Total activations will always be less than or equal to max activations.
This is the state of a given license. There are many different states covered in different section in these docs. The main ones to be aware of:
- Inactive: The License has not been bound to any device but can currently be used. Specifically, the total activations field is 0.
- Active: The License has been bound to at least 1 device, and can currently be used (is not disabled or expired)
- Expired: For licenses that can expire (eg: time limited licenses)
- Disabled: The Software vendor can set a license as disabled, which overrides other statuses. A Subscription license is disabled when the subscription is no longer active.
The License Activation is the act of binding a license to a device, also known as node-locking. License Activation requires:
- A HardwareID,
- The license authorization method (either a license key, or an email / password),
- The product code.
This is a unique identifier of a device that activated a license, and is sent on almost all requests to the license API.
There are two primary RESTful APIs maintained to interface between LicenseSpring and your product and technology:
The License API is what your client-facing application will use to connect to LicenseSpring's cloud. It allows for a limited set of operations such as license checks, activations, or to count consumptions. It uses a signing and verifying key in order to communicate with the server securely.
The Management API is intended for all of your back office operations, such as creating new licenses, exporting license usage to a BI tool, or integrating with your internal ERP, CRM, or Recurring billing for instance. It is not intended to be customer facing.
We have developed and maintain several wrappers to the APIs to make it easier to add LicenseSpring to your software, as well as to make it easier to use. For example the SDKs will automatically compute the hardwareID, enable local license checks, prevent clock tampering, or cache consumptions, to name a few of the additional features that the SDKs provide.