Industry
Use Case
Favorite Feature
A desktop software vendor selling productivity tools to creative professionals (designers, photographers, video editors) faced two critical problems: widespread unlicensed multi-device usage (serial numbers shared across teams) and poor trial-to-paid conversion (30% of trial users converted). Their legacy licensing used client-side serial number validation, easily circumvented by sharing or local clock manipulation.
NetLicensing’s Node-Locked and Try & Buy licensing eliminated license sharing, enforced server-side trial expiration, and provided conversion analytics. The vendor could now A/B test trial strategies (14-day vs. 30-day, feature restrictions) and gain visibility into which features drove purchase decisions.
The legacy system had critical flaws:
Try & Buy (time-limited trials) + Node-Locked (device binding):
This combination eliminates both serial sharing and trial reset exploits.
Product/Template structure:
Product: Creative Suite
├── Module: Trial Programs
│ ├── Template: 14-Day Trial (Try & Buy, free, feature-limited)
│ └── Template: 30-Day Trial (Try & Buy, free, all features)
└── Module: Paid Licenses
├── Template: Personal (Node-Locked, $99/year, 1 device)
├── Template: Professional (Node-Locked, $299/year, 3 devices)
└── Template: Teams (Node-Locked, $29/user/mo, unlimited devices)
Key parameters:
timeVolume=14 or 30, timeVolumePeriod=DAY, price=0, nodeSecretMode=PREDEFINEDtimeVolume=12, timeVolumePeriod=MONTH, price=$99, nodeSecretMode=PREDEFINED, quantity=1nodeSecret=MAC_ADDRESS:OS_ID:DEVICE_NAME (hardware fingerprint)Sample configuration snippet:
{
"number": "TRIAL-14DAY",
"name": "14-Day Trial",
"licenseType": "TIMEVOLUME",
"timeVolume": 14,
"timeVolumePeriod": "DAY",
"price": 0,
"nodeSecretMode": "PREDEFINED",
"active": true
}
Trial signup and license validation:
User downloads software, launches first time
↓
App prompts for email; shows "Start 14-Day Free Trial"
↓
Backend creates Licensee record + issues Try & Buy license
POST /licensee (email=user@example.com)
POST /license (templateNumber=TRIAL-14DAY, nodeSecret=computed_device_fingerprint)
↓
App calls GET /validate
↓
Response: {valid: true, expiresIn: 14 days, features: [all]}
↓
App grants full feature access for 14 days
Trial expiration and upgrade flow:
Day 14: License expires
↓
On next app launch, GET /validate returns {valid: false, expired: true}
↓
App displays: "Trial ended. Upgrade to Professional for $299/year"
↓
User clicks "Upgrade" → NetLicensing Shop → Stripe payment
↓
On payment success:
POST /license (templateNumber=PROFESSIONAL, nodeSecret=same_device_fingerprint)
↓
License issued; app relaunches validation, now returns {valid: true, expiresIn: 365 days}
A/B testing cohorts:
The vendor created two user cohorts during signup:
NetLicensing validation responses included cohort ID and trial start date, allowing the vendor’s analytics to compare:
Result: vendor optimized trial to 14 days, increasing conversion 34%.
A Licensee = a user account (email-based):
licenseeNumber = emailFor Professional/Teams licenses supporting 3+ devices, the vendor creates multiple licenses per Licensee (one per device), all synced to the same account. Device management is handled via the app’s settings panel, which calls NetLicensing to list and deactivate device licenses.
Trial-to-paid conversion happens via NetLicensing Shop:
POST /shop-tokenPUT /license/{id} to mark inactive, freeing license slot on Professional plan.
B2B SaaS: From Stripe-Only to Licensing-as-a-Service
A compliance SaaS eliminated entitlement drift and improved trial conversion by making NetLicensing the entitlement authority alongside Stripe.

Trial-to-Paid Conversion: Structured Trials and Freemium Tiers
Run structured free trials and freemium tiers that enforce feature limits and convert users automatically at the right moment