An invoice in Pistonlog is the customer-facing settlement of a jobcard. There's no separate "invoice document" you create — the jobcard itself becomes the invoice the moment you issue it, carrying the same jobs, parts, labour, and VAT calculation.
Invoice lifecycle
A jobcard can be in one of three invoice states:
| State | What it means |
|---|---|
unpaid | Invoice has been issued; no payment recorded |
partial | A payment has been recorded but the total isn't covered |
paid | Recorded payments cover the invoice total |
Status is calculated, not manually set — it derives from the jobcardPayments table whenever a payment is recorded or voided.
Two payment systems
Pistonlog tracks payments two ways, and they don't merge:
- Manual payments — cash, cheque, bank transfer, anything you recorded yourself. These drive the
unpaid/partial/paidstatus. - Square payments — card payments processed through your connected Square account. Tracked separately in their own
paymentstable with their own status (PENDING/COMPLETED/FAILED).
See Square Payments for the full Square integration.
What's on the invoice
Every customer-facing invoice includes the standard fields described in What customer-facing outputs always include — branding, reference, date, customer, vehicle, and the full cost breakdown with VAT.
Related
In this section
Printing an Invoice
Print a customer invoice from a jobcard, record payments, and manage VAT
Invoice lifecycle
Unpaid → partial → paid. Calculated from manual payments, denormalised onto the jobcard.
Issuing an invoice
Turning a completed jobcard into a customer invoice — printed, PDF'd, or sent with a payment link
Amending an invoice
After issuing, you can still change line items, prices, or VAT — and what to do when money has changed hands
Recording a manual payment
Log a cash, cheque, or bank transfer against a jobcard — drives the invoice status calculation
Manual vs Square payments
Two payment-tracking systems on a jobcard, and why they don't merge