Invoicara

Freelance Developer Invoice Template & Guide: Bill Code and Retainers

5 min readBy Invoicara

Colourful code on a computer monitor

Software work is rarely a single transaction. A build runs through phases, the scope shifts as the client learns what they want, and once the project ships there is often ongoing maintenance. That makes the invoice more than a payment request. It is how a freelance developer manages cash flow across a long build, prices change requests fairly, and turns one-off projects into recurring retainer income. Get it right and you are paid steadily through the project and beyond. Get it wrong and you are coding for free while waiting on a final payment that keeps slipping.

This guide covers how to invoice as a freelance developer: hourly versus milestone billing, deposits, retainers, scope changes, maintenance, and a sample developer invoice you can copy. It works for web and software developers.

What a developer invoice must include

A developer invoice needs the standard fields plus a few specific to project work:

  • Your name or business name, contact, and tax number where registered
  • The client's name and project title
  • A unique invoice number, issue date, and a clear due date
  • The milestone or work period being billed
  • An itemised description of the work done or the phase delivered
  • Hours and rate, or the milestone fee
  • Any change requests billed separately from the agreed scope
  • Any deposit or previous payments, subtotal, tax, and balance due

Naming the milestone or sprint keeps a long build's invoices clear and easy to approve. For the full anatomy of an invoice, see our invoice format and layout guide, and for the broader freelance picture our freelance invoice template guide.

Hourly vs milestone billing

Developers bill projects a few ways, and the invoice should match the agreement:

  1. Milestone / fixed-phase. Break the project into phases (design, build, testing, launch) with a price each, and invoice as each is delivered. Best for defined projects, and it keeps cash flowing as you progress.
  2. Hourly / time and materials. Bill the hours worked at your rate, often weekly or fortnightly. Best for open-ended work or where the scope is unclear. Show the hours and a short description of what was done.
  3. Sprint-based. For ongoing agile work, bill per sprint (often two weeks) at a fixed rate.

For most fixed projects, milestone billing earns more and protects your cash flow far better than waiting for a single payment at the end.

Sample developer invoice

Here is a milestone invoice for a web-app build showing the deposit credited.

Description Qty Unit price Amount
Milestone 2 — Backend API & database 1 $2,400.00 $2,400.00
Change request: add Stripe payments (6 hrs) 6 $80.00 $480.00
Third-party service setup 1 $120.00 $120.00
Subtotal $3,000.00
Tax (GST 10%) $300.00
Total $3,300.00
Less deposit applied (milestone 1) -$500.00
Balance due (Net 14) $2,800.00

The milestone is named, the change request is billed separately from the agreed scope with its hours shown, and the deposit is credited. That separation is what stops a client arguing that extra work was "part of the project".

Scope changes: bill them, do not absorb them

Lines of code on a computer monitor

Scope creep is the single biggest profit-killer in development. The client asks for "one small extra feature", then another, and suddenly you have built half a second project for free. Protect yourself:

  • Define the agreed scope in writing at the start, and reference it.
  • Bill change requests separately, with their own hours and a clear line on the invoice ("Change request: X, 6 hrs").
  • Quote a change before building it so the client approves the cost, not just the idea.

A developer who bills change requests cleanly earns far more than one who quietly absorbs them. Unagreed extras are a top entry in our common invoice mistakes guide.

Retainers and maintenance: the recurring win

The smartest move a freelance developer can make is to turn finished projects into recurring income. Once a site or app ships, it needs maintenance, updates, security patches, and support, and that is naturally a retainer:

  • Monthly retainer. A fixed fee for an agreed block of hours or a defined support scope, invoiced on the same day each month.
  • State what it covers ("up to 5 hours of updates and support per month, priority response").
  • Bill overage separately when a month runs past the included hours.

Retainers smooth out the feast-and-famine of project work and build predictable monthly revenue. For recurring-billing patterns, see our payment terms guide.

Deposits and source code

Development front-loads your time, so deposits are standard. Take 25 to 50 percent up front before you start, then bill by milestone or sprint. On larger builds, milestone billing means you are never carrying more than one unpaid phase at a time.

A note on source code and handover: agree upfront whether the client owns the code on final payment (usual for bespoke work) and hand over repositories and credentials only when the final invoice clears. That is your leverage, the same logic our contractor invoice guide applies to deliverables.

Tax for developers

A laptop on a wooden desk

Tax depends on registration and location:

  • In the UK, charge VAT (20 percent) once VAT registered.
  • In Australia, register for GST (10 percent) at A$75,000 turnover and quote your ABN on every invoice.
  • In the US, taxability of software and development services varies by state, and selling licensed software can be treated differently from custom development, so check your local rules.

Only charge tax you are registered to collect, show it on its own line, and put your tax number on the invoice.

Common developer invoice mistakes

  • Absorbing scope changes instead of billing them as separate line items.
  • No deposit or milestone billing, so you carry the whole build unpaid.
  • No maintenance retainer, leaving recurring revenue on the table.
  • Handing over code before the final invoice clears.
  • Sending editable files. Always send the invoice as a PDF.

Make a developer invoice in 60 seconds

You do not need project-management software to bill professionally. Invoicara's free invoice generator lets you itemise milestones, hours, and change requests, apply a deposit, set Net 14 terms, and export a clean PDF. Save your details so each milestone or monthly retainer invoice takes under a minute. No sign-up, no watermark, free forever.

For related work, see our freelance designer invoice guide and freelance invoice template guide. For the basics, our complete guide on how to make an invoice covers every field. Bill by milestone, charge for every change request, set up a maintenance retainer, and your development business gets paid through the project and long after it ships.