Skip to main content
Unprice is the authorization step between your product, the paid work your customer starts, and your payment provider. Your app asks before the work runs. A deny means the provider is never called. Your application owns the product experience and workload execution. Your payment provider captures payment. Unprice owns the customer money path between them: pricing rules, entitlement decisions, usage evidence, wallet credits, billing state, and the trail that explains why work was allowed, denied, or billed.
Three $4.10 usage.consume requests share a $10 budget. Two are accepted and produce wallet, ledger, invoice, and Stripe payment evidence. The third is denied with LIMIT_EXCEEDED at $1.80 remaining, with no wallet change, invoice line, or charge.Three $4.10 usage.consume requests share a $10 budget. Two are accepted and produce wallet, ledger, invoice, and Stripe payment evidence. The third is denied with LIMIT_EXCEEDED at $1.80 remaining, with no wallet change, invoice line, or charge.

The money path: two requests accepted, the third denied.

The three boundaries

Your product

Runs the user experience and workload. It decides when a paid action is about to run.

Unprice

Authorizes the spend, then resolves pricing rules, entitlements, budgets, wallet credits, billing state, and evidence.

Payment provider

Captures payment through Stripe or simulates payment in Sandbox.

The words this documentation uses

These terms are used precisely and are not interchangeable. Amounts ending in Minor are in minor units — cents for USD.

The money path

The payment-provider boundary

Unprice is not a Stripe wrapper. Stripe is the production provider today, and Sandbox is available for testing. The provider interface separates invoice creation, payment methods, checkout and setup sessions, payment collection, and webhooks from pricing and entitlement logic. This separation lets Unprice keep the pricing and evidence path when the payment-capture system changes. The provider model can support another provider without moving entitlement, metering, wallet, billing, or invoice-evidence logic into product code.

The runtime paths

Ask without changing state

Use access.check when your app only needs to know whether a customer can use a feature.

Decide and apply now

Use usage.consume when known usage must be denied after a limit, budget, or credit balance is exhausted.

Report usage evidence

Use usage.record when the request does not wait for Unprice to decide.

Hold a maximum, then settle

Use reservations.reserve when one call’s cost is unknown until it returns.

Budget a multi-step workload

Use runs.start, runs.consume, runs.settle, and runs.end for jobs, workflows, tool chains, and agents.

What Unprice does not own

Unprice does not run your product workload. Your application still calls the LLM, starts the job, sends the API request, or runs the workflow. Unprice also does not replace your payment provider. Stripe captures payment and Sandbox simulates payment for testing. Unprice keeps the pricing logic and evidence path that explains what should be charged, credited, denied, or replayed.