Features Use cases Developers Security Pricing Contact Try the demo
Live demo Β· no sign-up required

Sell software licenses, the modern way.

InnoKEYS is the all-in-one platform for developers and vendors to generate, sell, deliver and verify software licenses β€” with a built-in webshop, recurring billing and a cryptographically signed API.

Demo login is pre-filled for you Β· resets daily Β· no credit card, no e-mails sent.

app.innokeys.app
InnoKEYS dashboard showing license and revenue statistics

Everything to run a license business β€” payments, delivery and verification included

Ed25519-signed verification Mollie Β· Stripe Β· PayPal Β· Moneybird 6 customer languages Isolated database per administration EU-hosted Β· audit-ready
One platform, end to end

From license key to paid customer β€” without the plumbing

Stop stitching together spreadsheets, payment links and home-grown key checks. InnoKEYS handles the entire lifecycle so you can focus on building great software.

Generate & manage keys

Create licenses one by one or in bulk, in your own code format. Track status, activations, seats, expiry and the last device that used each key.

Sell & get paid

Turn on your branded webshop, connect Mollie, Stripe, PayPal or Moneybird, and sell one-time or recurring licenses with discounts and per-country VAT.

Verify anywhere

One API call tells your software whether a license is valid β€” and every answer is Ed25519-signed, so it can be trusted even offline.

Your control room

See your whole license business at a glance

Live totals for licenses, revenue and API traffic, with year-over-year comparison. Spot what's active, what's expiring and where the money comes from β€” instantly.

  • Real-time statisticsTotal, active and expired licenses, revenue and average API response time.
  • Revenue insightsDaily and weekly breakdowns with 2026-vs-2025 comparison.
  • Recent activityLatest webshop orders and API calls, always one click away.
app.innokeys.app
InnoKEYS dashboard
Full control

Every license, exactly the way you want it

Group licenses with colored labels, filter by status or type, search customers, and open any license to manage activations, allowed hostnames, seats and notes with a full audit trail.

  • Bulk & custom formatsCreate hundreds at once with your own prefix, length and dash pattern.
  • Labels & filtersDrag colored labels onto licenses and filter your whole catalog.
  • Export & auditCSV export and a complete change history for every record.
app.innokeys.app
InnoKEYS license overview with labels and statuses
Built-in webshop

Sell licenses online in minutes

Every administration gets a branded storefront. Publish your license types as products, take payments, and deliver keys and downloads automatically by e-mail β€” no separate website needed.

  • One-time & subscriptionsSell perpetual keys or monthly/yearly plans with automatic renewal.
  • Discounts & VATPercentage or fixed codes, country rules and automatic Moneybird invoices.
  • Multilingual checkoutCustomers order in their own language with localized e-mails.
app.innokeys.app/shop
InnoKEYS public webshop with license products
Developer-first

Verify a license in one call β€” and trust the answer

Call the public verify endpoint from any language. Every response for a real license is signed with Ed25519, so your app can confirm the answer truly came from InnoKEYS β€” even without a network.

verify.js
const res = await fetch('https://app.innokeys.app/licenses/verify', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ code: licenseCode, hostname: os.hostname() })
});
const data = await res.json();
// data.valid, data.signature (Ed25519), data.downloadUrls
if (data.valid) unlock(app);
$ch = curl_init('https://app.innokeys.app/licenses/verify');
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
  CURLOPT_POSTFIELDS => json_encode(['code' => $code]),
  CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
if ($data['valid']) unlock();
import requests, socket
r = requests.post('https://app.innokeys.app/licenses/verify',
  json={'code': code, 'hostname': socket.gethostname()})
data = r.json()
# data['valid'], data['signature'] (Ed25519)
if data['valid']:
    unlock(app)
All the building blocks

One place for everything licensing

A deep, thoughtfully designed feature set β€” without the enterprise bloat.

License types

Reusable product templates: price, interval, activations, seats, grace periods and stock.

Activations & seats

Limit installs and concurrent users, with offline grace and post-expiry windows.

Hostname binding

Lock keys to devices with an allow-list or auto-learn, and see the last device used.

Domain locking

Bind SaaS and web licenses to a domain, validated by Origin/Referer.

Administrations

Run multiple brands or clients, each isolated with its own data and branding.

Software delivery

Ship installers and files with versioning and signed, time-limited download links.

Discount codes

Percentage or fixed, usage limits, validity windows and per-product rules.

Terms & e-mail

Versioned, multilingual terms and shortcode-driven e-mail templates.

How it works

Live in four steps

Create a license type

Set the price, validity, activations, seats and code format once β€” reuse it forever.

Generate or sell keys

Create licenses in bulk, or let the webshop create them automatically on every order.

Deliver automatically

Customers receive their key and downloads by e-mail, in their own language.

Verify in your app

Add one signed API call to unlock features and enforce seats, devices and expiry.

Fits your model

Any licensing model you can think of

Perpetual, subscription, node-locked, floating seats, domain-bound or email-bound cryptographic licenses β€” InnoKEYS supports them all.

Security & trust

Built to be trusted

Serious protection for your revenue and your customers' data β€” by design, not as an afterthought.

Ed25519
Signed verify responses you can trust offline
1 DB
Per administration β€” real tenant isolation
2FA
TOTP with backup codes, enforceable per user
100%
Audit-logged changes, globally and per tenant
Ready when you are

Try the live demo administration

Log in with the pre-filled demo account and click around a fully seeded license business. It resets daily, so feel free to break things.