Documentation · SoftActivate Licensing

SoftActivate Licensing

SoftActivate Licensing is a software licensing service. Your application embeds the free client SDK, and your customers activate with a license key. You model products, license templates, licenses, orders, and subscriptions in the hosted console. There is no infrastructure to manage and nothing to operate.

How it works

  1. You model your product in the console: a license template describes what a license grants (duration, devices, floating seats, subscription binding); a product references the template; licenses are minted from them, and each carries a license key.
  2. Your application embeds the client SDK, native C++ or .NET (C# or VB.NET), configured with three values: the service endpoint, your vendor id, and the customer's license key.
  3. Your customer activates once, and the SDK saves a license to the device. Every later start validates that stored license entirely offline, with no network call, checking that it is authentic, that it belongs to this device, and that it is still within its valid period.

Licenses are digitally signed and verified on the customer's machine, so they cannot be forged or edited without detection. Each license is tied to your vendor identity and to the device it was activated on, and the SDK validates the whole chain against SoftActivate's public certificate infrastructure — no key material or certificate setup on your side.

Configuring the client looks like this in each supported language:

C++

#include "softactivate/sws_licensing.h"

// create a licensing client pointed at the activation endpoint
auto client = sws::licensing::client::create(endpointUrl);

// your tenant's licensing domain - license certificate chains are
// validated against ca.<this domain>
client->set_metadata("trusted_domain", trustedDomain);

// your vendor id and the customer's license key (both live in the console)
client->set_vendor_id(vendorId);
client->set_license_key(customerLicenseKey);

// your product's Reference Id (console -> Products) - binds licenses to
// THIS product; a key sold for a different product is refused
client->set_product_id("YOUR_PRODUCT_ID");

C#

using SWS.Licensing;

// create a licensing client pointed at the activation endpoint
var client = new LicensingClient(endpointUrl);

// your tenant's licensing domain - license certificate chains are
// validated against ca.<this domain>
client.TrustedDomain = trustedDomain;

// your vendor id and the customer's license key (both live in the console)
client.VendorId = vendorId;
client.LicenseKey = customerLicenseKey;

// your product's Reference Id (console -> Products) - binds licenses to
// THIS product; a key sold for a different product is refused
client.SetProductId("YOUR_PRODUCT_ID");

VB.NET

Imports SWS.Licensing

' create a licensing client pointed at the activation endpoint
Dim client As New LicensingClient(endpointUrl)

' your tenant's licensing domain - license certificate chains are
' validated against ca.<this domain>
client.TrustedDomain = trustedDomain

' your vendor id and the customer's license key (both live in the console)
client.VendorId = vendorId
client.LicenseKey = customerLicenseKey

' your product's Reference Id (console -> Products) - binds licenses to
' THIS product; a key sold for a different product is refused
client.SetProductId("YOUR_PRODUCT_ID")

Where to go next

Running the licensing service on your own infrastructure instead? See the SoftActivate Licensing Server documentation.