Quoting, invoicing & payments
Estimate → quote → invoice → money in YOUR Stripe. We never hold your funds.
Money is the part most website builders leave you to solve. Here it is the spine: quotes compose from priced line items, an accepted quote becomes an order, the order posts to a real double-entry ledger, and payment lands in your own Stripe account — we never touch your funds.
How it helps you
Quotes in minutes, priced from rules
Line items price from your catalog and pricing rules — flat, per-unit, measured, tiered — so quotes are consistent and margins are known.
No retyping, ever
Quote → invoice → payment → ledger is one chain. Accept once; everything downstream is automatic.
Books that balance themselves
Every charge posts balanced journal entries with a gapless audit trail. Refunds and commissions post their own reversing entries.
The walkthrough
Build the quote
Pick items; pricing rules compute the numbers; the customer gets a clean document.
Customer accepts
Acceptance converts to an order and posts the charge to the ledger automatically.
Payment through your Stripe
Card, link, or invoice terms — settled to your account directly.
The ledger stays true
Balanced entries, monthly periods, refund and commission trails — exportable any time.
Shipped features behind this
From the same machine-readable catalog we publish at /features.json — what your AI reads to learn the platform.
Pricing (view + guide)
View an organization's active prices from the rule engine, joined so each row reads as what-it-prices / value / since-when. Money is a NUMERIC(18,6) string; currency renders via MoneyDisplay, other rule values show their unit. A plain-language guide (/pricing/guide) teaches the real engine — rule types, values, versions, the planner, and kept-forever history — so a person or an AI can follow the same model. Setting/adjusting prices, the planner, history/trends, and CSV/AI import are later phases (SP-PRICING-MANAGEMENT-V1); the save path waits on a backend response-envelope fix so no button false-errors.
Refunds + commissions on Finance
Record a refund against any recorded payment (per-row action; the ledger records the reversal — amounts stay L-MONEY strings, idempotency-guarded server-side) and see commission records as jobs complete, with the rule definitions behind them.
Ledger — chart of accounts + entry drill-in
The ledger page rounds out: the chart of accounts (code, name, type, normal side) and a drill-in on every journal entry showing its balanced debit/credit lines per account — the visible proof of double entry. Money stays L-MONEY strings through MoneyDisplay.
Customer statement (printable)
One customer's whole money picture on a page: their orders, the payments received against each, and every order's ledger-computed balance (GET /fin/orders/:id/balance — the ledger is the arithmetic authority; the page only displays strings). Print produces a clean statement — all app chrome is print-hidden.
Print-ready quotes & invoices
A Print button on the order detail produces a clean quote/invoice: the shell (nav, top bar, demo bar), header actions, back-links, and the fulfillment panel are all print-hidden, leaving the line items, totals, and ledger balance — what a customer should see on paper. The same print foundation (kit PageHeader actions never print) serves every future printable page.
Common questions
Whose Stripe account is used?
Yours. You connect your own Stripe; payouts settle directly to you. The platform never holds or routes your money.
Is there real accounting under this?
Yes — a double-entry ledger with balanced journal entries, monthly periods, and a completeness check that proves every order event posted. CSV export for your accountant.
See it, then build on it
This whole site runs on the same platform — fork the template, or point a front end you built with Lovable, v0, Bolt, Claude, or Cursor at the backend.