Developer-first monetization with Stripe

Monetize without rebuilding billing and access logic.

Licenzy handles subscriptions, AI credits, usage packs, and access control on top of Stripe.

Start free in test mode. Upgrade only when you go live.

api.licenzy.app
Live runtimeAccess check
LiveOperational
Access checks42k
Allowed99.9%
Latency84ms
POST/v1/access/check
{
  "subject_ref": "user_123",
  "allowed": true
}
POST /v1/access/check

Pro plan access granted

POST /v1/usage/consume

42 AI credits remaining

GET /v1/customer/access/:subject_ref

Runtime state is ready

Why Licenzy

You don't want to build this yourself.

The pain is not charging a card. The pain is everything around it: webhooks, entitlements, access decisions, and billing edge cases leaking into product code.

Stripe handles payments. You still have to handle everything after the payment succeeds.

Without Licenzy

Billing logic spreads fast.

With Licenzy

The runtime surface stays simple.

Webhook state centralized

One integration surface instead of Stripe billing logic spread across services.

Runtime previewsimplified

Synced entitlement event

Licenzy processes Stripe inbound lifecycle events and keeps entitlement state in sync.

EVENTinvoice.payment_succeeded
stripe_eventinvoice.payment_succeeded
entitlement_ident_123
runtime_stateupdated
How It Works

From checkout to access in minutes.

The shortest path is simple: define what you sell, start checkout, let Licenzy grant entitlement, then check access in your product.

Runtime previewStep 1

Define what you sell

Products, AI credits, time passes, usage packs, and plans stay mapped to the runtime surface.

requestPortal product setup
subject_refuser_123
decisionready: true
Runtime Example

Your backend only needs a few runtime calls.

A simple access check says more than a generic SDK abstraction. This is the kind of request your backend actually makes.

Licenzy runtime workspaceProfessional example
TypeScriptDecision ready
Runtime access check

Ask the Licenzy runtime for the access decision before protected work starts.

const response = await fetch("https://api.licenzy.app/v1/access/check", {
  method: "POST",
  headers: {
    Authorization: "Bearer lz_test_***",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    subject_ref: "user_123",
  }),
});

const result = await response.json();

if (!result.allowed) {
  throw new Error("Access denied.");
}
Use cases

Built for product teams monetizing software.

For teams that want billing in Stripe and product access logic in a cleaner runtime layer.

Run multiple apps or runtime workspaces under one account with isolated projects.

Recurring plans

SaaS subscriptions

Ship paid plans without rebuilding subscription state, entitlement checks, and billing edge cases in every protected surface.

Stripe renewals
Entitlement gating
Plan changes stay synced
Credits + metering

AI credits and usage

Sell AI credits for generation limits, API usage, and compute workloads, then safely consume units after the real work completes.

Usage packs
Idempotent consumption
Runtime remaining balance
Developer products

API monetization

Support developer products where checkout, runtime access checks, and customer entitlement state have to stay in sync.

Authenticated runtime calls
Customer access decisions
Webhook-driven lifecycle sync

Start free and ship the billing layer faster.

Use the runtime API instead of rebuilding subscriptions, credits, access checks, and webhook handling yourself.

Need to talk through your setup first? Contact the team.