Admin

Bill a completed work order

A work order's labor, parts, materials, and fees become an invoice by copying its line items onto a new invoice — once, at the moment you generate it. After that, the invoice's numbers are locked to what was copied; editing the work order later never changes an invoice that already exists.

Only a completed job can be billed

Generate Invoice only appears on a work order once its status is Completed, and only if its billing type isn't Internal (internal fleet/company work is never billed to a customer). Until then, the work order's Invoice tab shows a live preview of what the subtotal, tax, and total would be — useful for checking the number before you close out the job, but it isn't a real invoice yet.

A work order's detail record

Billing type controls how charges accumulate

Every work order has a billing type, set when it's created:

  • Flat rate — a fixed price for the job, independent of the time and parts actually used.
  • Time and materials — billed on the labor and parts actually logged. If the work order has a not-to-exceed (NTE) cap set, Thermal warns as line items approach it (default: at 80% of the cap — Settings reference) and, if your shop has enforcement turned on, blocks adding a line item that would push the total past the cap.
  • Internal — company or fleet work with no customer to bill. These jobs never generate a customer invoice.

A pending line-item approval blocks invoicing, not the job

If a discount or credit on a line item is large enough to need a second set of eyes, it's flagged for approval (see Admin → Approvals). The job can still be marked completed with a pending line — but Thermal won't let you generate an invoice from that work order until every line is approved or rejected. This is separate from your shop's prebill-approval setting on the invoice itself (see Send and collect an invoice) — one gates individual lines before billing is even possible, the other gates the finished invoice before it goes to the customer.

Generate the invoice

From the work order's Invoice tab (or the header Generate Invoice button), choose one of two paths:

  • One work order, one invoice — the normal case. Every line item on the work order copies onto a new draft invoice.
  • Consolidated invoice — bill several completed work orders for the same customer on one invoice. Pick Itemized to keep every line item grouped by the work order it came from, or Summary to roll each work order up into a single fee line. Every work order you select must already be Completed and non-Internal.

Generating an invoice is safe to retry — if a work order is already linked to an invoice, Thermal opens the existing one instead of creating a duplicate. A billed work order's status changes to Invoiced, and it can no longer accept new line items.

Warranty-covered lines copy onto the invoice at $0 with a (Warranty Covered) note, so the customer sees what was done without being charged for it.

What happens next

Once the invoice exists, everything about sending it and collecting payment is covered in Send and collect an invoice.

Reference

  • Work order and invoice statuses — the exact status enums are in Status & domain values.
  • Not-to-exceed and billing settings — the org-wide defaults (warn threshold, enforcement mode) are in Settings reference.

On this page