Revenue Protection
Server-side access control gates every download; expired customers see a renewal nudge instead of free updates, and segmented expiry campaigns bring them back
PM License Server is complete, self-hosted licensing infrastructure for software vendors: issue and validate license keys, deliver one-click updates, push signed feature entitlements, sell through a built-in storefront with EU-VAT invoicing, and manage every customer from one admin panel.
Server-side access control gates every download; expired customers see a renewal nudge instead of free updates, and segmented expiry campaigns bring them back
Fully self-hosted on your infrastructure — customer data, license records, and revenue flows stay in your hands, with no per-sale platform fees or vendor lock-in
Signed feature entitlements switch plans, limits, and modules per license — no separate builds, no code forks, instant per-customer overrides
REST API for minting, verifying, extending, and revoking licenses plus CI release publishing — licensing becomes part of your pipeline, not a manual chore
If your company sells software outside the big marketplaces — commercial WordPress plugins, themes, or privately distributed applications — you face the same infrastructure problem every vendor faces: customers need license keys, automatic updates, feature entitlements, invoices, and support. Stitching that together from SaaS subscriptions means recurring fees, vendor lock-in, and your customer data on someone else's servers.
PM License Server solves it in one self-hosted product. It runs on standard PHP hosting — no WordPress installation required on the server side, no runtime Node, no external database service needed. It speaks the native WordPress update protocol, so your customers get the familiar one-click update experience they know from the official directory, gated by the licenses you control.
Licensing, update delivery, entitlement configuration, CRM, client portal, storefront, invoicing, and segmented email — one system, on your infrastructure, under your control. Built by premotion media.
Every building block is focused on a clear benefit and fits into existing processes.
Issue license keys scoped per product with the model that fits each customer: trial, free, paid, or complimentary. Every license carries its own expiry, activation limit, and configuration overrides. Trials can run for a per-product default length or a custom duration, and can be issued automatically on public signup.
Issue license keys scoped per product with the model that fits each customer: trial, free, paid, or complimentary. Every license carries its own expiry, activation limit, and configuration overrides. Trials can run for a per-product default length or a custom duration, and can be issued automatically on public signup. Expiry is handled end to end. A nightly job flips overdue licenses to expired, and access control also checks live on every request — so a lapsed license never slips through. Admins and the API can extend licenses, convert trials to paid, or revoke keys at any time.
PM License Server implements the update protocol used by the widely adopted plugin-update-checker library. Your plugin or theme polls the server; when a newer release exists and the site is licensed, WordPress shows its native update notice and installs with one click — exactly like a marketplace product. Lapsed customers are handled commercially, not brutally: they still see the update notice with full release details, but the download stays locked — a built-in renewal nudge instead of a dead endpoint. Release packages are stored outside the web root and streamed only after an access grant, so download URLs are useless to anyone the policy does not approve.
A REST API lets your checkout, website, or internal tools mint, verify, extend, configure, and revoke licenses programmatically. Authentication uses hashed, scope-limited API keys — separate scopes for reading licenses, writing licenses, writing configuration, and publishing releases — so each integration gets exactly the permissions it needs. Your build pipeline can publish releases directly: push a package zip to the release endpoint and the server parses the readme, stores the package, and records the new version automatically.
Define a feature catalog per product — booleans, numbers, strings, lists, or JSON — and resolve values in layers: product defaults, per-license-type overrides (what each plan includes), and per-license overrides (what this specific customer gets). One customer needs a raised limit or an extra module? Override it on their license without touching code. The resolved configuration is delivered to the installed software on authentication, signed with a per-product HMAC secret so the client can verify authenticity and cache the payload safely. Ship one build to everyone; the license decides what it does.
Not every deployment fits a license key. Whitelist entries grant access by IP address or domain, per product or globally, each with a required description and an enable/disable toggle. Ideal for your own infrastructure, staging environments, development machines, and partner sites.
Every signup, order, and API-minted license lands in a built-in CRM: company, contact, email, phone, address, notes, and every license the client holds across all your products. Customer groups control which parts of your storefront each segment can see. Non-sequential public reference codes identify clients in emails and the portal without exposing internal IDs. Email the right customers at the right time: one client, a hand-picked selection, a customer group, or a filtered segment — by product, license type, status, or expiry window. Messages send through the Resend batch API with throttling and backoff, and signed webhooks track delivery, bounces, and complaints per recipient.
Your customers get their own login: a dashboard of their licenses and expiry dates, a support ticket system with image and PDF attachments, a searchable knowledgebase with an optional AI assistant, and digital contract signing for your agreements. Contracts are versioned and bilingual; signatures bind to the exact version signed, giving you a clean audit trail. The knowledgebase assistant answers customer questions from your own documentation, with strict daily cost caps — you bring your own OpenRouter API key and choose the model.
Sell directly from the server. A public storefront presents your products in categories — WordPress plugins, applications, and managed servers — with Markdown product pages, version facts, and order or trial calls to action. Connect Stripe and customers pay online; without Stripe, every product falls back to a structured purchase-request flow your team completes manually, which mints the license and emails it in the customer's language. Billing is EU-grade out of the box: the VAT engine applies domestic rates, B2B reverse charge with VAT-ID validation, per-country consumer rates for EU sales, and zero-rating for exports. Invoices and credit notes are numbered sequentially and gaplessly per year, with refund support and a seller-identity snapshot on every document.
A catalog API tells each customer site exactly which of your products it may install, at which version, with which access. The companion WordPress client (pm-plugin-manager) turns that into a one-screen installer: whitelisted products install immediately, licensed products prompt once for a key, and everything can be installed or updated individually or all at once. After installation, each plugin's own license option is seeded automatically, so its updater works with no re-entry.
Install on standard PHP hosting: run the migrations, create your admin account, and open the admin panel. SQLite works out of the box; MySQL/MariaDB is a configuration change. No WordPress, no runtime Node, no external services required to start.
Create each product with its slug, type, descriptions, and pricing. Upload release zips through the admin — the server parses the readme for version, requirements, and changelog — or push releases straight from your CI pipeline via the API.
Mint licenses from the admin panel, let customers self-register through per-product signup pages with optional automatic trials, let them buy through the built-in storefront, or connect your own checkout to the license API.
Point your plugin, theme, or app at the update endpoint using the standard update-checker pattern, and fetch the signed configuration payload to switch features by plan. Your customers see native one-click updates; your code sees verified entitlements.
Track customers and expiring licenses on the dashboard, send segmented renewal campaigns, answer support tickets, publish knowledgebase articles, and let the access log show you exactly who is using what.
The solution is a particularly good fit for these teams, roles and business models.
Sell commercial plugins and themes outside the official directory with the same one-click update experience customers expect — gated by licenses you control, with renewal nudges built into the update flow.
Run licensing as infrastructure, not as a monthly SaaS bill. Issue keys, verify them from any product via the REST API, and push feature entitlements per plan and per customer — one build, many editions.
Deliver your internal plugin suite to every client site through the one-screen installer, keep staging and partner environments running via whitelists, and see exactly which site runs which version.
Sell with correct VAT from day one: reverse charge for B2B customers with validated VAT IDs, per-country consumer rates, export handling, and sequential invoices and credit notes that satisfy your accountant.
Combine software licensing with managed-server offerings in one storefront — plans, subscriptions, per-server service records, and credentials management alongside your product catalog.
Any privately distributed WordPress plugin, theme, or application. Update delivery uses the native WordPress update protocol, while the license and configuration APIs are plain REST — so non-WordPress software can validate keys and fetch entitlements too.
No. PM License Server is a standalone PHP application. It never loads WordPress — it only speaks the update protocol that WordPress clients understand. It runs on standard PHP hosting with SQLite out of the box, or MySQL/MariaDB if you prefer.
Access control denies the download but keeps serving full update metadata. The customer still sees the native update notice with release details — a permanent, polite renewal reminder instead of a broken endpoint. A nightly job expires overdue licenses, and every request is also checked live.
Yes. The built-in storefront lists your products with Markdown descriptions and pricing. Connect Stripe for online payment with webhook-verified fulfillment, or run without any payment provider using the purchase-request flow: your team completes the order, and the server mints the license and emails it in the customer's language, with an EU-compliant invoice.
You define a typed feature catalog per product, set what each license type includes, and override individual licenses where needed. The resolved configuration is delivered on license authentication as an HMAC-signed payload your software can verify and cache — so one shipped build behaves according to the plan the customer bought.
Each license can carry a maximum number of activations, tracked by domain and IP. New activations beyond the cap are refused, while sites already activated always keep working — a capped license never locks out its own installations.
Yes. A scoped API endpoint accepts a package zip from CI, parses its readme, stores the package, and records the release. New releases start on the beta channel for designated beta testers and go stable when you promote them.
Licensing and deployment options are available on request from premotion media. Because the product is self-hosted, there are no per-customer or per-activation platform fees on your sales.
PM License Server gives your company the complete machinery of a commercial software business: license keys with trials and expiry, native one-click updates, signed feature entitlements, a customer CRM with segmented email, a self-service client portal, and a storefront with EU-VAT invoicing — all self-hosted, all under your control. Deploy it once, connect your products, and run your licensing the way infrastructure should run: on your terms.
Discuss your project