Pricing history + close-price
How prices got to where they are: the immutable change log (every create/close with before/after values, kept forever) plus the one lifecycle action a price supports — Close (L-RULE-1: values are never edited in place; close + create is the only change). Money renders via MoneyDisplay from the L-MONEY string.
If you are building a front end
Your front end calls this over the same-origin `/api/v1` proxy — no backend code to write, no schema to design. Endpoints: GET /api/v1/rules/audit, GET /api/v1/rules/values?activeOnly=true, PUT /api/v1/rules/values/:id/close.
Bring any front end — hand-written, or generated with Lovable, v0, Bolt, Claude, or Cursor. You get auth, a multi-tenant database, payments through your own Stripe, and email/SMS without writing or hosting a backend.
- How to turn it on
- Part of the 'pricing' module; linked from the Pricing page.
- Who can use it
- RBAC: rule.rules.read (history) / rule.rules.write (close).
- The API behind it
GET /api/v1/rules/audit, GET /api/v1/rules/values?activeOnly=true, PUT /api/v1/rules/values/:id/close- Where it lives
- /pricing/history/pricing
See it in context
Quoting, invoicing & payments — the full walkthrough, step by step: Estimate → quote → invoice → money in YOUR Stripe. We never hold your funds.
Machine-readable
This page is generated from our published capability catalog. Point your AI assistant at /features.json (or /llms.txt) and it can read every feature, how to enable it, and the endpoints behind it — then build against them.