Sub-millisecond entitlements · 99.9% uptime

The credit-native
billing platform.

Credits, entitlements, metering, reservations — all the primitives you need, none of the lock-in. Ship usage billing in a day.

<1ms entitlement checks
Zero payment lock-in
Sandbox on every account
AI ChatbotsAPI PlatformsLLM WrappersSaaS Add-onsDev Tools

The problem

Rolling your own credit billing is a trap

  • A "credit balance" column turns into a ledger the moment you need refunds and audits
  • Idempotency, retries, and double-charges show up the first time a request times out
  • "Can this user do X?" should be one call — not a five-table JOIN on the hot path
  • Long-running AI jobs need reservations. Stripe doesn't have them.
  • Weeks turn into months. You're building billing, not your product.

The solution

A handful of endpoints. Six primitives. Done.

  • A real credit ledger — immutable history, prioritized blocks, expiry, audit trail
  • Idempotent usage metering with safe retries, no double-counting
  • Sub-millisecond entitlement checks — safe to call on every request
  • Reservations for async AI: hold credits, commit on success, release on failure
  • Full subscription lifecycle — upgrade, downgrade, pause, resume, cancel, renew

How it works

Three steps to usage billing

Set up plans, check entitlements, record usage. That's it.

1

Subscribe users to plans

POST /v1/subscriptions
{
  "end_user_id": "user_123",
  "plan_variant_id": "var_..."
}
2

Check entitlements in real time

GET /v1/entitlements/check
    ?end_user_id=user_123
    &feature_key=api_calls

{ "allowed": true, "balance": 49000 }
3

Record usage, credits deducted

POST /v1/usage
{
  "end_user_id": "user_123",
  "feature_key": "api_calls",
  "units": 1
}

Features

The six primitives, none of the glue code

Built for AI, API, and SaaS products. Nothing you don't need.

Real-time entitlements

"Can this user do this?" answered in sub-millisecond latency. Safe to gate every request. Always reflects the latest balance.

Credit ledger

Immutable transaction history. Block-based burn-down with priority, expiry, and accumulation caps. Every credit accounted for.

Reservations

Reserve credits before long-running tasks like AI inference. Commit actual cost after. Unused credits released automatically.

Subscription lifecycle

Create, upgrade, downgrade, pause, resume, cancel, renew. Full state machine with automatic free-plan fallback.

Multi-tenant isolation

Full tenant isolation. Sandbox and live environments on the same account, picked by API key. Scoped keys per tenant.

Idempotent everything

Every mutation accepts an idempotency key. Safe retries, no double-charging. Webhook delivery with exponential backoff retry.

Compare

vs. DIY and the alternatives

Stop rebuilding billing infrastructure. Focus on your product.

Feature QuotaStack Build Yourself Stripe Billing Orb / Metronome
Time to integrate 1 day 2-4 weeks 1-2 weeks 1 week
Credit-native ledger Build it
Real-time entitlements Build it
Reservations (hold credits) Build it
Sub-daily resetting quotas (Claude Pro–style) Build it
Usage metering Build it
Plan management Build it
Payment processing BYO BYO BYO
Open API / no lock-in
Pricing Simple Eng time 0.7% rev Enterprise

Use cases

Pick the shape that matches your app

Five common billing patterns, each with a complete integration guide.

FAQ

Frequently asked questions

Does QuotaStack process payments? +
No. QuotaStack handles credits, entitlements, and usage metering. You use your own payment provider (Stripe, DodoPayments, etc.) and call our API after payment confirmation. This means zero payment lock-in.
How fast are entitlement checks? +
Sub-millisecond on the hot path. Results reflect the latest balance after every credit mutation — no stale reads. Safe to call on every API request or user action.
What happens if QuotaStack is down? +
You decide. Your integration can fail open (allow the request) or fail closed (block it). For most products, fail open with async reconciliation is the right choice. We target 99.9% uptime.
How is sandbox different from live? +
Same account, different API key. Sandbox keys (qs_test_) access isolated data from live keys (qs_live_). Develop and test without touching production data.
Is my data isolated per environment? +
Yes. Sandbox and live are fully isolated within your account — separate credits, separate ledgers, separate webhooks. And every account is fully isolated from every other account.
How are you priced? +
Sales-led pricing today, scaled to your transaction volume and the features you use. Self-serve is on the roadmap. See pricing →

Get your API keys

Tell us about your use case. We'll set up your tenant
with sandbox + live keys within 24 hours.