Skip to main content

Billing dashboard, tax and VAT configuration

The Billing app is where you go to see who owes the practice money, how long the debts have been outstanding, and what action to take next. It pulls every unpaid invoice into one filterable table, colour-codes them by age, and lets you record payments, send reminders, or write off debts in bulk. For multi-site groups, the company-level dashboard adds an aged-debts breakdown so the finance team can see the full picture across every store. This article also covers the tax and VAT settings that power those invoices in the first place.

πŸ’‘ In short: Open Billing in the top navigation for the Debts view of your store. Switch to Drafts to see and complete draft invoices. Switch to Statements to send statements (see ). Go to Admin β†’ Billing β†’ Dashboard for an aged-debts roll-up across the whole group. Tax and VAT live at Settings β†’ Financial Details.


Before You Begin

πŸ“ Permissions required. Billing access is required to open the Billing app. Bulk Emails is needed to send reminders to multiple clients at once. Store Financial Information is needed to edit the practice's tax and bank settings. Permissions live at Settings β†’ Permissions.


The Debts tab

Click Billing in the top navigation. The default view is the Debts tab, showing every completed invoice with an outstanding balance, surfaced in one table.

πŸ“Έ Screenshot to add during sanity check: the Billing β†’ Debts tab, with the table grouped by client, a few clients expanded to show their unpaid invoices, Days Since Due badges visible in green / yellow / orange / red, and the action toolbar at the top.

Grouped vs flat

A toggle at the top of the table switches between two views:

Grouped by client

Default. Each client is one row β€” expand to see their unpaid invoices. The fastest way to see who owes you the most.

Flat list

Every invoice is its own row. Better for reviewing specific invoices regardless of client.

Columns

The table is wide β€” show or hide columns with the column-visibility toggle in the toolbar.

Column

What it shows

Invoice

The invoice reference. Clicking opens the invoice.

Client Name

Owner of the invoice. Clicking opens the client profile. (Hidden in the grouped view since it's the row header.)

Animal

The pet the invoice was raised for.

Due Date

Date the invoice became payable.

Amount Overdue

Outstanding balance on this invoice.

Responsible clinician

The clinician assigned to the appointment linked to this invoice. If there is no appointment, falls back to the employee who created the invoice.

Assigned employees

All employees assigned to individual line items on this invoice, shown as chips.

Insurance Claims

Any insurance claim attached to this invoice and its status.

Client Balance

The client's overall account balance. A positive figure means credit, negative means debt.

Days Since Due

How long the invoice has been overdue. Colour-coded: green (<30 days), yellow (30–60), orange (61–90), red (91+). Use this as a triage signal.

Days Since Invoiced

How long since the invoice was created.

Reminders Sent

Count of reminder emails sent for this invoice.

Last Reminder Sent

Date of the most recent reminder.

Notes

Free-text notes attached to the invoice (e.g. "Client promised to pay Friday").

Invoice Tags

Tags applied to the invoice (e.g. "Payment plan", "Disputed").

Client Tags

Tags applied to the client (e.g. "Corporate", "VIP").

Store Name

Which store raised the invoice. Visible at the company-level view only.

Filtering and sorting

  • Sort by clicking any column header.

  • Filter by clicking the filter icon in any column header (date ranges, balance ranges, tags, age brackets).

  • Search for clients by name in the search bar.

  • The URL captures the current sort, filters, and column visibility β€” bookmark a filtered view to return to it later.

Per-row actions

The three-dot menu on any invoice row offers:

Action

What it does

Open invoice

Jumps to the invoice editor.

Open client

Jumps to the client profile.

Add payment

Records a payment against this invoice.

Add claim

Attaches a new insurance claim. See the Insurance & Claims section of the help centre.

Edit tags

Add or remove tags on this invoice.

Add note

Attach a free-text note (e.g. "Client out of country until Feb").

Send reminder email

Sends a reminder for this invoice immediately.

Issue write-off

Marks the debt as uncollectable. Audit trail is preserved. See .

For credit notes and refunds (which are typically issued from the client profile rather than the debts table), see .

Bulk actions

Tick the checkbox on multiple invoices (or use the header to select all). The action bar at the top of the table reveals:

Bulk action

What it does

Send bulk reminders

Emails a reminder to every selected client. Disabled if Bulk Emails permission is missing or the practice doesn't have an email integration configured.

Edit Tags

Add or remove invoice tags or client tags across all selected rows in one action.

To export the filtered table for accountant or finance-team meetings, use the table's export option in the toolbar β€” it produces a CSV of the current view.

The Drafts tab

Click Billing in the top navigation and select the Drafts tab to see all draft invoices for your store. The table is headed Draft invoices and defaults to sorting by invoice date (newest first).

The Drafts tab uses the same table layout as the Debts tab β€” you can switch between grouped and flat views, show or hide columns, filter, sort, and search in exactly the same way, with a few differences:

  • Draft invoices do not show aged-debt colour coding, because they are not yet completed outstanding debts.

  • Several columns that only apply to completed debts β€” including Client Balance, Days Since Due, and reminder-tracking columns β€” are hidden by default on the Drafts tab. You can show them using the column-visibility toggle if needed.

  • Draft invoices that have not yet been assigned an invoice number show Unissued in the Invoice # column (rather than 0). This label also appears in search results and in the CSV export.

Actions available on draft invoices

Because draft invoices are not yet completed debts, the following actions are not available on the Drafts tab:

  • Send reminder email (per-row menu)

  • Send email for all invoices (grouped-client menu)

  • Send bulk reminders (bulk action bar)

  • Issue write-off and Add payment (these only apply to completed invoices)

All other per-row actions β€” opening the invoice, opening the client, editing tags, and adding notes β€” work as normal.

Completing draft invoices in bulk

Tick the checkboxes on one or more draft invoices, then click Complete invoices in the action bar. A confirmation pop-up shows how many invoices will be marked as completed. Confirm to proceed.

  • Lupa completes the invoices one at a time to keep each client's balance accurate.

  • If your selection includes any invoice that is not a draft, the whole batch is rejected β€” nothing is completed. Deselect the non-draft invoices and try again.

  • On success, a confirmation message shows how many draft invoices were completed, and the table refreshes automatically.

The Complete invoices bulk action is only available on the Drafts tab; it does not appear on the Debts tab.


Aged debts dashboard (company level)

For multi-site groups, Admin β†’ Billing β†’ Dashboard adds a roll-up of debts across every store as of a date you pick.

πŸ“Έ Screenshot to add during sanity check: the Admin β†’ Billing β†’ Dashboard tab, with date picker top-right, age-bracket bubbles (0-30 green, 31-60 yellow, 61-90 orange, 91+ red, total black), the summary table below, and a client allocations table at the bottom.

What it shows

  • Date picker at the top: analyse debts as of any chosen date.

  • Age-bracket bubbles: clickable filters that summarise outstanding amounts by age:

  • 0 – 30 days (green)

  • 31 – 60 days (yellow)

  • 61 – 90 days (orange)

  • 91+ days (red)

  • Total debt (black)

  • Summary table: net of debts and credits with each age band on a row.

  • Client allocations table: net balance per client, split into allocated and unallocated amounts. Each client name links to their profile. This dashboard is the right tool for finance reviews, board reporting, and identifying clients who consistently age into the 91+ band.


Statements

The Statements tab generates and emails formal statements to clients. It's documented in detail at .

If a client has a payment terms invoice message configured on their payment terms, that message now also appears on their statement PDF as a Payment Terms Message section. The message uses the same placeholders as on individual invoices, but the values are aggregated across all outstanding invoices on the statement β€” for example, {{invoice_total}} shows the combined total of all outstanding invoices, and {{invoice_due_date}} shows the earliest due date among them. If a client has no payment terms or their payment terms have no message, the section is silently omitted from the statement.

The Payment Terms Message section can be reordered or hidden alongside the other statement sections in Billing β†’ Statements β†’ Statement PDF Preview.


Tax and VAT configuration

The practice's currency, VAT rate, and VAT registration number are set at Settings β†’ Financial Details. They drive how invoices are calculated, how prices display, and what shows on tax exports.

πŸ“Έ Screenshot to add during sanity check: the Settings β†’ Financial Details dialog with realistic data such as Currency GBP, VAT percentage 20, VAT number filled in, and Invoice Due (Days Horizon) set to 30.

Settings reference

Setting

What it does

Default

Currency

Currency code used for all prices in this store (GBP, EUR, USD, etc.). Determines symbol and formatting throughout the app.

Set during onboarding

VAT percentage

Default VAT rate applied to new services, products, and bundles when they're created.

20%

VAT number

The practice's VAT registration number. Printed on invoices, statements, and exports for clients to record.

Empty

Invoice Due (Days Horizon)

How many days after invoice creation the invoice becomes due. Drives the Days Since Due column on the Debts tab.

30 days

Bank account fields

Bank Name, Account Name, Account Number, Sort Code are all printed on statements and invoices for clients paying by transfer.

Empty

Payment terms message on statements

If you use payment terms with a custom invoice message (configured on the client's payment terms record), that message is included on statement PDFs as a Payment Terms Message section. Placeholders such as {{invoice_total}} and {{invoice_due_date}} are filled using the totals and dates from the outstanding invoices listed on the statement. You can show, hide, or reorder this section from Billing β†’ Statements β†’ Statement PDF Preview in the same way as other statement sections.

Placeholder

What it shows on a statement

{{invoice_total}}

Sum of the amount due across all outstanding invoices on the statement.

{{invoice_due_date}}

The earliest due date among the outstanding invoices. Blank if there are no outstanding invoices.

{{invoice_date}}

The date the statement was generated.

{{late_fee_amount}}

Late fee calculated against the total outstanding balance, if a late fee is configured on the payment terms.

{{early_payment_credit_amount}}

Early-payment credit calculated against the outstanding total, if configured on the payment terms.

Per-item VAT rates

The store-level VAT percentage is the default. Each service, product selling variation, and bundle stores its own VAT percentage and can override the default, which can be useful when some items are zero-rated for VAT (common in UK veterinary practice) or attract a reduced rate. The available rates per country are:

Country

Standard rate options

UK and most regions

20%, 5%, 0%

Germany

Country-specific rates pulled in via the Fiskaly integration

Editing a service, product variation, or bundle exposes the VAT field β€” see .

Country-specific behaviour

Some countries have additional regulatory tooling on top of the basic VAT rate:

  • Germany. The Fiskaly integration handles cash-register signing requirements and exposes country-specific VAT rates. Configured at Settings β†’ Integrations β†’ Fiskaly.

  • Other regions. Tax-type labels follow local conventions when invoices are exported (e.g. MwSt. in Germany and Switzerland, USt. in Austria, GST in Australia / New Zealand / Singapore). If your practice is changing country-specific tax rules, contact Lupa support before adjusting Financial Details β€” some changes are irreversible without engineering involvement.


I want to know…

Question

Where to look

How much is owed to the practice in total

Billing β†’ Debts, the column totals at the table footer. For multi-store groups, Admin β†’ Billing β†’ Dashboard.

Which debts are most overdue

Billing β†’ Debts, sort by Days Since Due descending, or filter for 91+ days.

Whether a specific client has been reminded recently

The Last Reminder Sent and Reminders Sent columns on their row.

How aged debts break down across the group

Admin β†’ Billing β†’ Dashboard, the age-bracket bubbles.

The full account history for a single client

Click the client's name in the Debts tab. Or use Billing β†’ Statements β€’ expand row.

Where to change the practice's VAT rate

Settings β†’ Financial Details β†’ VAT percentage., this is the default rate; per-item overrides happen on each service / product / bundle.

Where to set the VAT number that appears on invoices

Settings β†’ Financial Details β†’ VAT number.

Where to set bank details for client transfers

Settings β†’ Financial Details, the bank account fields. They're printed on statements automatically.


Tips

βœ… Best practices for debt and tax management:

  • Triage by colour weekly. Green <30 days = wait. Yellow 30–60 = remind. Orange 61–90 = chase by phone. Red 91+ = escalate.

  • Batch your reminders. Run Send bulk reminders every Monday morning for all 30+ day debts.

  • Tag aggressively. "Payment plan agreed", "Disputed", "Final notice sent", "Sent to collections". The tags drive your workflow more than the dates do.

  • Review the company-level dashboard monthly. It catches the trends that single-store views can miss: e.g. one corporate client aging across multiple sites.

  • Keep the VAT number on Financial Details up to date. Changes don't reflow into past invoices, so update the moment your registration changes.

  • Set per-item VAT rates correctly when you add the service. It's much harder to fix later - the catalogue rate only affects new invoices.

  • Reconcile against your accounting export annually. The Xero / accounting tax-type label and rate should match what your accountant expects for your country.


Troubleshooting

Problem

Solution

The Billing tab isn't visible

You need the Billing access permission. Ask your Practice Manager to grant it under Settings β†’ Permissions.

Send bulk reminders is greyed out

Either you don't have Bulk Emails permission, the practice's email integration isn't configured, or none of the selected clients have an email on file.

A client's positive balance is confusing the team

A positive balance means they have credit β€” overpayment or unallocated credit notes. Open their profile and use Allocate Credit on the right invoice. See .

Reminder emails aren't going out automatically

They never do. Lupa sends reminders only when you trigger them manually (per-row or in bulk). This is intentional, so you control which clients get chased.

The aged-debts Dashboard tab is missing

The Dashboard tab is at company level only. It's at Admin β†’ Billing β†’ Dashboard, not under the store-level Billing menu.

The VAT rate on a new service is wrong

The default rate is read from Settings β†’ Financial Details when the service is created. Updating Financial Details doesn't reflow into existing services β€” edit the service directly to change its rate.

VAT number isn't appearing on the invoice PDF

Confirm it's filled in at Settings β†’ Financial Details β†’ VAT number. Past invoices that were printed before the field was filled in won't update β€” they're locked at print time.

Country-specific tax behaviour isn't working

Some countries (e.g. Germany) need additional integrations enabled. Contact Lupa support as country switches usually require operator-side changes, not just a settings tweak.

Bulk draft completion is rejected

The whole batch is rejected if any selected invoice is not a draft. Check your selection and make sure every ticked invoice is still in draft status, then try again.


Frequently Asked Questions

What's the difference between store-level Billing and Admin Billing?

Billing in the top navigation shows debts, drafts, and statements for your current store. Admin β†’ Billing shows the same tabs across the whole company, plus an extra Dashboard tab with aged-debts roll-ups. Multi-site groups use the company view for finance reviews; single-store practices won't see the Admin menu at all.

Do reminder emails go out automatically?

No. Reminders are always triggered manually, either one at a time from the row menu or in bulk from the action bar. This is deliberate so you control which clients get chased and when.

Why does a client show a positive balance?

A positive balance means they have credit, usually because they've overpaid or have an unallocated credit note. Open their profile and use Allocate Credit to apply it to a specific invoice. See .

Can I customise the reminder email?

Reminder email templates support placeholders for client details (such as the client's name, address, and phone number), clinic details (clinic name, address, email, and phone), and invoice details (invoice number, balance, due date, and days overdue). These placeholders work whether you send a reminder to one client or use Send bulk reminders to contact many clients at once. You can edit the template wording when composing a reminder; if your practice needs a fully custom default template, contact Lupa support.

How do I change the practice's default VAT rate?

Settings β†’ Financial Details β†’ VAT percentage. This is the default applied to new services, products, and bundles. Existing items keep their current rate, edit each item to change its VAT.

How do I make a service zero-rated for VAT?

Edit the service at Settings β†’ Services, set its VAT to 0%, and save. Some veterinary services are zero-rated in the UK. Confirm with your accountant which apply to your practice.

Where do credits, refunds and write-offs live?

Refunds, credit notes (invoice and goodwill), and write-offs all originate from the client's profile or the debts table See for the full workflow.


Related Articles

Did this answer your question?