Web developer invoice template

Web Developer Invoice Template

Development work can be difficult to describe on an invoice without either saying too little or giving the client your entire project history.

The useful middle ground is simple: describe the work in terms the client already recognises. A client can then connect each charge to part of the project without needing to understand your codebase.

No signup · Free PDF download.

Hourly or fixed price?

Bill the agreement you actually made. If you agreed to $80 an hour, showing the hours makes sense. If the client agreed to $4,000 for a completed milestone, you don't need to invent an hourly breakdown just to make the invoice look detailed.

Write “Checkout development — milestone 2” rather than reconstructing 37.4 hours after the fact. The invoice should match the commercial agreement, not create a new one.

Better descriptions

“Development services” doesn't tell the accounts team much. You don't need a paragraph for every line — just enough information that the charge makes sense six weeks later.

  • Frontend development — September
  • Stripe checkout integration
  • User authentication API
  • Mobile responsiveness fixes
  • Production deployment
  • Monthly website maintenance
  • Additional revisions requested September 8
  • Website redesign — final milestone

Hosting and other expenses

Keep pass-through costs separate. If you paid for a domain, hosting plan, stock asset or another project expense on the client's behalf, don't quietly bury it inside your development fee. A separate line makes the total easier to understand — “Development — final milestone, $2,500” and “Hosting — annual plan, $180”.

That also gives you a cleaner record of what was your fee and what was an expense. Tax and reimbursement treatment varies by jurisdiction, so check what applies to your transaction before you issue.

Payment terms

“Due soon” isn't a payment term. Use what you agreed and show the actual date: “Payment terms: Net 15” and “Due date: October 5, 2026”. The client shouldn't need a calendar to work out when you expect the money.

If scope grew — extra revisions, rush work, a feature nobody quoted — agree the charge with the client before the invoice goes out. Finding it on the bill is how a good project ends badly.

Before you send it

Look at the invoice once as if you worked in your client's accounts department rather than on their development team. If the answers are all there, the invoice is probably doing its job.

  • What the project was.
  • What period or milestone is being billed.
  • Why each amount is there.
  • When payment is expected.
  • Where to send the money.

Using the generator

The example below opens in the editor with the line items already in place — change the client, work, rates and dates, then download the PDF. The Compact layout fits many short lines on one page, which suits ticket-level detail. Put the PO in its own field, and write payment instructions as “Bank: …”, “Account: …” and “SWIFT: …” on separate lines; they print as a table.

With a free account, numbering is handled for you: the number is assigned at issue time, one caller at a time, so a retry or a second tab cannot produce a duplicate.

A worked example

From
Kai Brenner, web development
To
Orbital Labs Inc.
Number
INV-0112
PO reference
OL-ENG-0092
Issued
10 Sep 2026
Due
10 Oct 2026 (Net 30)
DescriptionQtyRateAmount
Frontend development32$80.00$2,560.00
API integration8$90.00$720.00
Production deployment1$250.00$250.00
Subtotal
$3,530.00
Total
$3,530.00

The exact numbers aren't important — notice the descriptions. Fractional hours are fine too: 12.5 × 90 is 1,125, rounded to the currency's precision.

Questions

Should I invoice per sprint or per milestone?

Whatever the contract says. Sprint invoices are predictable and small; milestone invoices are larger and depend on acceptance. Do not mix both on one invoice.

Can I bill fractional hours?

Yes. Quantity accepts decimals; 12.5 hours at 95 is 1,187.50, rounded to the currency’s precision.

How do I pass through hosting or API costs?

Add them as their own lines at cost, with the period, and set Tax % to 0 if you do not tax them. Ask your accountant whether that is right for your case.

Can I generate invoices from an API?

Not today. Invoira is a form and a PDF. If you want to script invoices, a spreadsheet importer is on the roadmap.

Does the PDF have selectable text?

Yes. It is built on your device from the same document as the preview, so numbers and totals can be copied and machine-read.

Your turn

Turn this example into your invoice.

The line items are already there. Change the client, work, rates and dates, then download the PDF.

Updated 2026-09-10. Invoira formats what you enter; it does not give tax or legal advice.