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 · nothing reaches your client until you press Send
Turn this template into a draft invoice
Add your client's name. The line items are already filled in.
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
Free to copy and use: nothing to download, no email required. Copy the whole thing, or select the parts you need. Replace anything in [SQUARE BRACKETS] with your own details; the numbers and dates are examples, so 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 this invoice from PaloWorks, with a Pay button
Fill in the card at the top and what you typed becomes a numbered draft invoice with a PDF and a share link. Your client sees nothing until you press Send. Connect Stripe and the link carries a Pay button; reminders go out if it runs late.
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
Answer
What's the best invoicing app for freelance web designers?
Look for an invoice link the client can pay by card or bank debit, deposits and milestones, reminders that send themselves, and files held until the invoice is paid.
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.
Article
Net 30 vs due on receipt: which terms to put on your invoice
Net 30 vs due on receipt, explained: what each payment term means, which to use for which client, and why to print an explicit due date whatever the term.
Answer
A client hasn't paid my invoice in 45 days. What should I do?
Send one clear message with the invoice link, then call. If that fails: pause new work, hold final files, apply the late fee your terms allow, and send a final notice.
Free tool
Free Invoice Generator for Freelancers
Fill in your details, add line items, download a clean PDF. Nothing you type leaves your browser.