Converting to Invoices
Once a client accepts, conversion turns the quote into a bill. Because estimates and invoices share the same line-item model, nothing is re-keyed — the conversion is exact.
When You Can Convert
You convert an accepted estimate. After a client approves, the estimate page shows an inline notice: "This estimate has been accepted by the client. Convert to Invoice to proceed."
Conversion is blocked for estimates that are declined or expired, and converting an already-converted estimate just returns the existing invoice rather than creating a duplicate.
How to Convert
Three ways, all admin-only (they require invoice-edit permission):
- Row action — Convert to Invoice on an accepted estimate in the list.
- Bulk action — select several accepted estimates and convert them together.
- From the accepted-estimate notice described above.
The result is a new draft invoice. It opens ready for you to review and send through the normal invoice flow.
What Carries Over
The new invoice is built from the estimate, copied field-for-field:
| Carried over | Notes |
|---|---|
| Client | The estimate's client becomes the invoice's client |
| Line items | Copied exactly — descriptions, details, quantities, prices, taxable flags |
| Tax rate | Same rate |
| Discount | Same fixed discount |
| Currency | Same currency |
| Notes | The estimate's notes become the invoice's notes |
The invoice's totals are recalculated and it's assigned the next invoice number. The related project is not carried over (invoices don't have a project field), and the new invoice starts as a Draft so you can adjust anything before sending.
The Two-Way Link
Conversion links the two records in both directions:
- The estimate records Converted To Invoice — pointing at the new invoice.
- The invoice records its source estimate — pointing back at the estimate.
In the estimate list, a converted row links straight to its invoice, so you can always trace a bill back to the quote it came from.
The Read-Only Lock
When an estimate converts, its status becomes Converted and it goes read-only. Any attempt to edit a converted estimate is rejected. This is deliberate: once a quote has become a bill, the two shouldn't drift apart. If something needs to change, edit the invoice (or clone the estimate to start a fresh quote).
Expiry
If a client never responds, the estimate doesn't sit open forever. A daily background job moves any Sent or Viewed estimate to Expired once its Valid Until date has passed, and logs the change. Expired estimates can't be converted — clone the estimate to issue a fresh quote with a new valid-until window.
Set the valid-until to match your terms. The default is 30 days from the issue date, but you can change it per estimate. It's both a message to the client (respond by this date) and the trigger for automatic expiry.