Categories: Licensing

Subscriptions, Courtesy of CodeMeter

More and more software developers are reaching out to Wibu-Systems with their vision to offer their software by subscription. This sounds straightforward, but a quick conversation often reveals that people have very different ideas about how a subscription system should work and how their existing sales systems might affect its eventual character. The good news is that CodeMeter offers an effective solution for any type of subscription model we have encountered to date.

The Technical Underpinnings

A look at the technology behind a subscription model shows that it can indeed be a simple and elegant solution if CodeMeter is given an opportunity to work its magic. In essence, CodeMeter simply has to be integrated into the software, and CodeMeter Runtime takes care of everything else. It does not matter whether CodeMeter was integrated automatically using CodeMeter Protection Suite or manually via our Core API.

A typical subscription model uses a time-limited license, i.e. the end users need to get their licenses renewed to continue using their software, which they can either do by buying an extension to their subscription or by having a contract in place to do so in the background. Licenses can be set to expire by configuring an expiration date in the license options. As long as that date is still in the future, the license can be used; when the expiration date arrives, it cannot. Software can, of course, include a mechanism for checking the expiration date and either starting an automatic renewal process or reminding the user to do so manually.

Technically, subscriptions end when the expiration date is not re-set and the license automatically becomes invalid at the end of the active date.

Unlimited Licenses?

An alternative to temporary, regularly renewed licenses is offered by unlimited licenses: The users can use their licenses for as long as their subscription is active, without having to update their license. Only when they cancel their subscription would the license be turned into a temporary version that expires with the end of their contract.

The advantage of this approach is that it avoids all possible disruptions relating to the regular license renewals. But it also comes with drawbacks:

Users might find a way to stop their licenses from being turned into temporary, expiring licenses to keep using their software even after their subscription ends. Subscriptions based on temporary licenses also make life easier if there are any hardware problems. If a license is lost in this way, the vendor can simply re-issue it and does not have to worry about fraud and malfeasance, because only allegedly lost licenses that a user wants to keep using illegitimately would expire soon enough. The risk is far greater with unlimited licenses, which might be in use for a long time after their purported “loss”.

The Users’ Perspective

The most convenient way to renew temporary licenses is a simple activation mechanism that works in the background, e.g. every time the software is launched. This requires the system to be online. If there is no way for the software to automatically check for updates and renewals over the Internet, push updates are an alternative, as they need little input from the user: The vendor can create a license update for the users’ CmContainers, which is emailed to the users. They simply have to download it and can continue to enjoy their software. Alternatively, the files required for this operation can be provided via WebDepot.

The Vendor’s Perspective

The interesting side of subscription models can be found with the software vendor: The possible commercial options and technical requirements are endless and allow for lots of creativity. The only common denominator is that there needs to be a way to let licenses expire or renewed with a new expiration date.

In most cases, users will enter an explicit subscription contract, which defines when the next renewal can and should be bought. The renewal can be done either by invoicing the user or by automatically charging their accounts. If users do not want the software anymore, they need to actively cancel their contract and can then continue to enjoy their software until the end of the subscription contract.

Automatic Extensions via an ERP System

For this setup, the ERP system needs to know exactly when the next subscription payment is due. When the software is first bought, a license is created by CodeMeter License Central and given a fixed expiration date (optionally with a certain grace period). As long as the subscription remains active, a new license is created with each payment or whenever a cancellation deadline passes. This license then simply replaces the old, expiring license.

Automatic Extensions with the Renewal Concept

The renewal concept works by creating licenses that are valid for a defined period of time, which is configured in the item within CodeMeter License Central and given a specific expiration date. In a subscription model, the user would then have to regularly renew the license via CodeMeter License Central. As described above, this can be done either by sending the users a timely reminder or – even better – by automating the entire process to work from within the software itself.

Should a user cancel their subscription, the backend system in charge creates a new license, with a fixed expiration date set to the end of the final period of use the user paid for. When the license renewal comes up again, the renewal mechanism is ended, and the license becomes a simple temporary and expiring license.

For the vendor’s workflow, this acts just like an unlimited license, which is only transformed into a regular time-limited license upon cancellation of the subscription. The difference is that the renewed license is technically always time-limited, which prevents fraudulent use from the get-go.

The 365-Day Mechanism

Since it was first introduced by some of the big names in the software industry, this model has steadily grown into a fan favorite, continuing the success story of similar models that were long used by leading game console makers.

The beauty of this mechanism is the choice of sales channels it gives the vendor: Users can buy a renewal for a new period to add to their existing license wherever they prefer. Once they activate it, there is no way back, that is, the renewal is bound to the specific license and not a user. This takes away a certain quality of customer relationship for the vendor, but it also means that no special sales structures need to be put in place to maintain such a direct transactional relationship. Activation codes could just as easily be sold at supermarket checkouts.

Users can also choose to enter a contract for automatic renewals when they activate their first period, taking us back to the active license renewal via the ERP system. The only difference here is that the expiration date is calculated from the software’s first activation and not from its original sale.


Subscription models come in all shapes and sizes, and the relationship they create between vendor and user can take many different technical forms. CodeMeter and its ability to enforce license expiration dates are a great way to realize many of these setups, and CodeMeter License Central works perfectly with many popular back-office systems to make finding the right sales structure for a subscription model an enjoyable and creative experience.


KEYnote 41 – Edition Spring 2021

To top