Web development invoice template
Development invoices are usually disputed over two things: hours nobody agreed to, and “bugs” that are actually new features. This invoice bills milestones, shows overage against an agreed estimate, and states what the warranty covers before anyone needs to look it up.
Free to copy and use. Nothing to download, no email required. Replace anything in [SQUARE BRACKETS] with your own details.
Milestones beat monthly for fixed-scope work
Bill against completed, acceptance-tested milestones rather than the calendar. It ties your cash flow to progress the client can see, and it puts a natural checkpoint in the project every few weeks. For ongoing work, a monthly retainer with a stated hour bank works better — but say what happens to unused hours, because “they roll over forever” is how a retainer quietly turns into a liability.
Warranty is a fixed window covering defects only
Give [30] days after launch during which you fix, at no charge, anything that does not do what the accepted specification said it would. Anything outside that definition — a new requirement, a third-party API changing, content edits, a browser released after the agreed support matrix — is billable work. Writing this on the invoice means you are quoting a rule you already published rather than inventing one under pressure.
Pass-through costs go in the client's name
Hosting, domains, paid plugins, SSL, transactional email, error monitoring: buy them on the client's account wherever you can. When you cannot, bill them at cost with the receipt and say plainly that they renew annually. The worst version of this is a developer personally holding six subscriptions for a client who has stopped replying to emails.
The invoice template
Copy the whole thing, or select the parts you need. The numbers and dates are examples — change them to yours before sending anything.
Web development invoice template
INVOICE
[YOUR NAME OR STUDIO NAME] — Web development
[Street address] · [City, State/Province, Postal code]
[you@yourstudio.com] · [+1 555 000 0000]
[Business number / Tax ID / VAT number]
BILL TO
[Client legal entity name]
Attn: [Approver name], [Job title]
[Billing address]
Accounts payable: [ap@clientcompany.com]
Invoice number: [INV-0003]
Purchase order / reference: [PO-0000]
Project: [Marketing site rebuild — milestone 2 of 3]
Scope reference: [SOW dated 2026-01-08, approved by [name]]
Issue date: [2026-03-02]
Payment due: [2026-04-01] — Net 30 from issue date
------------------------------------------------------------------
DESCRIPTION QTY RATE AMOUNT
------------------------------------------------------------------
Milestone 2 — [Templates and CMS: 1 $[6,000.00] $[6,000.00]
9 page templates built to the
approved designs, CMS models and
editor roles configured, content
migrated from [old CMS], staging
deployed and handed over for UAT.
Accepted by [name] on [2026-02-27].]
Approved change request CR-002 — 14 $[110.00] $[1,540.00]
[multi-language routing, not in the
original SOW. Estimated 12–16 hours,
approved in writing on [2026-02-11].]
Third-party services, billed at cost 1 $[214.00] $[214.00]
[hosting [plan] 12 months $[144.00];
error monitoring 12 months $[70.00].
Purchased in [Client]'s name where
possible; receipts attached; renews
annually on [2027-02-20].]
------------------------------------------------------------------
Subtotal $[7,754.00]
[Sales tax / VAT @ 0%] $[0.00]
------------------------------------------------------------------
AMOUNT DUE $[7,754.00]
------------------------------------------------------------------
MILESTONE SCHEDULE (for reference)
M1 Discovery, architecture, environments $[4,000.00] PAID [2026-01-20]
M2 Templates and CMS $[6,000.00] THIS INVOICE
M3 Launch, redirects, analytics, handover $[5,000.00] Due on acceptance
WARRANTY
For [30] days after production launch I will fix, at no charge, any
defect where the delivered software does not behave as the accepted
specification describes, on the supported browsers listed in the SOW.
Not covered by the warranty, and billable at $[110.00] per hour: new or
changed requirements; content and copy edits; breakage caused by changes
made by [Client] or another supplier; failures of third-party services
and APIs; browsers or devices outside the agreed support matrix; and
anything caused by declining a recommended update.
CODE AND CREDENTIALS
On receipt of payment in full, [Client] owns the custom application code
written for this project, and I will transfer the repository, the
production credentials, and the deployment configuration.
Open-source and third-party components remain under their own licences.
Any pre-existing tooling, libraries, or boilerplate of mine that is
included is licensed to [Client] perpetually, worldwide, and royalty
free for use in this project — but is not assigned.
PAYMENT TERMS
1. Payment is due in full by [2026-04-01], being 30 days from issue.
2. Estimates and overage. Hourly work is estimated in a written change
request before it starts. If an estimate is going to be exceeded by
more than [10]%, I stop and get written approval before continuing.
3. Late payment. Balances outstanding after the due date accrue interest
at [1.5]% per month, or the maximum permitted by law in
[jurisdiction] if lower. If an invoice passes [14] days overdue I may
pause work and hold the next deployment until it is settled.
4. Client dependencies. Time spent waiting on content, access, or
approvals moves the schedule. Where a delay of more than [10]
business days requires me to re-familiarise with the codebase or
re-book time, that is billed at the hourly rate above.
5. Disputes. Raise a disputed line in writing within [7] days of issue.
All other lines remain payable on the original due date.
HOW TO PAY
Bank transfer: [Account name] · [Account number] · [Routing/IBAN]
Reference: [INV-0003]
Card or online payment: [payment link]
Thank you — [Your name]This is a practical starting point rather than legal advice. Terms like late fees and payment periods are regulated differently depending on where you and your client are, so check anything you plan to enforce.
Send it from PaloWorks with a Pay button
PaloWorks numbers the invoice for you, works out deposit and balance invoices from the scope price, and totals the line items, tax, and discount in whole cents. Your client gets a link with a Pay button once you connect Stripe, plus a PDF, and reminders go out if it runs late. It does not import this page: you type your line items once, on the project.
Free for one client and three active projects. Pro is $19/mo for unlimited clients and projects.
Use this with
Scope of work
Software development scope of work
A development SOW with user stories, environments, a browser support matrix, UAT window, defect severities, and a defined warranty.
Contract
Web development contract template
A development agreement with milestone payments, UAT and acceptance, a 30-day warranty, code assignment on final payment, and credential handover.
Invoice
Freelance invoice template
A complete freelance invoice you can send today — line items, due date, deposit credit, late fee clause, and the fields accounts payable actually needs.
Related reading
Built for
Change orders and invoices for developers
Turn "it's just one small change" into a written, priced change order agreed before you cut the branch.
Free tool
Free Invoice Generator for Freelancers
Fill in your details, add line items, download a clean PDF. Nothing you type leaves your browser.
Free tool
Late Payment Fee Calculator for Overdue Invoices
Invoice amount, due date, and your annual rate in — the fee accrued so far out.
Article
Send the invoice the day the work is done
How to send and follow up on freelance invoices so clients pay on time: put the due date in the scope, send the bill the day that slice of work is done, and use a three-note cadence instead of “just circling back.”
Built for
Briefs, drafts, and invoices for copywriters
One brief the client fills in before you write, a round count that holds when the rewrite is really a new angle, and an invoice that goes out the day the draft is approved.