Module · Billing

Quotes, invoices, budgets, and the service library.

Lavori's billing pipeline turns planned work into client proposals, sends branded PDFs, and tracks payments through to paid. Budgets handle internal cost planning, and the service library keeps your pricing reusable.

How the pipeline fits together

The Accounting area groups every billing document for the active team. A budget is your internal cost plan; a quote is the client-facing proposal; an invoice is what you bill once work is agreed; and the service library is a reusable set of priced items you can drop into any of them.

The pieces connect end to end. Lines flow from a budget into a quote, an accepted quote becomes an invoice, and recorded payments move the invoice toward paid. You can also start a quote or invoice from scratch without a budget.

  • Budgets — plan project costs and track margin (available on higher plans).
  • Quotes — estimates you send to clients for acceptance.
  • Invoices — bill clients and track payments and balances.
  • Service Library — reusable billable items with pricing and cost.
NoteBilling is a plan feature and is scoped to a team. Contractors do not have access to billing, and budgeting is gated separately on higher plans.

The service library

The service library holds reusable line items so you price work once and reuse it everywhere. Each billable carries a name, description, unit, unit price, and an underlying cost used for margin calculations, plus optional defaults for quantity, discount, tax rate, and markup.

Items are owned at the team level. Admins create, edit, and delete library items; everyone with billing access can pull them into budgets and quotes through the library picker.

Budgets

A budget is the internal source of truth for what a piece of work should cost and earn before anything goes to the client. Each budget gets an auto-generated number, starts as a draft, and holds line items that can be sections (for organization) or billable items with quantity, unit price, cost, discount, tax, and markup.

Build a budget three ways: add lines manually, import items from the service library, or import shift assignments from the schedule. Imported shifts resolve a billable rate automatically, preferring a confirmed rate, then a per-shift override, then the assigned user's day or hourly rate.

Finalizing a budget locks it against further edits and records who finalized it and when; you can revert it to draft to make changes. Reordering lines preserves their display position.

TipUse Push to quote on a budget to send selected lines (or all of them) into a new or existing quote. The link back to each budget line is what powers variance.

Variance: planned versus quoted

Because quote lines remember which budget line they came from, Lavori can compare what you quoted against what you budgeted. The Quoted column sums the quote line totals linked to each budget line, and the summary shows how much of the budget has made it onto a quote so far.

A line you have not pushed yet shows a dash, not a zero — it has no quoted figure at all. The budgeted total always stays the whole budget, and the part not yet on a quote is reported separately as Remaining to quote.

Once lines are pushed, the quote starts as an exact copy of them, so any Repricing figure means the quote was edited afterwards. Only item lines are counted; section headers are organizational and excluded from the calculation.

Quotes

Quotes are the client-facing proposals. Start one with the quote wizard by choosing a project or contact, picking a source item, and filling in recipient and dates, or build one line by line. Each quote is auto-numbered, supports per-line and document-level discounts, and renders to a branded PDF.

Send a quote by email and Lavori attaches the generated PDF and embeds a tracking pixel that logs opens. Sending moves the quote to sent and locks it; if you need to edit afterward, unlock it or clone it. Cloning resets the copy to draft, clears the signature and contract, and bumps the version suffix on the number.

Every interaction is recorded in an activity log, including who sent, viewed, accepted, or rejected the quote, along with channel and recipient details.

  • Public, login-free portal link for the client to review the quote. Publish & get link issues it without an email, so you can share it by text or chat yourself.
  • Accept or reject with an optional signature and signed-by name.
  • Contract PDF upload (up to 10 MB) attached to the quote.
  • View, open, and decision timestamps captured automatically.

From quote to invoice

When a client accepts a quote, it can convert into an invoice that copies over the quote's line items. You can also trigger the conversion yourself from the quote, or create an invoice manually for work that never started as a quote.

Invoices are auto-numbered, calculate subtotal, discount, tax, and total, and carry payment terms such as due on receipt, net 30, or net 60. A due date is derived from the issue date and the chosen terms.

Invoices and payments

An invoice moves through a defined set of statuses, from draft and pre-payment through sent, pending, partial, paid, or void. Sending an invoice emails the client a branded PDF, mirroring the quote send flow.

Record payments against an invoice with an amount, method, optional date, transaction reference, and notes. Lavori totals all payments and updates the status automatically: a full payment marks the invoice paid, while a smaller amount marks it partial. The balance due is the total minus everything recorded.

  • Payment methods: cash, check, wire, credit card, ACH, or other.
  • Multiple payments per invoice for installments and partials.
  • Profit and margin derived from line costs versus revenue.
  • List every payment recorded against an invoice.
NotePayments you record are ledger entries for money received outside Lavori. To let clients pay online, connect Stripe — see Online invoice payments below.

Online invoice payments

Organizations on higher plans can let clients pay invoices online. An admin connects the organization's own Stripe account under Organization Settings → Integrations → Stripe — client payments. Your organization is the merchant of record: payments land in your Stripe account under your business name, and Stripe's processing fees apply.

Once connected, the portal link you already send becomes the payment page. The client enters an email for their receipt and pays the full open balance by card or, where your Stripe account supports it, US bank transfer. Invoice emails invite the client to pay only when online payment is available for that invoice.

Lavori records online payments automatically. A card payment marks the invoice paid within seconds; a bank transfer shows as processing until it clears, usually a few business days.

Refunds and disputes are handled in your Stripe dashboard. Lavori follows them: a refund reopens the balance that payment had covered, and so does a chargeback as soon as the bank pulls the funds — winning the dispute restores it. The invoice owner is notified each time.

NoteOnly invoices can be paid online, and only for their full open balance. Clients view and sign quotes from their portal link; convert an accepted quote to an invoice to collect payment.

Document numbering and access

Budgets, quotes, and invoices each get a numbered identifier in the form PREFIX-YEAR-SEQUENCE, with the sequence resetting each calendar year. You can also supply your own number when you create a document.

Access is role-aware: admins see all billing documents in the organization, while creators and project assignees see the ones tied to their work. Contractors are blocked from billing entirely.

Continue reading