What actually belongs on a contractor invoice

The fields that get an invoice paid, the ones some states require, and the ones that quietly cost you money when they're missing.

An invoice has one job. Everything on it either helps that happen or is decoration — and a surprising number of invoices are missing something that would have got them paid a week sooner.

The parts that have to be there

Your business identity. Legal business name, address, phone and email. If you carry a license, the number belongs here; several states require it on invoices and contracts, and it is a credibility signal even where it is not required.

The customer, correctly. For residential work, the person responsible for paying. For anything commercial, the entity name and, where you know it, the person or department who processes invoices. An invoice addressed to a site contact rather than an accounts payable inbox can sit for a month without anyone doing anything wrong.

An invoice number. Sequential and unique. It is how the customer references the payment, how you find it later, and how your accountant reconciles the year.

The issue date and the due date. Both. Terms alone leave the customer to do a conversion they will not do.

A description of what was done. Itemised enough to be checkable. “Plumbing work — $2,400” invites scrutiny. Lines for the water heater, the expansion tank, the permit and the labor do not.

The amounts. Line totals, subtotal, tax if applicable, any discount, deposits already paid, and the balance now due.

Payment instructions. Precisely enough to act on without calling you.

The parts people leave off

A credited deposit. If they paid up front, show total, deposit, balance. A customer doing subtraction is a customer checking your work.

The estimate or job reference. They approved a number once. Let them line the documents up.

Tax handled per line. Many states tax materials but not installation labor, some tax both, a few tax neither for certain work. Applying one rate to a whole invoice is the kind of error that is small every time and constant. Mark taxability per line and let the document show the basis.

Change orders, itemised. Any difference from the estimate should trace to something the customer approved in writing.

Warranty terms. Manufacturer coverage and your workmanship coverage are different things with different lengths, and customers routinely conflate them. Stating them separately on the invoice prevents a call in year six.

Serial and model numbers, for installed equipment. The customer needs them to register a warranty, and you will want them if there is a claim.

Getting the arithmetic right

This sounds trivial until you have sent an invoice that does not add up. The usual culprits:

  • Rounding drift. Rounding each line and summing gives a different answer than summing and rounding once. Over a dozen lines it shows.
  • Discount and tax order. A discount applied after tax collects tax on money nobody paid. Applied before, the taxable base has to be reduced proportionally across the taxable lines.
  • Deposits taken from the wrong base. A percentage deposit off the pre-tax subtotal is a different number from the same percentage of the total.

None of these are exotic, and all of them are the kind of thing a customer spots. An invoice that does not reconcile costs you the payment delay and some of the trust you built doing the work well.

Formatting is not vanity

A clean PDF with your license number, itemised lines and a due date gets paid faster than a figure in a text message. Not because customers are fussy, but because it reads like a business with a process — and people pay those first, especially when several bills are competing for the same attention.

Send it the day you finish

Every other item on this list is worth less than this one. The invoice that goes out the same day gets paid materially faster than the identical invoice sent at month end, and it costs nothing to do.

Put this on paper

Build the estimate or invoice in your browser and export a PDF. Free, uncapped, and nothing you type is uploaded.

Open the builder