Skip to main content
Issue invoices that are guaranteed to be in range, blocked from typo-overpayments, and never print the patient’s phone on a document a third party will read. We rebuilt the invoice path because three different ticket types — typo totals, overpayment confusion and patient-data exposure — were all in the same file.

What’s new

  • Per-clinic safety caps on totals. Admins set a maximum invoice total in Settings → Documentation → Document Amount Limits. Anything above the cap is rejected with a friendly message before reaching the database.
  • Overflow typos no longer leak raw errors. Typing 110000000 instead of 11,000 used to bubble a database error to the toast. The server now returns “The amount you entered is too large…” instead.
  • Inline payment validation. Entering more than the invoice balance shows a clear inline error and disables the Confirm button until corrected. No more silent capping on blur.
  • Receipts and payment history appear immediately. Once a payment is recorded, the receipt and the payment history row update without a page refresh. The activity timeline on the invoice refreshes automatically too.
  • Bill To omits patient phone. The Bill To / Received From block on invoices, quotations and receipts (inline and PDF) shows only the patient name and email. Public shared-link responses no longer return the patient phone at all. The patient already knows their own phone number — printing it on a document a clinic shares with third parties is unnecessary.
  • “Generated from Quotation #X” on the PDF. When an invoice was generated from an accepted quote, the PDF carries the linked quote number under the totals.
  • A double-submit guard on Create Invoice. Rapid double-clicks no longer create the same invoice twice.

How to use it

1

Set your safety caps once

Open Settings → Documentation → Document Amount Limits and enter sensible max values for invoice and quotation totals.
2

Issue an invoice

From an appointment’s Billing tab or from the Invoices module. The total is validated client-side and server-side against your cap.
3

Record a payment

The amount field is validated against the outstanding balance — Confirm is greyed out if you try to overpay.
4

Receipt is generated immediately

The patient’s phone is not on it.
5

Linked quote prints if applicable

If the invoice came from a quotation, the linked quote number prints on the PDF.

What changed since the last revision

  • Per-clinic safety caps prevent typo totals.
  • Overflow errors are friendly, not raw.
  • Overpayments are blocked inline instead of silently capped.
  • Receipts and payment history appear without a refresh.
  • Patient phone is never on the Bill To block.
  • “Generated from Quotation #X” prints on the PDF.
  • Create Invoice has a double-submit guard.

Need help?

If anything is unclear, write to [email protected] or open a ticket from Settings → Support.