License Management: plans, license requests, signed keys and the license lifecycle

Define license plans, produce a machine fingerprint request, issue a signed license key, activate it on a host, and renew, suspend or revoke client licenses.

On this page

Process at a glance

  1. Define plansLicense administratorEditions with seat limits and prices.
  2. Create a license requestCustomer administratorRequest file carrying the host’s machine fingerprint.
  3. Generate the signed keyPlatform owner (superuser)Signed license JSON and an issued client license record.
  4. Activate on the hostCustomer administratorSignature and machine id verified; the license becomes the host’s active license.
  5. Check statusAdministratorEdition, users, modules and days remaining.
  6. Review issued licensesLicense administratorIssued licenses with their history.
  7. Renew, suspend or revokeLicense administratorStatus changed and local keys updated immediately.

#Purpose and scope

This chapter covers the Client Licensing module: licenses that a vendor issues to its clients, and the licence installed on a host. It is not the ERP’s own subscription (see Account → Subscription). The module is admin-only: a superuser or the Admin role.

#Before you start

  1. An administrator account. Generating a key is further restricted to a superuser on the platform owner’s host, which is the only place the private signing key is installed. Customer or on-premises hosts carry only the public key, which is enough to verify and activate.
  2. The Client licensing home lists License Status, License Request, License Plans, Client Licenses and License Generator.

#1. License plans

  1. Open License plans and create a plan with a code, name, edition (Starter, Standard, Professional or Enterprise), duration in months, the modules allowed (JSON array), seat limits and prices.
  2. Seats come in four kinds: named, named concurrent, guest and guest concurrent, each with its own price. “Max users (legacy total)” is kept for older licenses.
  3. Mark a plan inactive to stop new licenses being issued against it.

#2. Create a license request

  1. On the host that needs the license, open License request and generate the request file. It carries a machine fingerprint (machine id), the host name, the operating system and the BSuit version.
  2. Send the file to the vendor.

#3. Generate the signed key (platform owner)

  1. Open License generator as a superuser. Load the request file, or enter the customer name and the machine id.
  2. Pick an optional plan to auto-fill, then confirm the edition, maximum concurrent users (at least 1), the modules, and the validity in months (1 to 120). Seat limits cannot be negative.
  3. Generate. BSuit signs the license JSON with RSA-SHA256, creates a client license record and writes an “issued” history row in the same transaction. Send the key to the customer.

#4. Activate the license on the host

  1. Submit the signed license JSON to the activation endpoint (POST /api/license-management/activate). BSuit verifies the RSA signature, requires a license code and a machine id that matches this host, and then stores it as the host’s active license with an activation history row.
  2. A license that is already active is answered with “License already active”.

#5. Check status and expiry

License status shows the active license: code, customer, edition, maximum concurrent users, modules allowed, valid from and until, days remaining, machine id and activation time. A license is valid through its valid-until date and expires the day after; it becomes valid on its valid-from date. An expired license reports as unlicensed (“License has expired”) so the host falls back to the unlicensed behaviour, and with no license it reports unlicensed with the machine id. An hourly background worker also marks the stored client licenses expired.

#6. Renew, suspend and revoke

  1. Open Client licenses for the issued license records and their history. Statuses are Active, Expired, Suspended and Revoked.
  2. Renew: enter the number of months (1 to 120). The new expiry is counted from the later of the current expiry and today. An expired or suspended license becomes Active again, and the host’s local keys are revalidated.
  3. Suspend: invalidates the host’s local key, so the host reports as unlicensed on its next status check.
  4. Revoke: invalidates the host’s local key immediately and permanently.

About this guide

Status
Partially reviewed
Application
BSuit ERP
Audience
Administrators, software vendors and their license administrators
Owner
BSuit documentation team
Reviewer
Editorial review pending
Last verified
2026-10-03
Checked against
cb3691bbf
Seen on a running system
Not yet
Help version
2026.0.0-preview
Guide ID
erp:article/guide/license-management

Known limits: Written from a read of the implementation; statements traced to source. Not yet walked through end to end by a trainer on a running system. No ERP screen was found that calls the activation endpoint; activation is documented as an API step.

Need more help?If feedback above cannot be sent, email support and quote guide ID erp:article/guide/license-management.
Email support