Bill a completed job
A job'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 job later never changes an invoice that already exists.
Only a completed job can be billed
Generate Invoice only appears on a job 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 job'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.
The office can close an in-progress job with Complete without paperwork when a signature, required inspection item, or required checklist item is still missing. That records what the job still owes and refuses invoicing until every item is on file. A JHA stop-work still blocks completion. Technicians cannot take this path — their Complete job tap stays blocked until the paperwork is in.
A missing signature only counts when the company requires customer sign-off (the setup question, or the work order row in Settings → Signatures). With sign-off set to Not required, a job completes without one.
When the customer left without signing and the rest of the paperwork is in, use the Customer signature block instead. On an in-progress job with no signature, owners, office managers, and dispatchers see a required reason field. Waive signature records the reason and who waived it. The visit then counts as signed, so you can complete it and invoice it. It does not draw a signature. Complete without signature appears when completing the job is the next status: it waives and completes in one step. Checklist items, required inspection items, and a JHA stop-work still block that step. If completion is refused, the waiver stays and the page says why. This is not Complete without paperwork — that path still blocks invoicing until the missing items are on file.
Billing type controls how charges accumulate
Every job 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 job 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 company 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 Manage approvals). The job can still be marked completed with a pending line — but Thermal won't let you generate an invoice from that job until every line is approved or rejected. This is separate from your company'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 job's Invoice tab (or the header Generate Invoice button), choose one of two paths:
- One job, one invoice — the normal case. Every line item on the job copies onto a new draft invoice.
- Consolidated invoice — bill several completed jobs for the same customer on one invoice. Pick Itemized to keep every line item grouped by the job it came from, or Summary to roll each job up into a single fee line. Every job you select must already be Completed and non-Internal.
Generating an invoice is safe to retry — if a job is already linked to an invoice, Thermal opens the existing one instead of creating a duplicate. A billed job'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
- Job 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.