Web developer invoice template (milestones, retainers, hosting)
Shipping sites and apps is one job. Getting paid cleanly is another. Use this web developer invoice template for milestone builds, monthly retainers and recurring hosting or maintenance.
What to put on a web developer invoice
- Your studio or freelance name, email and city/country. Clients' finance teams reject vague "from" lines.
- A sequential invoice number (INV-0042). Never reuse numbers across projects.
- Issue date and due date. Net 14 or Net 30 is common for agencies; Net 7 for small businesses that pay faster.
- The client's legal company name and billing address, not just a Slack handle.
- Line items that match the SOW: "Homepage redesign — milestone 2 of 3", not "Design work".
- Currency you agreed (often USD for overseas clients) and exact payment instructions (IBAN, Wise, Payoneer, PayPal).
Line-item patterns that get approved
| Engagement | Example lines | Tip |
|---|---|---|
| Fixed-price build | Discovery & wireframes · UI build · CMS training · Launch support | Invoice each milestone when accepted; attach the acceptance note. |
| Hourly / T&M | Frontend (12h × rate) · Backend API (8h × rate) · Bugfix (2h) | Group by workstream so the client can see where time went. |
| Retainer | October retainer — up to 20h maintenance & small changes | Invoice on the 1st; list unused hours in Notes if your contract allows rollover. |
| Hosting / care | Managed WordPress hosting (Nov) · Uptime monitoring · Plugin updates | Separate from build work so renewals are obvious. |
Deposits, change requests and late fees
- Deposit: many developers take 30–50% up front. Put "Deposit for Project X — non-refundable after kickoff" as its own invoice, then invoice the balance on delivery.
- Change requests: bill out-of-scope work on a separate invoice with a short description of what changed. Do not bury it inside the original milestone.
- Late fees: only charge them if your contract allows it. A polite reminder plus a new due date often works better than a surprise penalty.
Multi-currency and fees
If you quote USD but receive money through Payoneer, Wise or a marketplace, the amount that hits your account is rarely the invoice total. In the Kitebill app you can record the exchange rate you got and the fees taken off, so your dashboard matches the bank statement — useful for Pakistani and Gulf freelancers billing overseas.
Make one now
- Open the free invoice generator (no account).
- Set currency, fill From / Bill to, and add milestone or hourly lines.
- Print or Save as PDF, or open the app to keep the client and duplicate next month's invoice.
Free plan: 3 clients and 10 invoices. Pro is US$29 once for unlimited use, expenses, CSV export and your logo.
Questions
Should I invoice per milestone or at the end?
Milestone invoices usually get paid faster and reduce risk for both sides. End-of-project invoices work for short jobs under a week.
Can I include hosting on the same invoice as a build?
You can, but a separate monthly invoice for hosting/care makes renewals clearer and keeps the build invoice tied to the SOW.
Does Kitebill support recurring invoices?
Not automatically. Duplicate last month's retainer invoice in one click, then send the new PDF yourself.