Licenses and entitlements

To support both B2B and B2C licensing scenarios, 10Duke Enterprise uses the concepts of entitlements and licenses.

Entitlements

In 10Duke Enterprise, entitlements hold the licenses granted to an organization or a consumer.

You can manage entitlements using the 10Duke SysAdmin tool and through the 10Duke Entitlement Management REST API.

Organization entitlements

An organization can have one or more entitlements, and each entitlement can contain one or more licenses. In each entitlement, you define which user groups and device client groups are authorized to consume the licenses in that entitlement.

An organization must have at least one entitlement to store their licenses, and in many cases, one is enough. However, there may be cases where you want to create multiple entitlements as “containers” for organizing the licenses that a customer has purchased. One of the entitlements should be set as a default entitlement.

As an example, in a customer organization, users might be distributed into multiple user groups, and each group needs access to different types of or a different number of licenses. If the organization’s licenses are distributed to multiple entitlements, this can provide more flexibility and control both for you as the software vendor and for the customer’s organization administrator.

When licenses are granted to an organization, a default entitlement is automatically created if the organization doesn’t have one yet. You can choose which entitlement to place the licenses in, or allow them to be placed in the default entitlement.

Personal entitlements

A consumer user must have one personal entitlement that stores all their personal licenses.

When licenses are granted to a user, an entitlement is automatically created if the user doesn’t have one yet.

A user who only consumes organization licenses doesn’t need a personal entitlement.

Licenses

Licenses can be granted to organizations and to consumers (individual users). You grant licenses using product packages, and the customer gets a separate license for each licensed item in the product package.

You can grant and manage licenses using SysAdmin and through the Entitlement Management REST API.

By using activation codes, you can also provision licenses that your customers can redeem later when they start using your software.

Organization licenses

Organization licenses are licenses that a company customer has purchased for the end users in their organization.

The organization owns the licenses, and they authorize their users to consume the licenses through user groups. Depending on the license model, this can mean, for example, assigning named seats per user or a floating pool from which users consume seats.

If the organization has device licenses, the licenses are consumed by the devices (machines or PCs) on which your licensed software is running. These device clients are authorized to consume licenses through device client groups. The license model again determines how the device clients can consume the licenses.

You can allow each organization to manage their own licenses using the 10Duke OrgAdmin tool, for example, to manage their users’ and device clients’ access to licenses and to reserve seats.

Personal licenses

Personal licenses are licenses that a consumer customer has purchased for themselves. Personal licenses are associated with a single user and can only be consumed by them according to the license model defined.

Transactions

When licenses are being granted, 10Duke Enterprise uses the concept of a transaction, which often corresponds with a purchase that a customer has made for your products. You can grant licenses in transactions using SysAdmin and through the Entitlement Management REST API.

A transaction allows grouping multiple license grants together. For example, when a customer purchases or subscribes to multiple products at the same time, you can grant and maintain the licenses for their whole order or subscription within the same transaction in 10Duke Enterprise.

A transaction consists of one or more transaction items. Each transaction item specifies one product package to be used for granting licenses, and the quantity requested—how many times that product package is used to grant licenses.

Whether the requested quantity is reflected as seats, use count, or use time in a particular license depends on the licensed item’s settings in the product package: they define the credit type and amount that this particular product package grants with that licensed item.

For example:

  1. Let’s say you have a product package with two licensed items, each granting 50 seats. To grant licenses with this product package, you use a transaction with one transaction item. The customer needs 100 seats, so you set the product package quantity to 2, which creates two licenses, each with 100 seats.

  2. Now let’s say you also have a second product package, this time with one licensed item that grants 30 days of use time. To grant licenses with both product packages at the same time, you would use a transaction with two transaction items. For this second product package, the customer needs 90 days of use time, so you set the product package quantity to 3. The transaction now creates the two 100-seat licenses like above, and also one license with 90 days of use time.

You can also attach external identifiers and custom properties to transactions and transaction items for integration purposes.

For example, the transaction-level external ID typically stores the external system’s unique identifier for a purchase order associated with a customer account or a contract. A purchase order may contain multiple line items that represent the products ordered, and the transaction item-level external IDs can be used to store the identifiers of these line items.