Sell your software. Let Keyvane handle access.

License keys, plans, feature access and usage limits in one API, kept in sync with your Stripe subscriptions. Stop rebuilding monetization infrastructure for every product.

  • Works with your Stripe account
  • MIT-licensed SDK
  • Self-hostable
GET/v1/entitlements?customer=user_42
user_42Proactive
PDF analyses186 of 500 this month
Export to MarkdownIncluded
Priority processingBusiness plan
Stripe subscription · renews Dec 5KV-7K2QD-•••••-•••••-PZ3VB

Charging for software means building the same plumbing every time.

Plans, keys, limits and Stripe edge cases take weeks to get right, and your customers never pay you for them.

What you would build yourselfWhat Keyvane gives you
Separate free and paying usersA default Free plan and paid plans, checked with one call
Generate and email license keysKeys with expiry, revocation and device limits, created automatically on purchase
Cut off access when a subscription endsAccess follows the subscription, including grace periods and your cancellation policy
Give each plan different featuresAn entitlement matrix you edit in the dashboard, no deploy needed
Enforce usage and device limitsAtomic usage metering and per-device activation limits
Mirror Stripe changes into your databaseSigned, idempotent and order-safe webhook processing with replay
Handle upgrades, renewals and failed paymentsUpgrades keep this month’s usage; failed payments get a grace period

From first sale to cancellation, access stays correct.

Your payment provider keeps charging customers. Keyvane turns its events into product access.

  1. Create your product

    Add the software you sell, for example an AI PDF Analyzer.

  2. Define plans

    Free, Pro and Business, each with the features and usage limits it unlocks.

  3. Connect Stripe

    Point one Stripe webhook at Keyvane and map your prices to plans. No Stripe API keys needed.

  4. Integrate the SDK

    Ask what a customer may do, record usage or validate a license key.

  5. A customer buys

    Stripe creates the subscription. Keyvane verifies the event and grants the plan within seconds.

  6. Access stays in sync

    Upgrades, failed payments and cancellations update access without code on your side.

Three calls cover most products.

Register customers with your own user IDs, ask what they may do, and record usage. The TypeScript and Python SDKs have zero dependencies, and the same calls work over plain HTTP from any language.

import { Keyvane } from '@keyvane/sdk';

const keyvane = new Keyvane({ baseUrl: 'https://keyvane.dev' });

// What may this customer do right now?
const access = await keyvane.entitlements.get({ customer: user.id });
if (!access.can('export')) return showUpgrade('Export is on Pro');

// Consume one analysis. The limit is enforced atomically.
const usage = await keyvane.usage.record({
  customer: user.id,
  feature: 'pdf_analysis',
  idempotencyKey: job.id,
});
if (!usage.allowed) return showUpgrade(usage.message);

Alex sells an AI PDF Analyzer.

Three plans, one metered feature and one Pro-only feature. Alex defines them in Keyvane, connects Stripe and adds a few lines of code. When a customer buys Pro, their limit jumps from 10 to 500 analyses within seconds of the Stripe event. When they cancel, they drop back to Free.

These are the prices of Alex’s product, not Keyvane’s. The example app is in the repository.

Try the example
PlanMonthly pricePDF analysesExport
Free$010Not included—
Pro$12500Included
Business$393,000Included

Everything between “payment received” and “feature unlocked”.

Built for products with a handful of plans, without hundreds of settings to learn first.

Decide access

One source of truth for what every plan includes.

  • Plans and an entitlement matrixOn/off features and limits per plan, changed without a deploy
  • Usage limitsAtomic and idempotent, resetting daily, monthly, yearly or never
  • Customer viewPlan, usage, licenses, subscriptions and history per customer

Issue and protect keys

For desktop apps, CLIs, plugins and APIs.

  • License keysExpiry, suspension and revocation, issued by hand or on purchase
  • Device activationsPer-plan seat limits with privacy-friendly fingerprints
  • Publishable keysValidate keys from client apps without exposing your secret key

Stay in sync with Stripe

Payment events become access, reliably.

  • Subscription syncCheckout, Payment Links and the Billing API, linked to your user IDs
  • Grace periods and policiesKeep access while Stripe retries; choose when cancellations end it
  • Replay and audit logEvery event stored, failures replayable, every change attributed

Built for the edge cases that cost you customers.

Webhooks arrive late, twice or out of order, and payments fail. Keyvane is designed so access stays right anyway.

Verified
Every webhook is checked against its Stripe signature and a five-minute replay window before anything is stored.
Stored
Each event is saved with its payload and outcome, so you can see exactly what Keyvane did and why.
Idempotent
Duplicate deliveries are acknowledged and never applied twice. Usage records accept idempotency keys.
Atomic
Each event is applied in one transaction, and usage limits are checked and consumed in one step.
Order-safe
Older snapshots never overwrite newer ones, and an ended subscription is never brought back.
On time
Grace periods, expirations and scheduled cancellations take effect at request time, with no cron jobs to miss.

How Keyvane protects access decisions

Stripe charges. Keyvane grants access. Your app asks.

Keyvane is not a payment processor, Merchant of Record or tax engine, and it never touches card data. It does one job: turning commercial events into licenses, access and usage rights.

Stripe

Payments, invoices, taxes and the customer portal

signed webhooks

Keyvane

Plans, entitlements, license keys, usage limits and the audit log

SDK or REST

Your app

A web app, API, desktop app or CLI asks what a customer may do

Open source where you integrate.

The SDK, integration examples and documentation are MIT-licensed, so you can read exactly how access decisions are made and contribute fixes. The platform is source-available and free to self-host for your own products.

# Validate a license key from a desktop app or CLI
curl https://keyvane.dev/v1/licenses/validate \
  -H "Authorization: Bearer kv_pk_…" \
  -d key=KV-7K2QD-9XWMN-4RT8H-PZ3VB \
  -d fingerprint=macbook-a1b2

{ "valid": true, "code": "valid", "plan": "pro", … }

Pricing that grows with your product.

A subscription, never a commission on your revenue. Free while Keyvane is in public beta.

Developer
$0

For trying Keyvane and for open-source projects.

  • 1 product
  • Basic license management
  • Limited active licenses
  • Core SDK & API integration
  • Community support
Start free
Startup
$59 /month

For growing products with more customers and a team.

  • High license volume
  • Team members
  • Advanced usage tracking
  • Audit log
  • Priority support
Start with Startup
Business
Custom

For advanced security and contractual needs.

  • Custom limits
  • Contract-based support
  • Security & access options
  • Custom integrations
Talk to us

Beta pricing in USD; it may change as we learn from early users. Pricing details

Questions developers ask

What is Keyvane?

Keyvane is an open-core licensing and entitlement platform for independent developers and small SaaS teams. It turns Stripe subscription events into license keys, plan-based feature access and usage limits, and answers one API call: what may this customer do right now?

Is Keyvane a payment processor?

No. Keyvane never touches card data or money and is not a Merchant of Record. Stripe keeps charging your customers, sending invoices and handling taxes. Keyvane manages licenses, access and usage rights on top of it.

Do I have to give Keyvane my Stripe API key?

No. Keyvane only needs the signing secret of one webhook endpoint you create in Stripe, and it verifies every event with it.

What happens if a webhook is missed, duplicated or arrives out of order?

Every event is stored and applied in a transaction. Duplicates are acknowledged without being applied twice, older snapshots cannot roll access back, and failures return an error so Stripe retries. You can replay any failed event from the dashboard.

Can I use Keyvane for desktop apps and CLIs?

Yes. License keys with device activation limits work today with a publishable key that is safe to embed in your app. Signed offline license files are on the roadmap.

Which payment providers are supported?

Stripe subscriptions, through Checkout, Payment Links or the Billing API. More providers are planned. Your app asks Keyvane for entitlements instead of asking the provider, so adding one will not change your access code.

Is Keyvane open source?

The SDK, examples and documentation are MIT-licensed. The platform is source-available under the Functional Source License (FSL-1.1-MIT): you can read, modify and self-host it for your own products, and every release becomes MIT two years after it ships.

What if Keyvane is unreachable?

Your app decides. The SDK raises typed errors, so you can keep free features working and pause paid ones, or the reverse. Short-lived caching of entitlements absorbs brief network blips.

Build independently. Launch globally. Monetize simply.

Connect your first product in about ten minutes. Free during the public beta.