GenerateMyInvoice

Web Developer Invoice: Line Items, Milestones and Examples

Websites are billed in stages, then maintained for years. Your invoices should reflect both.

Laptop with code editor and a web development invoice on the screen

Web development projects have a pattern: a long build that's easy to underbill, followed by maintenance that's easy to forget to bill at all. Good invoicing handles both.

Structure the build in milestones

A typical fixed-price website might be billed like this:

Milestone Share When
Deposit 30–50% On signing, before work starts
Design approval 20–30% When the client signs off designs
Development complete 20–30% When the site is on staging for review
Launch 10–20% When the site goes live

Each stage gets its own invoice. The client knows what's coming, and you're never more than one stage exposed. See deposit invoices for the first one.

Line items that explain themselves

Vague: Website development: $6,000.

Clear:

Description Qty Rate Amount
Milestone 2: design approval (home, about, services, contact, blog templates) 1 $1,800.00 $1,800.00
Additional template: case study page (change request CR-03, approved 14 Aug) 1 $450.00 $450.00
Total $2,250.00

Referencing the milestone and any approved change requests (with dates) prevents the "I thought that was included" conversation.

Hourly work

For bug fixes, small features and support, hourly billing is normal:

Support and fixes, September 2026: 7.5 hours at $90/hour. Includes: contact form spam fix (1.5 h), WooCommerce update and testing (3 h), new staff page (3 h).

More on formatting time in invoicing for hours worked.

Third-party costs: hosting, domains, plugins

Decide whether you pass these through (client pays the provider directly, best for clarity and ownership) or resell them (you pay and invoice the client, usually with a margin for managing it).

If you resell, list each clearly:

Description Qty Rate Amount
Managed hosting, Oct 2026 – Sep 2027 12 $25.00 $300.00
Domain renewal: example.com (1 year) 1 $18.00 $18.00
Premium form plugin license (1 year) 1 $59.00 $59.00

Make sure the client knows these renew annually, and that the domain is registered in their name. Holding a client's domain hostage in your account is the fastest way to a bad review.

Maintenance retainers

After launch, offer a monthly plan: updates, backups, uptime monitoring and a set number of support hours. Invoice on the same date every month:

Website care plan, October 2026 (updates, backups, monitoring, up to 2 hours support): $150.00

Unused hours usually don't roll over. Say so in the agreement. See retainer invoices.

Tax notes

  • US: web development services are not taxed in most states, but a number of states tax some digital services, software or hosting. Check your state and, for some states, the client's.
  • UK and EU: if you're VAT-registered, standard VAT applies to domestic clients. Services to business clients abroad are often outside the scope of UK VAT or subject to the reverse charge in the EU. See invoicing international clients.

Milestone invoice ready in three minutes, with your logo and the client's project reference.

Use the Minimal template

Protecting yourself

  • Don't hand over admin access or transfer files until the final invoice is paid, if your contract allows it. State this in the contract, not as a surprise.
  • Put the launch milestone before launch, not after. Once a site is live, urgency on the client side disappears.
  • Invoice change requests as they're approved, or at the next milestone, rather than at the end.
Hafiz

Hafiz runs GenerateMyInvoice and writes its guides on invoicing, payment terms and getting paid on time.

This guide is general information. For decisions about tax or legal action, check with an accountant or lawyer where you work.