Payments
The payments module runs the clinic's real cash flow: every payment received from a patient, split across budgets and on account, with their refunds, plus a per-patient ledger. It also feeds the financial reports under the reports module.
It is a patient-centric module, not invoice-centric. A single payment can cover several budgets, sit partially on account, or spread across different treatments. Billing links payments when a formal invoice has to be issued — never the other way around.
Screens
- Payment list — every payment with filters, allocations, and a refund shortcut.
- Payment reports — KPIs, trends, payment methods, professionals, aging, refunds.
Quick reference
| Action | Required permission |
|---|---|
| View list, patient ledger, and allocations | payments.record.read |
| Record a payment or reallocate it | payments.record.write |
| Issue a refund | payments.record.refund (admin/dentist by default) |
| See the payment reports | payments.reports.read |
Related modules
- Budgets — every payment can be allocated across one or more patient budgets. The budget page shows a Paid / Outstanding sidebar card with the breakdown.
- Patients — the Administration tab on the patient record includes the patient ledger (KPIs + timeline + refund row menu).
- Billing — billing depends on payments, not the reverse. An invoice may link to one or more payments (
invoice_paymentslives inside thebillingmodule). - Odontogram and treatment plans — feed earned data (
PatientEarnedEntry) to payments via theodontogram.treatment.performedandtreatment_plan.treatment_completedevents. Reports use it for aging analysis. - Reports — the
/reportspage links to/reports/paymentswhenever the payments module is installed.