/finance/invoices.
What’s new
- Set safety caps once. Open Settings → Documentation → Document Amount Limits and pick sensible maxes for invoice and quotation totals. Anything above is rejected with a friendly message before reaching the database.
- Issue an invoice from an appointment’s Billing tab or from the Invoices module. The total is validated against your cap.
- Record a payment with inline validation. Confirm is greyed out if you try to overpay. Receipts and payment history appear without a refresh.
- The Bill To block prints only the patient name and email — phone numbers no longer leak onto documents shared with third parties.
- “Generated from Quotation #X” prints under the totals when the invoice came from an accepted quote.

