Skip to main content
Unprice sits between your product, your payment provider, and the paid work your customer triggers. Your app still owns the product experience and workload execution. Your payment provider still 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.
A paid action flows through plan version, entitlement, budget, and wallet checks, then is allowed or denied before work runs while invoice evidence is preserved.

The Three Boundaries

Your product

Owns the user experience, workload execution, and the moment a paid action is about to run.

Unprice

Owns pricing rules, entitlement decisions, budgets, wallet credits, billing state, and evidence.

Payment provider

Captures or simulates payment through Stripe, Sandbox, or a custom provider adapter.

The Money Path

StageWhat happensWhy it matters
Paid actionYour app is about to run work that can create costThe money question happens before the cost exists
Pricing modelUnprice resolves the plan version, feature, meter, and entitlementPricing logic stays out of product branches
Runtime decisionUnprice checks entitlement, budget, wallet credits, and meter rulesThe request can be allowed or denied immediately
Evidence trailUsage facts, wallet movement, ledger entries, and invoice evidence are kept togetherSupport, analytics, replay, and invoices share one explanation
Payment captureThe provider adapter captures or simulates money movementThe payment rail can change without moving pricing logic back into your app

The Payment-provider Boundary

Unprice is not a Stripe wrapper. Stripe is the built-in production adapter today, and Sandbox is available for testing. The important boundary is the provider interface: invoice creation, invoice items, payment methods, checkout/setup sessions, payment collection, and webhooks are provider operations. That means the pricing and evidence path can stay in Unprice while the payment-capture system can change. A team running its own deployment can implement another provider adapter without moving entitlement, metering, wallet, billing, or invoice-evidence logic back 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 should be blocked if the customer is over limit, budget, or credits.

Report usage evidence

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

Reserve a workload budget

Use runs.start, runs.consume, 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 decides when to call the LLM, start the job, send the API request, or execute the workflow. Unprice also does not replace your payment provider. Stripe, Sandbox, or another provider adapter still captures or simulates money movement. Unprice owns the pricing logic and evidence path that explains what should be charged, credited, denied, or replayed.