bdevy.

Guide · 13 min read

HVAC Invoicing Software: Create, Send & Track HVAC Service Invoices

What HVAC invoicing software should do beyond producing a PDF: job-to-invoice, estimate conversion, payment tracking, aging and job profitability. With a working demo.

Published 12 September 2026 · BDEVY

# HVAC Invoicing Software: Create, Send & Track HVAC Service Invoices

Most conversations about invoicing software start in the wrong place — with the document.

The document is the easy part. Any word processor produces a tidy invoice. The difficulty in an HVAC business is everything around it: a technician finished a capacitor replacement at four o'clock on Tuesday, and the question is how many days pass before the customer is asked for the money, how much of what actually happened on site survives the journey to the invoice, and whether anyone notices if the customer never pays.

That gap — between work finished and money asked for — is the part worth fixing, and it is almost always the cheapest part of the cycle to shorten. A job finished Tuesday and invoiced the following Monday is six days late before the customer has done anything slowly at all.

Try the BDEVY HVAC invoicing demo → — a working ledger with completed jobs waiting to be billed, approved estimates ready to convert, part-paid invoices and a real aging report. No signup.


What is HVAC invoicing software?

It is software that connects the chain a service business actually runs on:

Job → work performed → parts and labour → invoice → payment → customer history

A generic invoice generator holds a customer, a list of lines and a total. That is enough for a consultant billing for hours. It is not enough for a contractor, because an HVAC invoice has to answer questions a line-item list cannot:

  • Which technician attended?
  • Which property, out of the four this landlord owns?
  • Which system — the upstairs air handler or the downstairs one?
  • What was the serial number, and is it still under warranty?
  • Which job number does this relate to?
  • Was this promised on an estimate the customer already approved?
  • Is this covered by their maintenance agreement discount?

Every one of those is a normal question, and every one of them turns into a phone call when the invoice cannot answer it. The job of the software is to carry that context from the van to the customer without anybody retyping it.


Why HVAC contractors need more than a generic invoice generator

Here is the practical difference. A generic tool stores this:

Invoice 1043 · John Smith · $485 · Repair

An HVAC system stores this:

Invoice INV-1043 · John Smith · 123 Main Street (Home, one of two properties)

Carrier 24ABC6, 3 ton, serial CA-5512943, installed 2016-04, in the side-yard location

JOB-4271, attended by Mike Johnson, Tuesday

Reported: no cooling, outdoor unit humming, fan not turning

Performed: failed run capacitor reading 18.2 µF against a 45/5 rating. Replaced, verified compressor and fan amp draw within nameplate, temperature split 19°F on return.

Recommended: unit is nine years old and the contactor is pitting. Monitor at the next visit.

The second version is not decoration. Four things follow from it that cannot follow from the first:

  1. The customer argues less. An invoice that describes the fault, the measurement and the fix reads as work. An invoice that says "Repair — $485" reads as a number.
  2. The next technician is not starting from scratch. Two years later somebody is standing in front of that same condenser, and the history is attached to the serial number rather than buried in a folder under the customer's name.
  3. The replacement conversation has evidence behind it. Age, repair count and lifetime spend on that specific machine are a far better argument than a hunch.
  4. You can tell whether the job made money. Only if cost was recorded alongside price — which most invoicing tools never ask for.

That last one is worth pausing on. A system that stores only what you charged cannot report a margin. It can tell you revenue is up, which is not the same thing as telling you the business is making money.


What should HVAC invoicing software include?

Invoice creation that starts from something

The single most valuable feature is the one nobody demos: the invoice should already partly exist before anybody opens it. Raised from a completed job, it arrives with the customer, the property, the system, the parts the technician recorded using, the hours on site and the write-up already in place.

The alternative is retyping a paper ticket, which costs time and introduces errors in the one document you least want errors in.

HVAC line items with categories

Labor, parts, equipment, materials, permit, disposal, diagnostic, service fee, maintenance. Categories are not administrative tidiness — they are what makes job costing possible later, because a permit fee and a compressor behave completely differently in a margin calculation.

Two numbers per line, not one

Cost and price. What you paid and what you charged. The customer sees one; the office sees both. This is the difference between an invoice system and an invoice generator.

Tax that is configurable, not hard-coded

Whether HVAC labour is taxable varies by state and often by county. Some states tax repair labour but exempt installation labour on a capital improvement. Some exempt everything on a residential replacement. Any software that applies one universal rule is wrong somewhere, so what it should carry is a rate per jurisdiction and a taxable flag per line.

Confirm your own treatment with your accountant or your state revenue department. This is a description of how software should be built, not tax advice.

Discounts that are visible

A discount the customer cannot see is a price cut you get no credit for. If you are giving 15% because they hold a maintenance agreement, the invoice should say so — that line is the single best advertisement the agreement has.

Payment tracking that handles reality

Full payments, part payments, several payments against one invoice, and the ability to record a payment against the specific invoice rather than against the customer's balance in general. Payment status should be derived from the total, the payments and the due date — never stored. A stored status goes stale the moment a cheque clears or a date passes.

Aging, and the follow-up behind it

Current, 1–30, 31–60, 61–90, 90+. Grouped by how late the money is, because that is the order it has to be worked.

Reporting that separates revenue from tax

Sales tax is collected on behalf of a taxing authority and passed straight through. It is not revenue. Counting it inflates the top line and understates every margin below it.


The job-to-invoice workflow

This is the flow worth building everything else around.


Job completed on site
        ↓
Technician submits: work performed, parts used, hours, recommendation
        ↓
Office reviews — pricing, tax, discount, anything the technician could not know
        ↓
Invoice generated (customer, property, system, job number already attached)
        ↓
Invoice sent — email, SMS or portal
        ↓
Payment recorded against that invoice
        ↓
Customer and equipment history updated

The fragile link is the second one. Everything downstream waits on the technician's write-up, and a completion form that asks for twenty fields on a phone in a driveway is a form that gets filled in from memory that evening — which is where the errors come from.

Ask for exactly what the office cannot invoice without: what was done, what was used, how long it took, and what should happen next. Nothing else.


The estimate-to-invoice workflow

The second flow, and the one with the most money sitting in it.

An approved estimate is work the customer has already agreed to buy. If converting it into an invoice means rebuilding it line by line, two things happen: it takes long enough that it gets postponed, and the numbers drift.

Conversion should copy the customer, the property, the equipment, every line, every price and the tax treatment, and then let you edit before sending. The invoice remains editable on purpose — jobs change on site — but the default has to be identical to what was approved, because an invoice that quietly differs from the estimate is the fastest way to turn a sold job into an argument.

If you are still building estimates by hand, that is the upstream half of this problem: how to estimate an HVAC job and the HVAC estimating software guide.


HVAC invoice line items

A repair invoice and a changeout invoice are different documents with the same skeleton.

CategoryWhat goes in itTypically taxable?
DiagnosticService call, after-hours diagnosticOften not — it is labour
LaborService, installation, overtime hoursVaries by state
PartsCapacitor, contactor, blower motor, igniterUsually yes
EquipmentCondenser, furnace, coil, thermostatUsually yes
MaterialsRefrigerant, line set, filters, pad, whipUsually yes
PermitMunicipal mechanical permitUsually a pass-through
DisposalOld equipment removal and recoveryVaries
Service feeTrip chargeVaries
MaintenanceAgreement visits, tune-upsVaries

The "typically" column is a starting point for a conversation with your accountant, not a rule. Tax treatment is jurisdictional.

A worked repair invoice

ItemQtyUnit priceAmount
Diagnostic / service call1$129.00$129.00
Run capacitor (dual)1$118.00$118.00
Service labor1.5$125.00$187.50
Subtotal$434.50
Discount — maintenance agreement, 10%−$43.45
Sales tax, 7.25% on $106.20$7.70
Total$398.75

Two details in that table are doing real work.

The discount comes off before tax. The customer is only paying the reduced amount for the goods, so tax is due on the reduced amount. The taxable items — the capacitor at $118 — fall to $106.20 once the 10% discount is spread proportionally, and tax is charged on that.

Only the capacitor is taxed. The diagnostic and the labour are not, in this jurisdiction. That is why a taxable flag per line matters more than a tax rate per invoice.

Run your own numbers: HVAC invoice calculator →


HVAC labor and parts pricing

Four words get used interchangeably and should not be.

  • Cost — what you paid. The capacitor cost $22.
  • Price — what you charged. $118.
  • Markup — profit measured against cost. $96 ÷ $22 = 436%.
  • Margin — profit measured against price. $96 ÷ $118 = 81.4%.

Markup and margin are different numbers describing one transaction, and they are never equal above zero. A job priced at a 60% markup is running a 37.5% margin. Pricing by one while budgeting by the other is the most common arithmetic error in contracting, and it costs a percentage point of profit on every job.

The full treatment is in HVAC markup vs margin, and the conversion is in the markup and margin calculator.

On labour specifically, there are also two rates and a system needs both:

  • Customer labour rate — what appears on the invoice. Say $125/hr.
  • Burdened labour cost — wage plus payroll taxes, workers' compensation, insurance, vehicle and non-billable time. Say $45/hr.

Both are true. Neither is the other. Costing a $28/hour technician at $28/hour understates a sixteen-hour job by well over a hundred dollars before overhead is even considered.


HVAC invoice payment tracking

Four states, derived rather than stored:

StatusCondition
UnpaidSent, nothing received, still inside terms
Partially PaidSome money received, a balance remains, still inside terms
PaidBalance is zero
OverdueA balance remains and the due date has passed

Order matters. Paid beats overdue — an invoice settled after its due date is paid, not overdue, and showing it in red is how an aging report loses its credibility. Overdue beats partially paid — an invoice that is both late and part paid is overdue, because that is the number that has to get worked.

An aging example

BucketInvoicesBalanceWhat it means
Current14$11,830Not yet due
1–30 days4$2,164Just late — usually forgotten, not refused
31–60 days2$3,182Needs a phone call
61–90 days2$1,500Escalate
90+ days3$3,829A decision, not another reminder
Total25$22,505

These figures are from the demo ledger — invented, and not a benchmark for anything. What matters is the shape: money gets harder to collect as it ages, which is why age beats size when deciding what to work first. A $180 invoice at 120 days is a harder conversation than a $4,000 one at eight days.

HVAC accounts receivable calculator →


How to reduce unpaid HVAC invoices

In rough order of how much difference each one makes:

  1. Invoice sooner. The gap between finishing and sending is time added to every single payment, and it is entirely within your control.
  2. Make it payable online. An invoice that can be settled the moment it is read gets paid sooner than one requiring a cheque book.
  3. State the terms on the invoice. Net 15 means nothing if the customer never saw it.
  4. Document the work properly. Most disputes are not refusals — they are confusion about what was done.
  5. Automate the reminders. Not because reminders are clever, but because they have to happen every time without anyone remembering.
  6. Give follow-up an owner. "The office" chases nothing.
  7. Read the aging report weekly, and act on it rather than reading it.

What that will do to your collection rate depends on where you are starting from, and anyone quoting you a specific percentage improvement is guessing.


HVAC maintenance agreement invoicing

An active agreement is a scheduled invoice.


Agreement sold → recurring billing → visits delivered → history recorded → renewal

Splitting an annual price across a billing cycle has one trap worth knowing. $399 a year billed monthly is $33.25 exactly. $400 a year billed monthly is $33.333…, which cannot be invoiced. Twelve invoices at $33.33 collect $399.96 — four cents short. Trivial on one agreement, and it never reconciles until somebody puts the difference on the final invoice of the term.

More detail: HVAC maintenance agreement software.


HVAC invoicing software vs accounting software

Related, not identical, and the distinction saves a lot of wasted evaluation.

Field-service invoicingAccounting software
Organised aroundJobs, technicians, equipment, customersAccounts, periods, the ledger
HoldsWork performed, parts used, serial numbers, job numbersDebits, credits, reconciliations
Answers"What did we do for this customer, and did it make money?""What is our financial position?"
Used byThe office and the fieldThe bookkeeper and the accountant

You need both, and they should talk to each other. The normal arrangement is that invoices are raised in the field-service system — where the job context lives — and summarised into the accounting system for the ledger, reconciliation and tax.

Replacing your accounting software is rarely the right first move. Adding the layer it was never designed to hold usually is.


Where invoicing sits in the rest of the workflow

Invoicing is one component, and it works considerably better when it is not on its own:

BDEVY builds custom software across that whole chain rather than selling a seat in one product.


Try it

The demo is a complete invoice ledger for a fictional contractor: completed jobs waiting to be billed, approved estimates ready to convert, part-paid invoices, an aging report with real arrears in it, and gross margin on every job.

Nothing is delivered, nothing is charged and every customer in it is invented.

Open the HVAC invoicing demo →

hvac service software hvac business software hvac business management software hvac software for contractors

Turn missed calls into booked jobs

Every unanswered call gets a text back within seconds, every lead gets followed up, and the schedule fills without another person in the office.