Runs on your server and your database

Licensing infrastructure you can actually own.

Issue entitlements, bind devices, meter usage, serve offline customers, and keep every decision auditable—without sending customer or license data to another platform.

Laravel · REST API · HMAC requests · Ed25519 offline files

validation tracerequest_7c803b1e
POST/api/v1/validate
{ "license_key": "LIC-8X4F-2PA9", "hardware_id": "device_a91f", "increment_usage": 1 }
01Signature and replay windowPASS
02License status and expiryPASS
03Device seat and usage limitsPASS
License is valid200 · active
Per-device secretsHMAC-signed validation after activation.
Atomic meteringConcurrent requests cannot overshoot limits.
Offline verificationEd25519 files for private and air-gapped clients.
Portable by designYour application, database, keys, and backups.

Where it fits

One control plane, three very different products.

The policy engine stays consistent while each product chooses the identity, limits, and delivery model that make sense.

01 / WEB

Usage-based SaaS

Meter API calls, jobs, projects, or seats with hourly, daily, monthly, lifetime, and custom limits. Synchronize orders idempotently from the billing system you already use.

02 / DESKTOP

Installed software

Bind licenses to hardware or domains, enforce activation seats, support floating concurrency, and let customers remove old devices without opening a support ticket.

03 / PRIVATE

Offline and private networks

Issue signed, time-limited license files that clients verify locally. Public-key verification keeps the signing secret off every distributed application.

One source of truth

The same entitlement reaches every surface.

Admins, customer accounts, resellers, device clients, and billing automation all work from the same license record and audit trail.

EntitlementConsumerState
Desktop Suite · Premium2 device seats · annual
Customer portalACTIVE
API Platform · Standard50,000 requests / month
Device APIACTIVE
Private Server · EnterpriseSigned offline file · 30 days
Offline clientVERIFIED

Every mutation carries a request ID and is recorded for operators. Reminders, webhooks, reports, and reseller actions use the same state.

Documented contracts

Integrate once. Keep control afterward.

The API guide documents activation, signing, error states, rate limits, usage counters, coupon validation, offline files, and reseller synchronization.

activate.php
$activation = Http::post('/api/v1/activate', [
    'license_key' => 'LIC-8X4F-2PA9',
    'app_name'    => 'Desktop Suite',
    'hardware_id' => $deviceId,
])->throw()->json();

$secret = $activation['activation_token'];

// Subsequent requests are HMAC signed.
// No global client secret is distributed.

Operational ownership

Your server. Your database. Your rules.

Install it where your software business already runs. Keep customer data local and move the whole system when your infrastructure changes.

+
Install on ordinary Laravel hostingMySQL, MariaDB, or SQLite with a guided first-run installer.
+
Operate without a permanent workerShared-host-friendly scheduling drains queued emails and webhooks.
+
Back up and update defensivelySigned backups, verified update packages, health checks, and rollback support.
+
See what happenedAudit logs, request IDs, activation history, webhook delivery, and email records.

Keep the licensing layer close to the product it protects.