Company Logo

Invoicing User Guide

For Dental Practitioners Create invoices, manage discounts, record payments, and track balances in Zermmi

Overview

Zermmi automatically converts completed dental procedures into invoices, tracks payments, and manages patient balances.

Key Features:

  • Automatic invoice creation from visits
  • Per-item and global discounts
  • Multiple payment installments
  • Balance tracking
  • PDF generation and email delivery
  • Swiss QR code payments
  • Administrative fees (cancellation, no-show)

Related Pages:

  • Dental Charting - Complete visits and create invoices
  • Data > Finance Tab - View and manage all invoices
  • Patient Profile - View patient invoice history

Creating Invoices from Visits

Basic Workflow

  1. Navigate to Dental Charting → Open patient → Select Charting/Odontogram tab
  2. Add Procedures → Select from catalog → Procedures appear in Staged Procedures List
  3. Adjust Fees (optional) → Click fee amount → Apply discount or change price
  4. Apply Global Discount (optional) → Click adjustment icon → Set discount/premium
  5. Complete Visit → System creates pending_checkout invoice automatically

Tip: pending_checkout status = draft. You can still edit fees, add admin fees, and apply discounts.

Alternative: Treatment Plans

  • Plan Treatment → Save procedures without creating invoice
  • Create Plan → Generate treatment plan/quote for patient

Insurance vs. Private Pricing

"Reimbursed by Insurer" Toggle (bottom of Staged Procedures List):

When ENABLED: Standard insurance rates (1.00× multiplier) When DISABLED: Practice custom multiplier (e.g., 1.3× for private patients)

Example:

  • Base: 50 points, Practice multiplier: 1.3
  • Private (toggle OFF): 50 × 1.3 = CHF 65.00
  • Insurance (toggle ON): 50 × 1.00 = CHF 50.00

Notes:

  • Toggle applies to all procedures in visit
  • Can be changed before completing visit
  • Fees lock once invoice is created
  • Individual fees can still be edited manually

Managing Discounts

1. Per-Item Discounts

Use for: Special pricing on specific procedures

How to apply:

  1. Click fee amount in Staged List or Invoice Dialog
  2. Choose percentage (10%) or fixed amount (CHF 50)
  3. Add optional notes
  4. Save

2. Global Discounts

Use for: Practice-wide discounts, payment-in-full deals, surcharges

How to apply:

  1. Open invoice dialog → Sidebar → Click total amount
  2. Enter discount (negative) or premium (positive)
  3. Choose percentage or fixed amount
  4. Add reason
  5. Save

Remove: Click × (Remove adjustment) button

Note: Total discounts only editable when status is pending_checkout

Discount Examples

| Scenario | Type | Action | |----------|------|--------| | 10% off crown | Per-item | Edit crown fee → 10% discount | | CHF 50 off total | Global | Edit total → -CHF 50 | | 5% family discount | Global | Edit total → 5% discount | | Late payment surcharge | Global | Edit total → positive amount |


Invoice Dialog Features

Open: Data page → Finance tab → Click invoice row

Dialog Sections

1. Header

  • Invoice number, patient name, status badge, balance due
  • Action buttons:
    • Record Payment (green) → When balance > 0
    • Send Invoice (email icon) → When issued/paid
    • Download PDF → Always available

2. Main Content

  • Practice info, invoice date, patient details
  • Treatment table with procedures, codes, teeth, quantities, prices
  • Administrative fees (if any)

3. Sidebar

  • Totals: Subtotal, adjustment, total, paid, balance due
  • Payment History: All payments with dates, methods, notes
  • QR Code: Swiss QR payment (when issued + valid IBAN)
  • Add Administrative Fee button (pending_checkout only)

Administrative Fees

Default fees available:

| Fee Type | Amount | When to Use | |----------|--------|-------------| | Late Cancellation | CHF 50 | Appointment cancelled < 24 hours before | | No-Show | CHF 50 | Patient doesn't show up |

Manual add:

  1. Open pending_checkout invoice → Sidebar → Add Administrative Fee
  2. Select fee from dropdown → Click Add
  3. Fee added as line item, total recalculates

Calendar integration (automatic):

Late Cancellation:

  • Cancel appointment in calendar
  • If < 24 hours away: Choose Charge fee or Waive fee
  • If charge: Invoice created automatically with CHF 50 fee
  • Invoice preview appears immediately

No-Show:

  • Mark appointment as no-show in calendar
  • Choose Charge Fee or Waive Fee
  • If charge: Invoice created with CHF 50 no-show fee

Best practices:

  • Review cancellation policy with patients upfront
  • Use "Waive fee" for emergencies
  • Document waived fees in notes

Row Actions Menu (⋮)

From Finance Tab, each invoice has:

  • View → Open invoice dialog
  • Send Invoice → Email to patient
  • Record Payment → Quick payment entry
  • Download PDF → Get PDF file
  • View Patient → Open patient profile
  • Void Invoice → Cancel invoice (cannot undo)

Recording Payments

Quick Steps

  1. Open invoice → Click Record Payment
  2. Fill fields:
    • Amount (required) → Defaults to balance due
    • Date (required) → Defaults to today
    • Method (required) → Cash, Card, TWINT, Wire Transfer, Insurance, Other
    • Notes (optional) → Check numbers, transaction IDs
  3. Click Save
  4. Payment recorded, balance updates, status may change

Payment Scenarios

Full Payment:

  1. Open invoice → Record Payment → Use pre-filled amount → Save
  2. Status → paid

Partial Payments:

  1. Record first payment (e.g., CHF 500 of CHF 1500)
  2. Add note: "First of 3 payments"
  3. Balance updates to CHF 1000
  4. Repeat for subsequent payments
  5. Final payment → Status changes to paid

Insurance + Patient:

  1. Record insurance payment (CHF 800, method: Insurance)
  2. Record patient payment (CHF 400, method: Cash)
  3. Status → paid

Status Changes

| Before | Payment | After | |--------|---------|-------| | pending_checkout | Any | issued | | issued | Partial | issued | | issued | Full | paid |

Payment History

  • All payments are immutable (cannot edit/delete)
  • Shows amount, date, method, timestamp, notes
  • Contact admin if correction needed

Finance Tab

Access: Data page → Finance tab

Table Columns

Invoice #, Patient, Status, Practitioner, Issued Date, Paid Date, Total, Paid Amount, Balance Due, Actions

Filters

  • Status: All, Pending Checkout, Issued, Paid, Void
  • Date Range: Today, This Week, This Month, This Year, Custom
  • Practitioner: All or specific practitioner
  • Search: Patient name or invoice number

Finding Patients with Balance

  1. Filter by status: Issued
  2. Sort by Balance Due column
  3. Largest balances appear first

Use for: Daily reconciliation, AR review, payment follow-ups

Export

Click Export → Export All or Export Visible → CSV downloads

Pagination

50 invoices per page. Use Previous/Next buttons or page numbers.


Invoice Statuses

1. Pending Checkout (Draft)

  • Invoice created but not issued
  • Editable: fees, discounts, line items
  • Actions: Edit, add admin fees, record payment, void
  • Next: Review → Issue or record payment

2. Issued

  • Finalized and sent to patient
  • Not editable: fees and discounts locked
  • Actions: Record payment, send email, download PDF, void
  • Next: Wait for payment → Record when received

3. Paid

  • Fully paid, balance = CHF 0
  • Actions: Download PDF, send email, view history
  • Next: Archive or export

4. Void (Cancelled)

  • Cancelled, no longer valid
  • Read-only: Cannot edit, pay, or reactivate
  • When: Incorrect invoice, cancelled treatment, duplicate

Status Flow

pending_checkout → (record payment) → issued → (full payment) → paid
       ↓
    (void) → void

Status Rules

pending_checkout: Can edit, add fees, void, record payment issued: Can record payment, send email, download PDF, void (if no payments) paid: Can download PDF, send email, view history void: View only


Troubleshooting

Cannot Record Payment

Causes:

  • Invoice fully paid (balance = 0)
  • Invoice is void
  • Insufficient permissions

Solution: Check balance, status, and user role

Cannot Edit Fees

Cause: Status is issued, paid, or void

Solution:

  • Fees only editable in pending_checkout
  • If issued: Void and create new invoice, or record adjusted payment with note

Cannot Add Admin Fee

Cause: Status is not pending_checkout

Solution: Admin fees only for draft invoices. Void and recreate if needed.

Cannot Send Email

Causes:

  • Invoice is pending_checkout (must issue first)
  • Patient has no email
  • Email service unavailable

Solution: Issue invoice, add patient email, or download PDF and send manually

QR Code Not Appearing

Causes:

  • Invoice is pending_checkout (issue first)
  • Practice IBAN not configured
  • Invalid bank details

Solution: Issue invoice, contact admin to configure IBAN

Payment Recorded Incorrectly

Solution:

  • Payments are immutable by design
  • Contact admin for database adjustment
  • Or record offsetting payment with notes

Status Not Changing to Paid

Causes:

  • Payment < balance due
  • Rounding error (CHF 0.01 remaining)
  • System delay

Solution: Check balance, record remaining amount, or refresh page

Cannot Void Invoice

Causes:

  • Payments already recorded
  • Insufficient permissions
  • Invoice already paid

Solution: May need admin assistance or create credit memo

Balance Doesn't Match Bank

Steps:

  1. Export invoice data to CSV
  2. Compare with bank statement
  3. Check for missing/duplicate payments
  4. Verify payment methods separately
  5. Check voided invoices
  6. Review payment dates

Best practice: Reconcile daily


Summary

Quick Reference

| Task | Location | Steps | |------|----------|-------| | Create Invoice | Dental Charting | Complete visit → Auto-created | | Apply Discount | Invoice sidebar | Click total → Enter discount | | Record Payment | Invoice dialog | Record Payment → Fill → Save | | Email Invoice | Invoice dialog | Send Invoice button | | View Balances | Finance Tab | Balance Due column | | Void Invoice | Finance Tab | Row menu ⋮ → Void |

Key Concepts

  1. Automatic Creation → Completing visit creates pending_checkout invoice
  2. Two Discount Levels → Per-item (specific) and total (global)
  3. Flexible Payments → Single or multiple installments, immutable history
  4. Status-Driven → pending_checkout (editable) → issued (finalized) → paid (complete) → void (cancelled)
  5. Finance Tab Dashboard → View all, filter, identify balances, export
  6. Admin Fees → Late cancel (CHF 50) and no-show (CHF 50) available automatically from calendar

Document Version: 1.0 Last Updated: 2025-10-30 Related Docs: Calendar User Guide, Patient & Contact Management

Need Help? Contact Zermmi Support