Skip to content

Licensing connected devices

A manufacturer shipping software on connected hardware — vehicles, machines, kiosks — that sells feature unlocks and usage plans per unit, and has to keep running when the unit drops off the network.

The setup: each device activates itself against its own entitlement, keyed to a hardware fingerprint (a VIN, a serial). No user logs in; the device is the licensee. Its license is a signed token it validates on-board, so it enforces plans and options with no live connection.

You need You use
Per-unit plans (Essential → premium) One plan set; each unit’s entitlement applies one, switched from the back office
Buyable software options (self-drive, heated seats, dashcam…) Features snapshotted into the license — gated on-board, no per-use API call
A fleet under one license Node-locked seats, one per fingerprint — a new serial consumes another seat
Metered usage (miles, hours, cycles) A monitored asset with a monthly quota — the cheapest tier stops usage at the quota; paid tiers continue into overage
Prepaid overage / pay-per-use A prepaid credit balance drawn down once usage passes the allowance, topped up on demand
Works off-network An offline lease + locally-queued usage that reconciles on reconnect
Plan changes, renewal, churn Entitlement operations + Entitlement.* webhooks
  1. The device embeds the .NET SDK (or calls REST) and activates with its hardware fingerprint as the node id — a stable identity, so a reboot reuses its seat instead of leaking a new one. Activation can be anonymous: the unit needs no user account.
  2. Feature checks are local: the license is a signed token the device validates on-board, so asking “is self-drive unlocked on this VIN?” costs nothing and works with no signal.
  3. Report usage as the device does its work (UsageReporter.ReportAssetUsageAsync("overdrive.selfdrive.miles", n)); the platform aggregates against the quota. On the entry tier it denies past the cap; on paid tiers it draws the prepaid balance and fires MeteredUsage.OverageStatusChanged at Warning and at the cap.
  4. Off-network, the device keeps operating under its lease and queues usage locally; on reconnect the queue uploads and the server-side meter reconciles. The lease’s lifetime (plus a grace window) bounds how far it can run before it must check back in. See the offline activation guide.
  5. Back-office operations stay in the portal: sell an option → add a feature to the unit’s entitlement; change tier → apply a different plan; RMA → cancel, and the license stops validating at the next lease renewal.

Enforcing a plan a device hasn’t phoned home to confirm, splitting metered usage that crosses the allowance boundary, settling overage after an offline stretch, “we promised fleet X a different tier” — in Oclavex these are policies on an entitlement, changed per unit without a firmware push.

See it live: the Overdrive demo is this use case — a connected car licensed per VIN, with buyable options, self-drive miles metered pay-per-mile or against a monthly allowance, and licensing that keeps working with no signal.

Start with the offline activation guide — the lease and the queue are what keep enforcement working while the device is off the network.