Domma CMS User Manual

Invoices

Updated by Darryl Waterhouse on 13 October 2026 10 min read

Invoices lets you raise, print, email and track invoices from the admin. You set up who you trade as (issuers) and who you bill (receivers), then create invoices with line items, optional VAT and a record of payments.

What it does

  • Keeps issuer profiles (your trading names, addresses, VAT numbers and bank details) and receivers (your customers).
  • Creates invoices with line items, one VAT rate per invoice, notes and a due date.
  • Numbers invoices automatically, for example INV-2026-0001.
  • Works out totals, what has been paid and the balance, and marks an invoice overdue once its due date passes.
  • Prints a clean A4 invoice in one of three layouts, downloads it as a PDF (where the server can make one) and emails it.
  • Exports one invoice, or the whole filtered list, as CSV or Excel.
  • Shows a badge in the sidebar with the number of outstanding invoices. It turns red while any are overdue.

Getting started

  1. Open Invoices in the sidebar.
  2. Click the cog in the plugin banner to open Invoice Settings.
  3. On the Issuers tab, click New Issuer and fill in your trading name, address, VAT number and bank details. Click Save.
  4. Optional: in Invoice as, pick the issuer a new invoice should start with.
  5. On the Receivers tab, click New Receiver and add a customer. If you use Contacts, Import from Contacts creates one for you.
  6. Check the Defaults tab (currency, VAT, payment terms) and click Save.
  7. Close the settings and click New Invoice. It stays switched off until you have at least one issuer and one receiver.
  8. Pick the issuer and receiver, add line items with Add Line, and click Save (or press Ctrl+S).

The ? in the plugin banner opens a short help panel. Most fields also show a hint when you hover over them or their ? marker.

Screens

Invoices list

The main screen at Invoices.

  • Tiles along the top: Total invoices, Outstanding, Overdue, Paid and Drafts. Click a tile to filter the list by it.
  • Filters: search (number, company or contact, issuer, customer reference and notes), status, issuer, sort order, and an Issued from / to date range.
  • Show archived swaps the list over to archived invoices. It does not mix them in with the live ones.
  • Clear filters appears once any filter is set.
  • CSV and Excel export the rows currently shown, so the filters apply.
  • PDF builds one PDF of every invoice shown, a page each. It only appears when the server can make PDFs.

Right-click a row, or click its ⋯ button, for the row menu:

Action What it does
Open Opens the invoice in the editor
Print / preview Opens the printable invoice in a new window
Send by email Opens the Send dialog
Download PDF Downloads the invoice as a PDF (only when the server can make one)
Export CSV or Excel of this one invoice, with its line items
Duplicate Copies it into a new numbered draft, without its payments or send history
Mark as sent Shown for drafts
Mark as paid Shown unless it is already paid or cancelled
Cancel invoice Sets the status to cancelled
Archive / Restore Moves it to or from the archive
Delete Deletes it permanently

Invoice editor

Opened by New Invoice or Open.

  • Invoice Number: leave it blank and one is allocated when you save.
  • Status: Draft, Sent, Paid, Overdue or Cancelled.
  • Issue Date and Due Date: the due date is filled in from your payment terms. It cannot be earlier than the issue date.
  • Issuer and Receiver: From Contacts creates a receiver from a contact, where Contacts is available.
  • Line items: Description, Qty and Unit (net). Add Line adds a row; the x removes one. Prices are net.
  • Payments: Record Payment opens a dialog for Date received, Amount, Method (bank transfer, card, cash, cheque, direct debit, other) and Reference. The x on a payment removes it.
  • Refund / Credit: records money you gave back (Refund) or a Credit note that reduces what the client owes. Both need a reason. A refund cannot be more than has been paid; a credit note cannot be more than the total. A credit note prints on the invoice with its date and reason.
  • Notes: printed under the totals.
  • Totals: Subtotal, VAT, Total, Paid and the balance, updated as you type.
  • VAT: Apply VAT on or off, and the Rate %.
  • Currency: GBP, EUR or USD.
  • Buttons at the top: Print, Download PDF (when available), Send and Save.

An Unsaved chip shows while you have changes. If you leave with unsaved changes you are asked first, and a draft is kept in this browser.

Issuers and Receivers

Reached from the sidebar under Invoices, or from the tabs in Invoice Settings. Both are lists with a search box and a sort (By name, Most used).

  • Click a row to edit it. Right-click it, or use its menu button, to duplicate it, copy its email address or delete it.
  • Each row shows how many invoices use it.
  • Issuer fields: Trading Name, Email, Phone, Website, VAT Number, Logo, Address, Account Name, Bank, Sort Code, Account Number, IBAN, BIC / SWIFT and Other Payment Notes.
  • Receiver fields: Contact Name, Company, Email, Phone, VAT Number, Reference and Address.
  • Import from Contacts (Receivers) brings across a contact's company name, billing address, VAT number and reference.

Send Invoice dialog

Opened by Send in the editor or Send by email in the row menu.

  1. Check To. It starts with the receiver's email address. Separate several addresses with commas.
  2. Where Contacts is available, Add a contact and Add a group add recipients from Contacts.
  3. Check the Subject and Covering note.
  4. Leave Attach a PDF on to attach the invoice as a PDF. Without it, or when the server cannot make PDFs, the invoice is sent in the body of the email instead.
  5. Send. A draft invoice moves to Sent.

Settings

Click the cog in the plugin banner. Invoice Settings has seven tabs. Each tab has its own Save.

Tab What you set
Issuers Your issuer profiles, and Invoice as: the issuer a new invoice opens with (or Ask every time)
Receivers Your customers
Defaults Currency (three-letter code such as GBP), VAT rate (%), VAT on by default, Payment terms (days; 0 leaves the due date blank)
Numbering Prefix (default INV) and Digits (default 4). Shows the next number
Email Subject, Covering note, Attach a PDF when the server can render one, Invoice footer
Branding The house logo, used for any issuer without a logo of its own. Click Upload or choose...
Templates The print layout, with a live preview

Defaults only affect new invoices. Existing invoices are never changed.

Email wording

The Subject and Covering note can include these placeholders. They are filled in for each invoice:

{{number}}  {{issuer}}  {{receiver}}  {{total}}  {{dueDate}}

The default subject is Invoice {{number}} from {{issuer}}.

Templates

Three layouts come with the plugin:

  • Classic: logo top left, invoice details top right.
  • Modern: a dark band across the top with the logo and invoice number.
  • Minimal: no logo and no colour. Prints cleanly in black and white.

Click a layout to preview it, then click Use this template. Show the logo switches the preview between the logo and no-logo versions. An issuer with no logo gets a layout built without one, rather than a gap.

Numbering, status and payments

  • Numbers take the form PREFIX-YEAR-0001 and restart at 1 each calendar year. They are never reused. A number you type yourself is kept.
  • An invoice becomes overdue once its due date passes and it still has a balance to pay. Nothing needs to run for this; the stored status stays Sent.
  • When recorded payments clear the balance, the status moves to Paid on its own. Removing a payment moves it back to Sent. Cancelled invoices are never changed.
  • An overpayment shows as a negative balance. The printed "Balance due" never goes below zero.
  • A refund comes off what was paid, so a paid invoice goes back to Sent if it leaves a balance. A credit note comes off the total, so it can settle an invoice. An invoice credited down to nothing with nothing paid is not marked Paid; set its status yourself (usually Cancelled).
  • Archive is a shelf, not a status. An archived invoice keeps its status and is hidden from the list.

PDF downloads

PDFs are made on the server with Google Chrome (or Chromium), running without a window. If the server has no Chrome, everything else still works: the PDF buttons are simply hidden, and emailed invoices go in the body of the email instead of as an attachment.

If your site is hosted for you, ask your host to enable PDFs. If you run the server yourself:

  1. Install Google Chrome or Chromium on the server. The plugin looks in the usual places, such as /usr/bin/google-chrome and /usr/bin/chromium.
  2. Or, from the site's folder, run npx puppeteer browsers install chrome. The plugin finds that copy on its own.
  3. If Chrome is somewhere else, add CHROME_BIN=/path/to/chrome to the site's .env file.
  4. Restart the site. The server checks for Chrome once and remembers the answer until the next restart.
  5. Open an invoice. The Download PDF button now appears.

The PDF helper (puppeteer-core) is installed with Domma CMS as an optional package. If it is missing, run npm install puppeteer-core in the site's folder and restart.

Sending email

Sending uses your site's email settings. Set up the SMTP server under Settings > Email before you send an invoice.

Quotes

A quote is an invoice that has not happened yet - the same issuers, receivers, line items and VAT, with a validity date instead of a due date and its own number sequence (Q- by default, under the cog in Numbering).

  • Make one under Invoices > Quotes. New quotes fill their valid-until date from Quote validity in Defaults; past that date an undecided quote shows as expired and its accept link stops working.
  • Send it and the email carries an accept link. The client reads the quote online - no sign-in - and accepts by typing their full name (recorded with the date, it is the only signature you get) or declines with an optional reason. You are notified either way (the Quote decisions source). The newest emailed link is always the one that works; Copy accept link mints a fresh one, and any earlier link stops working.
  • Decisions by phone: set Accepted or Declined on the quote yourself. The record honestly shows no typed name.
  • Convert turns an accepted (or sent) quote into a draft invoice in one click. Everything copies across, the invoice takes the next invoice number, and the two stay linked - the quote shows its invoice and the invoice shows its quote. A quote converts once; a declined quote is duplicated instead.
  • Print, PDF download and the CSV export work as they do for invoices.

Self-billing

Self-billing is raising invoices on a supplier's behalf under a self-billing agreement - common where you pay many small suppliers (contractors, tutors, artists) and want one consistent paper trail. In the UK this is HMRC self-billing: the agreement is reviewed at least every 12 months, every document is marked SELF-BILLING, and the supplier must not also raise their own VAT invoice for the same supply.

  • Mark the supplier's receiver record as a self-billing supplier (cog > Receivers): the agreement date, the review date and their VAT number.
  • Make the invoice with Kind: Self-billing. It numbers in its own sequence (SB- by default), prints with the roles swapped - the supplier as issuer, you as receiver - marked SELF-BILLING, without your logo or bank block on their paperwork.
  • Payments record as normal; for a self-billed invoice, paid means paid out.
  • When a review date passes you are reminded (the Self-billing reviews source) until the date is moved on or self-billing is switched off for that supplier.

Notifications

Invoices adds four sources under Notifications > Sources. They go to Super Admins by default.

  • Overdue invoices: each morning (and when the site starts), one notice per sent invoice that is past due and not paid in full. It clears when the invoice is paid, cancelled, archived or given a new due date. On by default.
  • Payments recorded: a payment recorded against an invoice. Off by default.
  • Quote decisions: a client accepted or declined a quote from its emailed link. On by default.
  • Self-billing reviews: each morning, one notice per self-billing agreement whose review date has passed. On by default.

Permissions and roles

  • Invoices has no permission of its own in System > Roles.
  • Only Admins and Super Admins can use it. That includes anyone given the Admin role as an additional role.
  • Every admin sees every invoice. There is no per-user access.

Tips

  • Archive invoices you have sent rather than deleting them. Delete is permanent.
  • Deleting an issuer or receiver that invoices still use is allowed. The confirm tells you how many invoices use it, and those invoices are left without a name to show.
  • Use Duplicate for repeat work: you get a fresh draft with the next number and today's date.
  • Leave the invoice number blank unless you need a specific one.
  • Drafts of unsaved forms are kept per browser, so a draft started on one computer will not appear on another.

Limitations

  • Line item prices are always net. VAT is one rate per invoice, applied to the total.
  • The editor offers three currencies: GBP, EUR and USD.
  • Payment methods are a fixed list.
  • PDFs need Chrome on the server (see PDF downloads).
  • There is no public invoice page. Invoices are only reachable in the admin, or by email. (A quote's accept page is the one public page, reachable only by its emailed link.)
  • A credit note is an entry on the invoice it corrects, not a separate numbered document.