Web Developer Invoice: Line Items, Milestones and Examples
Websites are billed in stages, then maintained for years. Your invoices should reflect both.

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 templateProtecting 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.


