Industry
Use Case
Favorite Feature
A small studio makes a vector design app for Windows, macOS, iPad and the browser. Its users switch devices all day: a desktop in the studio, a laptop at home, an iPad at the client’s office.
The first licensing approach bound each subscription to two devices. Users hit that limit constantly. Someone who replaced a laptop, reinstalled Windows or borrowed a colleague’s iPad had to email support to free a slot. At the same time, the studio did want a limit, because otherwise one subscription would end up shared by a whole agency.
The rule they settled on was “any device, but at most two at the same time”.
Each user account is a licensee. The product has two modules:
Product: Vectora (licenseeAutoCreate = true)
├── Module "Plan" – Subscription
│ ├── Trial: TIMEVOLUME 14 DAY, price 0, automatic
│ ├── Month: TIMEVOLUME 1 MONTH
│ └── Year: TIMEVOLUME 1 YEAR
└── Module "Devices in use" – Floating, maxCheckoutValidity = 900 s
└── Two at a time: FLOATING, maxSessions = 2, price 0, automatic
The Subscription decides whether the account may use the app at all. The Floating module limits how many devices use it at once. Nothing is bound to a device, so a new laptop simply works.
When the app starts or comes back to the foreground, it checks out a session. The session ID identifies the device, for example an installation ID the app generates once and stores:
curl -u apiKey:YOUR_API_KEY -H "Accept: application/json" \
-d "productNumber=VECTORA" \
-d "productModuleNumber0=M-DEVICES" \
-d "sessionId0=ipad-5c1e9a" -d "action0=checkOut" \
https://go.netlicensing.io/core/v2/rest/licensee/USER-88213/validate
The response tells the app whether the subscription is valid and until when (expires), and whether it got a session (valid plus expirationTimestamp). While the user works, the app checks out again every ten minutes to keep the session. When the app is closed or sent to the background, it sends action0=checkIn. If a device crashes or loses its connection, its session runs out after 15 minutes on its own.
When both sessions are taken, the third device doesn’t fail silently. It shows “Vectora is open on two other devices” and offers to continue when one of them is closed. The app’s back end keeps the list of the user’s devices, so it can show their names.
The web app works the same way. Its server checks out a session for the browser tab, and that session counts toward the two.
A studio of eight designers with five subscriptions doesn’t need five accounts. The team account is one licensee with a Floating license of maxSessions = 5. Everyone signs in with their own user, and the team’s sessions are counted together. The team administrator can buy more sessions in the Shop.
“Subscribe” and “Renew” create a shop token for the account and open the NetLicensing Shop. Users pay with PayPal or Stripe. Monthly PayPal payments can renew automatically. If a user renews early, the new period is added after the current one.
Want the same rule for your app? Read Node-Locked vs Floating licenses or create a free account.

Physical Security: Feature-Based Access Control with Time-Limited Permissions
How a building operator can tie tenant amenities to Multi-Feature licenses and give contractors passes that expire on their own with the Subscription model.

AI/ML Platform: Token-Based Monetization with Inference Metering
How an AI inference API can sell prepaid token credits with Pay-per-Use, report consumption in batches and gate premium models with a Subscription.