Skip to main content
The invoice is too late. The work already ran. Unprice gives your app a customer money path for usage-based SaaS: check the plan version, entitlement, customer budget, and wallet credits before paid work runs, then keep the evidence that explains the charge, credit, denial, replay, or invoice line later.
Paid action enters the Unprice money path, gets checked against plan version, entitlement, budget, and wallet credits, then allows or denies before the work runs and keeps invoice evidence.

The 5-second value

  • Authorize before cost: call Unprice in the request path before the paid action creates margin damage.
  • Keep pricing out of app branches: plans, plan versions, features, meters, entitlements, budgets, and wallet credits stay connected but separate.
  • Explain after billing: accepted usage carries evidence from the decision that allowed it to the invoice line that bills it.

Start with one paid action

Pick the action that can burn a customer’s credits, budget, or usage allowance: an LLM call, API request, data job, workflow, export, or tool run.

1. Model the rule

Publish one plan version and map one customer to it.

2. Choose the runtime call

Pick access.check, usage.consume, usage.record, or runs.

3. Inspect the evidence

Follow wallet credits, holds, usage, and invoice evidence.

The runtime calls

If your app needs to…CallWhat it means
Ask “is this customer commercially allowed?” without changing stateaccess.checkRead-only preflight, safe for shadow mode
Enforce a known usage amount in the request pathusage.consumeSynchronous decision; deny when the limit or funds are exhausted
Report usage for metering and invoice evidence without blockingusage.recordAsynchronous ingestion; never a spend gate
Reserve a budget before a multi-step workload runsruns.start / runs.consume / runs.endBudget envelope for a job, workflow, tool, agent, or custom run

Why not just a counter?

A counter can say usage is high. It cannot reliably prove which plan version applied, which credits were reserved, why a request was denied, or how accepted usage became an invoice line. Unprice keeps the customer spend decision and the invoice explanation on the same inspectable path.

Quickstart

Put one paid action on the money path.

TypeScript SDK

Install the SDK and call the public API with typed results.

Open and payment-provider aware

Unprice owns the customer money path. Your payment provider still captures payment. Start on the built-in Sandbox, then connect your own Stripe account when you are ready. Stripe-first today, provider-extensible by design.