Invoice lifecycle

Draft → issued → sent → part paid → paid (or cancelled), and what moves an invoice between them

OwnerManagerReception

An invoice is a separate document raised from a jobcard, and it moves through a fixed lifecycle. Everything before issued is provisional; everything after is locked.

The states

StatusMeans
draftEditable. Refresh rebuilds it from the jobcard; Delete draft removes it. No number yet.
issuedNumbered, dated, due date set, locked as a VAT record.
sentSet automatically when you Send Invoice by email.
part paidPayments recorded, but less than the frozen total.
paidRecorded payments cover the frozen total.
cancelledReversed by a credit note, via Cancel invoice or Amend.

Calculated, not manual

You can't set the paid states by hand. Recording a payment moves the invoice to PART PAID, and to PAID once the total is covered; the comparison is always against the total frozen at issue time. A £0 invoice can never reach paid.

Overdue is a badge, not a status

When an unpaid invoice passes its due date, Pistonlog shows an OVERDUE badge. It's derived on the fly from the due date; the stored status doesn't change.

Cancelling and amending

Both paths issue a reversing credit note against the original, and both require a reason:

  • Cancel invoice reverses it, full stop.
  • Amend reverses it and also creates a replacement draft, rebuilt fresh from the jobcard.

Any payments already recorded stay attached to the original invoice. See Amending an invoice.

Related

Was this article helpful?