Home  ›  Blog  ›  invoicing  ›  Billing Software for Linux: The Whole Monthly Cycle, Not Just the PDF
invoicing

Billing Software for Linux: The Whole Monthly Cycle, Not Just the PDF

Recurring invoices, sending, chasing, matching deposits against the bank, and a year-end file your accountant will accept — walked end to end on a Linux desktop, with a worked example from one quarter of a small consultancy.

In this article
  1. Key takeaways
  2. Step 1 — raise the month's invoices without retyping them
  3. Step 2 — send them, and know that you did
  4. Step 3 — see who has not paid, in one number
  5. Step 4 — match the money to the invoices
  6. A worked example: one quarter, end to end
  7. Step 5 — hand over something an accountant can read
  8. Where the file lives, and working from two machines
  9. Estimates, agreements and the work before the invoice
  10. Subscription billing tools versus a desktop program
  11. The bottom line
  12. FAQ

Billing is not a document, it is a loop. Raise the invoices, send them, notice who has not paid, chase them, match the payments against the bank, and hand a clean set of figures to whoever does your tax return. Most comparisons of billing software for Linux stop at "can it make a PDF," which is the easiest part of the job and the only part that finishes by itself. This walks the whole loop on a Linux desktop, with the real screens.

Key takeaways

  • Recurring billing is the feature that decides this, not invoice design. If you bill the same clients monthly, a tool that cannot repeat a schedule will cost you an evening every month.
  • Matching payments to invoices is where the time goes. Bank statement import turns that from typing into checking.
  • A worked example below runs one quarter of a small consultancy end to end: nine invoices, $9,120 collected, $1,635.44 of costs, and the exact figure that lands on the tax form.
  • Runs offline on a Linux desktop from a .deb or an AppImage, one payment of $149.95 for Windows, Mac and Linux together.
Invoice list on Linux grouped by month: September 2026 $995.00, August 2026 $5,370.00, with one overdue row flagged red
Invoices grouped by year and month with per-group totals, captured on Ubuntu 26.04.

Step 1 — raise the month's invoices without retyping them

A consultancy billing six clients has roughly the same six lines every month: a hosting retainer, a support block, whatever extra work happened. Typing that six times is the thing people quietly stop doing on time.

Two features remove it. A recurring schedule attached to a customer regenerates their invoice on a cadence, pre-filled with their monthly rate. Bulk creation takes a selection of customers and produces one invoice each in a single pass, which you then edit individually where the month differed. Either way the numbering is continuous and the dates are the dates you set, not the date you happened to press the button.

Step 2 — send them, and know that you did

Invoices go out as PDFs, either through your own SMTP account or handed to your desktop mail client. Because the app holds the connection itself, there is no per-email charge and no sending limit imposed by a plan tier. The status moves from draft to sent automatically, which matters for the next step: an invoice that was never sent and an invoice that was sent and ignored are different problems, and only one of them is the client's fault.

Step 3 — see who has not paid, in one number

This is the screen that earns its place. The dashboard separates overdue from unpaid but not yet due, because chasing someone whose terms have not expired is how you annoy a good client.

Dashboard on Linux: overdue $1,725.00 from one customer, unpaid not yet due $4,205.00 across three customers, income $9,120.00, net profit $7,484.56
Overdue and not-yet-due are counted separately. The "needs a nudge" tab lists the customers behind each figure.

Step 4 — match the money to the invoices

Export a CSV or OFX file from your bank and import it. The parser recognises Chase, Bank of America, Wells Fargo, Amex, Capital One, Discover, US Bank, Navy Federal, USAA, Citi, Synchrony, PayPal, Stripe, Square, Venmo and Cash App exports, plus any CSV with date, description and amount columns. Rows arrive categorised where the description makes it obvious and flagged for review where it does not, so the work is confirming rather than typing.

Imported bank transactions on Linux showing ACH credits from named customers with categories assigned
Imported deposits. Only the rows the parser could not classify need a decision.

The mistake that costs people real money here is double counting. Photograph a receipt, then import the bank statement that receipt appears on, and the same expense is now in the books twice — which understates profit, and quietly overstates a deduction on the tax return. The app pairs them on amount, a three-day window and merchant text, and lets you drop the bank side while keeping the receipt image. It is off by default, because cash receipts never appear on a statement and blanket-excluding receipts would delete real deductions.

A worked example: one quarter, end to end

These are the figures from the demo file in the screenshots above — a two-person web and systems consultancy, fictional, billing six clients. We ran the whole quarter through the Linux build to produce them: the invoices were raised in the app, the deposits were imported as bank rows, and every screenshot on this page is that same file, captured on Ubuntu 26.04.

ItemAmountWhere it comes from
Invoices raised, July–September$11,840.00Nine invoices, grouped by month
Collected and matched to deposits$9,120.00Bank import, seven deposits
Overdue at the period end$1,725.00One invoice, one client
Unpaid but not yet due$4,205.00Three clients inside terms
Business costs$1,635.44Server hosting, hardware, fuel, insurance, accountant
Net profit for the period$7,484.56Income less taxable expenses

The number that matters is the last one, because it is the one that ends up on a tax form. Note that it is derived from collected income, not invoiced income — $1,725 of that quarter's billing is still outstanding and is not counted as profit you have earned in cash terms.

Step 5 — hand over something an accountant can read

At year end the same data produces a Schedule C summary with IRS line numbers printed against each category, a Schedule E report if you also hold rentals, a sales tax report grouped by state and by rate, and import files for TurboTax, QuickBooks and Xero. The forms are published by the IRS — Schedule C and Schedule E — and printing the line numbers is deliberate, so the figures can be checked rather than taken on trust.

Tax Prep on Linux showing the set up, review and download steps with per-category income and expense breakdowns
Tax Prep on Linux: set up the year, review the categorised figures, then download the accountant's file.

Where the file lives, and working from two machines

Everything above is held in one SQLite file under your home directory. That has a practical consequence people ask about before they commit: your existing backup already covers it. If you run restic, borg, rsync or a Timeshift schedule over $HOME, your books are in it, versioned, with no extra configuration and no separate vendor to trust.

If you work from a desktop and a laptop, or a desktop and an Android phone on site, there are two ways to keep them level. WiFi sync pushes between two devices on the same network with no account involved at all — the desktop serves, the other device connects to it directly. Google Drive sync uses your own Drive as the meeting point, which works when the two machines are never on the same network; it is an optional paid add-on, and manual backup and restore stay free whether or not you take it.

Neither route puts your books on our servers. We could not produce a copy of your data if you asked us to, which is the same reason we cannot recover it for you if you lose the file and have no backup — so take the backup.

Estimates, agreements and the work before the invoice

Most consultancy billing starts before the invoice exists. Estimates are the same document type with a different status: build one with line items and sections, send it as a PDF, capture the client's signature on screen, and convert the approved estimate into an invoice without retyping the lines — the sections, quantities and prices carry over, including fractional hours, so half an hour of diagnosis stays half an hour rather than rounding up to one.

Service agreements cover the recurring side: a monthly retainer with an agreed rate, a term and a renewal date, signed by both parties and stored with an audit trail. If you bill retainers, that document is what a recurring schedule should be pointing at.

Subscription billing tools versus a desktop program

Both are legitimate. The honest difference is what you are buying and what happens when you stop.

Hosted billing serviceDesktop program on Linux
Cost over five years$900–$4,200 at $15–$70 a month$149.95, once
Works with no connectionNoYes
If you stop payingAccess ends, including to past invoicesIt keeps working
Client-facing payment portalUsually includedNo — payment links on the invoice instead
Several staff at onceYesNo — one machine, or sync between your own devices
Your dataOn their servers, exportableA SQLite file in your home directory

If you have staff who all need to be in the billing system simultaneously, or you want customers paying through a hosted portal, buy the subscription — it does something this cannot. If you are one person or two, bill on a monthly cycle, and want the tool to keep working whatever happens to the vendor, the arithmetic and the failure modes both favour the desktop.

The bottom line

The part of billing that takes the time is not making the invoice, it is the four steps after it: repeating it next month, noticing it was not paid, matching the deposit when it arrives, and turning twelve months of that into something your accountant will accept. A Linux desktop can do all four locally, offline, for one payment — and the same licence covers your Windows or Mac machine if you have one of those too.

Download the Linux build — a .deb for Ubuntu and Debian, an AppImage for everything else. If you want the install detail and the system requirements first, read invoicing software for Linux.

FAQ

Can it do recurring monthly billing on Linux?

Yes. A recurring schedule regenerates a customer's invoice on a set cadence, pre-filled with their monthly rate, and bulk creation raises one invoice per selected customer in a single pass. Both work identically on Linux, Windows and Mac.

Can it email invoices directly, or does it just make PDFs?

It sends them, using your own SMTP account — Gmail, Fastmail, your host's mail server, whatever you already use. Because the connection is yours, there is no per-email cost and no plan-tier sending cap. It can also hand the PDF to your desktop mail client instead.

Does it import bank statements on Linux?

Yes, and it is the same parser as the other platforms: CSV and OFX or QFX from the major US banks and card issuers, plus PayPal, Stripe, Square, Venmo and Cash App exports, and any generic CSV with date, description and amount columns. PayPal's PDF statements are also parsed, since PayPal only issues monthly statements in that format.

Will it take payments from my customers?

Not directly. You can put a Stripe, PayPal, Venmo, Zelle or Cash App link on the invoice and record the payment when it arrives, but there is no hosted checkout, because there is no server involved. If a customer-facing payment portal is a requirement, a hosted service is the right choice.

What happens to my invoices if I stop using the app?

Nothing. The data is a SQLite file in your home directory and the application keeps running whether or not you ever hear from us again. Every report exports to PDF, CSV or XLSX, and there is no account to be locked out of.

Is the Linux version behind the Windows one?

No. It is built from the same source at the same version number, currently 5.28.7, with the same features and the same database format. A file created on Linux opens on Windows and Mac.

Run a service business?

Daily Invoice Maker handles invoices, estimates, expenses, route maps, agreements, and tax reports — offline, on Windows, Mac, Linux + Android. Free demo, lifetime license available.

Download free →