An invoice turns a period of approved, priced work for one client into a numbered document. The lifecycle is deliberately narrow: preview → draft → issued → void, in one direction.
1. Preview before you commit
A preview shows exactly what an invoice would contain and writes nothing. It uses the same code that produces the real document, so what you see is what gets billed.
The preview also warns about two things worth catching early: unpriced billable work, which would otherwise be left off silently, and work priced in a different currency from the client, which cannot be billed here at all.
2. Creating a draft
A draft claims the entries it covers, so a second draft for the same period will not bill them again. Drafts carry no number — abandoning one costs nothing, which is exactly why numbering waits.
Delete a draft and its entries return to the billable pool.
3. How work is grouped into lines
Choose the grouping when you create the draft:
| Grouping | Result |
|---|---|
| One line per person per project | The default — most people's idea of a billing line |
| One line per project | Simpler documents for a client who does not need names |
| One line per cost centre | Where the classification is what the client cares about |
| A single line | One total for the engagement |
Whatever you choose, rate and currency are always part of the grouping. Two different rates never share a line, because a line showing one rate and an amount derived from two would be quietly wrong.
Rounding happens once per line. That way each line's amount follows exactly from its own hours and rate, and the invoice total is exactly the sum of its lines. Rounding per entry or only at the total breaks one of those two.
4. Issuing an invoice
Issuing is the one-way door. In order, TimeSheets:
- checks the arithmetic, and refuses to issue anything whose lines do not add up;
- claims the next number in the client's series;
- marks the invoice issued and sets the issue and due dates;
- freezes the priced snapshot of every entry on it.
5. Invoice numbering
Numbers are assigned at issue, never at draft creation, so abandoned drafts do not leave holes. Each client with a prefix gets its own sequence.
Two people issuing at the same moment can never receive the same number. Gaps are a different matter: if an invocation fails between claiming a number and writing it, that number is spent. Check for gaps on the Invoices screen lists any such number, and reports voided invoices separately because a void keeps its number and is not a gap.
6. Voiding and re-issuing
There is no *edit issued invoice*, on purpose: a document that changed after it was sent is not evidence of anything. The only correction path is void → fix → raise a new one.
Voiding requires a reason, keeps the number — numbers are never reused — and releases the work so it can be billed correctly on a new invoice.
7. What happens to the time entries
Once an invoice is issued, the entries behind it are frozen. Editing or deleting one is refused with a message saying it is on an issued invoice — and an unlock request will not help, because the constraint is the invoice, not the calendar.
Voiding the invoice releases them again.