Products & licenses

Create products and license keys, apply templates, and manage installations.

Admin Panel

Dashboard

The Dashboard is your home screen after logging in. It gives you a real-time overview of your license management activity.

PermitCore Dashboard

The Dashboard showing stats, Getting Started checklist, and activation charts.

Overview cards

The four cards at the top give you instant metrics:

CardWhat it shows
Total LicensesAll license keys ever created (including revoked ones) across all products
Active LicensesKeys that are currently valid, not revoked, and not expired
ProductsNumber of products in your account
Team MembersUsers who have access to your admin panel

Topbar status bar

At the very top of every page you can see:

  • Zero-Knowledge badge — a reminder that your keys are always encrypted
  • Activation pool counter — shows currentActivations / poolLimit. Changes colour: green (safe), yellow (over 80% used), red (limit reached)
  • Plan badge — your current plan (Free / Starter / Professional / Enterprise) with days left on subscription

Getting Started checklist

When you first sign up, a floating "Getting Started" widget appears in the bottom-right corner. It tracks four milestones: create a product, generate a license, invite a teammate, and set up a webhook. The widget disappears automatically once all are done — or you can manually dismiss it.

License Activations chart

Shows how many times licenses were activated over time. Switch between Today, Last 7 days, and Last 30 days. A flat line is normal for new accounts — activations only appear after customers start using their keys.

License Status chart

A donut chart showing the proportion of Active, Expired, and Revoked licenses at a glance.

Recent Activity

A log of the last actions taken in your account — license creation, user logins, revocations, etc. Click "View all" to go to the full Activity Log.

Admin Panel

Products

A product is a container for license keys. Think of it as the software title you're licensing — for example "Acme Video Editor", "Acme Plugin Pack", or "Acme Enterprise Suite". You can have as many products as you need.

Products list

The Products page showing all products with license counts and actions.

Every license key belongs to exactly one product. When a customer validates their key, the response includes the product name — so your app knows which product the key unlocks.

Creating a product

Go to Products → New Product and fill in:

FieldDescriptionExample
NameThe product display name — returned in validation API responsesAcme Video Editor Pro
DescriptionInternal notes — customers don't see thisWindows + macOS bundle, v3
VersionOptional version identifier for your own tracking3.2.1

Editing a product

Click the Edit (pencil) icon on any product. You can change the name, description, version, and toggle the product active/inactive.

Deactivating a product instantly blocks all license validation for every key under that product — your customers' licenses will return isValid: false until you reactivate. Use this only if you intend to stop the product entirely.

Deleting a product

A product can only be deleted if it has no active licenses. Revoke all active licenses first, then delete. This prevents accidentally deleting a product that paying customers are still using.

Admin Panel

Licenses

License keys are the core of PermitCore. Each key is a unique string in the format PERMIT-XXXX-XXXX-XXXX-XXXX that your customer enters in your software to activate it.

Licenses list

The Licenses page showing all keys grouped by product, with activation counters, status, and actions.

Understanding the licenses list

ColumnWhat it means
SerialShows "Encrypted" until you decrypt with your passphrase. Click View to reveal the plaintext key.
ActivationscurrentActivations / maxActivations — e.g. 2 / 3 means 2 of 3 allowed activations used
Expires"Never" for perpetual licenses, or the exact expiry date/time
StatusActive (green), Revoked (red), or Expired (grey)
CreatedWhen the key was generated

The license key format

Every key starts with PERMIT- followed by four groups of 4 characters. The charset avoids look-alike characters (no 0/O, no 1/I/l) to prevent customer confusion.

PERMIT-A3K7-MN2P-QR9X-TZ5W

Filtering and searching

Use the Active / Revoked / All filter dropdown and the Search by product box to narrow down large lists. Licenses are grouped by product for easier navigation.

Admin Panel

Creating & Managing Licenses

Create License form

The Create License form — fill in product, count, max activations, optional expiry, and your passphrase.

Creating licenses

Go to Licenses → Create License (or click + New License in the topbar). Fill in the form:

FieldDescription
ProductWhich product this license is for
Number of LicensesHow many keys to generate in one batch (1–100). Useful for bulk sales or resellers.
Max Activations per KeyHow many devices/installs one key can be used on. E.g. 1 = single machine, 5 = family licence.
Expires AtOptional expiry date. Leave blank for perpetual (never expires) licenses.
PassphraseYour encryption passphrase (minimum 16 characters). Must be the same passphrase you always use for this product — all keys under a product should use the same passphrase.

Viewing and copying keys

License keys are stored encrypted. To reveal a key, find it in the Licenses list and click View. You'll be prompted for your passphrase. After entering it, the plaintext key is decrypted in your browser and displayed so you can copy it and send it to your customer.

Decrypt All — On the Licenses page, each product group has a "Decrypt All" button that reveals all keys in that group at once with a single passphrase entry. Useful when you need to export a batch of keys to a CSV.

Editing a license

You can update a license's Max Activations and Expiry Date after creation. This is useful if a customer buys additional seats or needs a time extension. You cannot lower Max Activations below the current activation count (that would strand existing users).

Revoking a license

To revoke a license (e.g. customer requested a refund, or the key was shared/leaked), click Revoke. Revoked licenses return isValid: false immediately via the API. Revocation is permanent — you cannot un-revoke a key. Issue a new key if needed.

Exporting licenses to CSV

Click Export CSV on the Licenses page to download all license data. The exported file contains encrypted keys. To export plaintext keys, use "Decrypt All" first, then export — the CSV will include the decrypted serial numbers.

Admin Features

Load License from Template

License templates let you define reusable presets — max activations, expiry duration, trial settings, and version constraints — and apply them instantly when creating new licenses.

How to use

  1. Go to Templates in the sidebar and create a template
  2. When creating a new license (Licenses → Create License), a green "Load from Template" dropdown appears above the form
  3. Select a template — the form auto-fills Max Activations, Expiry, Trial, and Version fields
  4. Adjust any fields as needed, enter your passphrase, and generate the key

What gets auto-filled

Template fieldMaps to
MaxActivationsMax Activations per Key
ExpiresAfterDaysExpires At (today + N days)
IsTrial + TrialDaysTrial License toggle + days
MinVersion / MaxVersionVersion constraints
The passphrase and product are never set by a template — they always require explicit input for security and clarity.
Admin Features

Extend Expiry (Bulk Action)

Select one or more licenses on the Licenses page and click Extend Expiry in the bulk action toolbar to quickly push expiry dates forward.

How it works

  1. Check any licenses using the row checkboxes (or the group header checkbox to select all in a product)
  2. Click Extend Expiry in the selection toolbar
  3. Choose a preset (+30 / +60 / +90 / +180 / +365 days from today) or enter a custom date
  4. Confirm — all selected licenses receive the same new ExpiresAt
Extend Expiry sets an absolute date for all selected licenses, not relative to each license's existing expiry. If you need per-license relative extension, use the individual license edit form.

API

PATCH /api/licenses/bulk
Authorization: Bearer <token>
Content-Type: application/json

{
  "ids": ["uuid1", "uuid2"],
  "expiresAt": "2027-01-01T00:00:00Z",
  "clearExpiry": false
}
Admin Features

Search Licenses by Activated User Email

Find all licenses that were activated by a specific end-user using the "Activated by user email" field in the Licenses page advanced filters. This uses the userEmail field captured during activation (named-user licensing).

How to use in the admin panel

  1. Go to Licenses
  2. Click the Filters button to expand advanced filters
  3. Enter an email in the "Activated by user email" field
  4. Click the magnifying glass — the list reloads showing only matching licenses

API

GET /api/[email protected]
Authorization: Bearer <token>

# Returns only licenses that have at least one activation
# with a matching UserEmail (case-insensitive partial match)
This requires your end-users to have activated their licenses using the userEmail field in POST /api/v1/activate. See the Named User Licensing section.