Industry
Use Case
Favorite Feature
An enterprise software vendor serves highly regulated industries including financial services, healthcare, and government. Their customers operate under strict procurement controls with mandatory license compliance requirements. Annual vendor audits and regulatory reviews (SOC 2, ISO 27001, HIPAA) require demonstrable proof that software usage never exceeded purchased entitlements. Discovering compliance gaps during these audits triggers emergency license purchases, contract renegotiations, and potential regulatory penalties.
The vendor’s licensing system provided basic per-seat counting but had no real-time monitoring, no historical audit trails, and no automated enforcement. Large customers employed manual spreadsheet-based tracking of license activations and removals, a labor-intensive process prone to errors and delays. When compliance gaps surfaced during audits, they were typically 6–12 months old, making remediation painful.
NetLicensing was deployed to transform compliance from a reactive, audit-driven concern into a continuous, automated process. Real-time usage monitoring, automated alerts at threshold breach, and cryptographically signed audit reports shifted the relationship from confrontational audits to collaborative license management.
The vendor faced three critical compliance gaps:
1. No Real-Time Monitoring: License usage was calculated at audit time by counting active devices and users. If a customer over-provisioned users or failed to deactivate licenses after employee departures, the overuse went undetected until the annual audit.
2. Historical Gaps in Audit Trails: When an audit found overuse, the vendor had no timestamped record of when the overuse occurred or how long it persisted. Customers couldn’t prove whether overuse lasted one month or six months, making true-up negotiations contentious.
3. Manual Enforcement: Customers’ IT teams manually tracked license usage via spreadsheets or email requests to the vendor. This process was labor-intensive, error-prone, and slow — a user departure could take weeks to reflect as a freed license.
The consequences were severe:
The solution combined Node-Locked and Subscription licensing models with real-time validation:
All models fed validation events into NetLicensing’s audit trail, creating a complete record of every activation, deactivation, and access decision.
Product and Module Structure:
Product: Enterprise Compliance Software
├── Module: Seat-Based Licensing (Subscription model)
│ ├── Template: 10-Seat Subscription (timeVolume=12, quantity=10)
│ ├── Template: 50-Seat Subscription (timeVolume=12, quantity=50)
│ └── Template: 500-Seat Subscription (timeVolume=12, quantity=500)
└── Module: Audit & Compliance Tracking (Node-Locked model)
└── Automatic usage event logging to all validations
Configuration Steps:
quantity=50 for a 50-seat license)timeVolume=12, timeVolumePeriod=YEAR for annual licensing cycles matching budget yearsKey Parameters:
quantity=N — exact seat limit; validation rejects activation if current usage >= quantitytimeVolume=12, timeVolumePeriod=YEAR — aligns license renewal with budget cycleDaily Compliance Monitoring:
8 AM: System startup, employee logs into application
↓ App validates: GET /licensee/{licenseeNumber}/validate
↓ NetLicensing checks: current_active_users < license.quantity?
↓ If YES: log activation event with timestamp/userid/device; grant access
↓ If NO: reject activation; return 402 error; app shows "at capacity" message
↓ Event logged: 2026-03-20 08:05:22 | UserID=emp-4521 | Status=ACTIVATED
↓
6 PM: Employee logs out
↓ App calls: PATCH /license/{licenseNumber} (decrement active count)
↓ Event logged: 2026-03-20 18:15:47 | UserID=emp-4521 | Status=DEACTIVATED
Threshold Alert Workflow:
Automatic daily compliance check (midnight UTC):
↓ Cron job queries: GET /licensee/{id}/validate
↓ Calculates: current_active_users / license_quantity = usage_percentage
↓ 75% usage: no action
↓ 85% usage: trigger ALERT → email to customer IT team
"You are at 85% capacity; 8 seats remaining before overuse"
↓ 100% usage: enforce BLOCK → new activations rejected
"License capacity reached. Contact procurement to add seats."
Overuse Prevention & Notification:
Customer with 50-seat license currently has 49 users active
50th user attempts login
↓ App queries: GET /validate
↓ NetLicensing: active_count (49) < quantity (50) → VALID
↓ Activation granted to 50th user
↓
51st user attempts login
↓ App queries: GET /validate
↓ NetLicensing: active_count (50) >= quantity (50) → INVALID
↓ Response: "License capacity reached"
↓ App displays: "Contact your administrator for more seats"
↓ Auto-alert: Vendor's account manager is notified of overuse attempt
Audit Report Generation:
Customer's IT director runs quarterly audit:
↓ Portal: Analytics → License Compliance Report → select date range
↓ System retrieves all activation/deactivation events for the quarter
↓ Report generated:
- 47,520 total validation events
- Peak concurrent users: 48 of 50 licensed (96% utilization)
- Days at capacity: 3 (2026-03-15, 2026-03-21, 2026-04-02)
- Users added/removed: 12 added, 8 removed over quarter
- All data cryptographically signed for audit evidence
↓ Report exported as PDF for regulatory compliance file
Each customer organization is a single Licensee with a configured seat limit. Typically, one Licensee per customer account:
POST /licensee
{
"licenseeNumber": "bank-acme-2026",
"productNumber": "enterprise-compliance",
"active": true
}
POST /license
{
"licenseeNumber": "bank-acme-2026",
"licenseTemplateNumber": "50-seat-annual",
"active": true,
"validFrom": "2026-01-01",
"validUntil": "2026-12-31"
}
Every user authentication in the application calls:
GET /licensee/bank-acme-2026/validate
NetLicensing returns the license state including current seat usage, capacity, and remaining free seats. The app uses this to make the activation decision.
When the customer’s annual renewal approaches (e.g., Dec 15 for a Jan 1 renewal), the vendor automatically creates a new license in NetLicensing for the next year. The old license automatically expires on Dec 31, and the new one activates on Jan 1 — no manual intervention needed.

Multi-Product Bundle Licensing: Suite Management with Component Tracking
Sell product suites under one customer agreement while tracking usage and entitlements per component independently

Offline & Air-Gapped Deployment: Secure Licensing for Disconnected Environments
Issue cryptographically signed licences for software running in disconnected, regulated, or secure environment deployments