Web developer invoice template

A web developer invoice template built around milestones, not mystery hours

Development invoices get held up when a client cannot map a number to something they signed off. Milestones, approved change requests, and pass-through costs each need their own line.

Build your web developer invoice template now

The line items below are pre-filled for this kind of work. Edit anything, add your amounts, and download the PDF — no account needed.

Drop logo or click to upload

PNG, JPG up to 2MB

$
$
$
$
$

Free — no signup required. 5 invoices/day limit.

What to include

A developer invoice should read like the project plan, not like a timesheet. The person approving it usually signed a scope document, so bill against that document.

  • Milestone or sprint, with what was delivered and when it was accepted
  • Approved change requests as their own lines, each with an approval date
  • Pass-through costs — hosting, domains, plugin and API licences
  • Deposit already paid, shown as a credit against the total

Hourly, fixed, or retainer

Most freelance developers run all three shapes at once: a fixed-price build, hourly for extras, and a monthly retainer once it ships. One invoice can carry all three as long as they are visibly separate.

  • Fixed-price milestones: name the milestone and the acceptance date
  • Hourly work: give the date range and what the hours went into
  • Retainers: state the month covered and the hours included
  • Never blend a fixed milestone and loose hours into a single line

Scope creep is a billing problem before it is a project problem

The reason developer invoices get disputed is almost never the rate. It is a line the client does not recognise, because the work was agreed in a chat thread three weeks ago and never priced. Every approved extra needs a paper trail that ends on the invoice, and the invoice is the last honest place to create one.

  • Quote out-of-scope work before doing it, even if the quote is one line in an email
  • Put the approval date on the change-order line so the client can find the thread
  • Pass-through costs should be listed at cost, or with the markup stated — hidden markup is what triggers audits of the whole invoice
  • If you bill the final milestone on handover, say on the invoice what handover includes: repository access, deploy credentials, and documentation
  • Keep maintenance on its own recurring invoice so it does not get renegotiated with the build

FAQ

Common questions

Should a web developer invoice hourly or per milestone?

Milestones for the defined build, hourly for anything outside it. Milestones are easier for a client to approve because they map to something delivered; hourly is the honest way to bill work whose size nobody knew in advance.

How do I invoice for scope creep without a fight?

Price it before you build it, then give it its own invoice line with the date it was approved. A change-order line the client can trace back to their own message gets paid; an unexplained increase in the hours line gets queried.

Should I invoice before or after handing over the code?

Common practice is a deposit up front, milestone payments during the build, and the final invoice due at handover — with repository access and deploy credentials transferring on payment. State that on the invoice so the sequence is not a surprise.

How should I bill hosting and third-party licences?

As separate pass-through lines, not inside your labour. If you add a management margin, say so. Clients rarely object to a stated margin and frequently object to discovering one.