Web Developer Invoice Template — Sprints, Retainer

Sprint billing, monthly retainers, hosting and licence pass-throughs, change requests outside the original scope. The template tracks all of it for international clients.

Open the free generator → Need a quote first?

Free forever · PDF export · Multi-currency · Runs in your browser

What goes on a web development invoice

  • Development — sprint, milestone, or hourly. State the sprint number / milestone reference.

  • Discovery / architecture phase. Often a separate fixed-price phase before build.

  • Hosting / domain / SaaS pass-through. Recharge with a small admin %, or at cost — state which.

  • Third-party licences (themes, plugins, APIs). Pass-through or wrapped.

  • Change requests outside scope. Each CR signed off, then invoiced separately.

  • Maintenance retainer (monthly). Hours included, overage rate stated.

  • Deployment / DevOps. Separate line if the client wants a one-off setup.

How dev work usually gets invoiced

  • Project work: 30/40/30 (kickoff/build/launch) or 50/50 are both common.

  • Retainers: invoiced monthly in advance; reconciliation invoice at quarter-end for overages.

  • International work: confirm the client's preferred currency before quoting — exchange-rate movement can erode margins.

Tax notes

B2B services sold cross-border within the EU are usually reverse-charge — note 'VAT reverse-charged' on the invoice. US clients buying from EU/UK developers usually owe no VAT, but state the basis. Always include your tax/VAT number on the invoice.

Frequently asked questions

How do I bill a discovery phase?

Fixed-price as its own deliverable: 'Discovery & technical architecture — $X.' Output is a written scope/architecture doc. Build phase is quoted separately based on what discovery uncovers.

How do I handle hosting recharges?

Two options: (1) pass-through at cost, (2) recharge with a 10–20% admin %. State which on the invoice line. Many developers prefer the client owns the hosting account directly to avoid this entirely.

What's the right invoice term for retainer overages?

Invoice retainer at start of month for the agreed scope. Track hours separately and issue a 'Retainer overage — Q[X]' invoice with the breakdown. Don't surprise the client with overage on the regular monthly invoice.

Do I invoice change requests separately?

Yes — each CR should have its own quote, sign-off, and invoice. Lumping them into 'misc dev work' is how scope creep destroys project margin.

Sample wording for a build invoice

Realistic, copy-and-paste-ready line items web developers typically use. Rates here are ballpark for a mid-cost US market, so set your own against your stack and client base.

  • Discovery and technical scope — kick-off, audit, architecture doc (12 hrs at $125/hr): $1,500

  • Design implementation — 8 page templates per Figma spec (36 hrs): $4,500

  • CMS integration — Sanity setup, schema, content modelling (24 hrs): $3,000

  • E-commerce integration — Stripe + Shopify storefront (20 hrs): $2,500

  • QA, accessibility audit (WCAG 2.1 AA), and cross-browser testing (16 hrs): $2,000

  • Deployment — Vercel project setup, DNS migration, SSL (4 hrs): $500

  • Knowledge transfer — recorded walkthrough + documentation (included): no charge

Notes: Code delivered via private GitHub repo on final payment. 30-day warranty on bugs in delivered scope. Out-of-scope work billed at $125/hr after change-order signing. Vercel and Sanity accounts in client's name; access transferred at delivery. Late-payment fee 1.5%/month per agreement.

How developers actually get paid

Project work (the classic 'build me a website') pays in milestones: 25-33% on signed scope, milestone draws at design approval and at staging launch, final 25-33% on production launch. Never launch to production before final payment clears; once the site's live, the urgency disappears. Retainer work (ongoing development, maintenance, growth engineering) bills monthly in advance — auto-draft for the fixed retainer, monthly invoice for hourly overage above the retainer threshold.

Agency subcontracting is the slowest payment lane: the agency pays you Net 30-60 after their client pays them. Direct-to-startup pays faster but is volatile (the startup runs out of money mid-project). Direct-to-established-SMB pays Net 15-30 reliably once you're past the first invoice. Always require a 25%+ deposit before writing any code — devs who skip the deposit are devs who chase non-existent payment after week 3.

Five billing mistakes that stall developer payments

  • Quoting in hours without a not-to-exceed cap. Hourly billing with no cap exposes the client to runaway scope and exposes you to them refusing to pay above their internal estimate. Cap each phase: 'Discovery: up to 12 hrs ($1,500 NTE).' Below the cap, bill actuals; above the cap, change-order required.

  • Bundling 'design implementation' with 'feature build'. Cutting Figma into HTML/CSS is different work from building the search filter or the booking flow. Itemise so clients understand what each phase costs; bundles invite scope-creep on the high-effort lines.

  • Skipping the deployment and DNS line. Deployment, DNS migration, SSL setup, and post-launch smoke testing take 4-8 hours and most clients assume it's 'just clicking launch.' Itemise it as a line so it gets paid for and the launch day expectation is realistic.

  • Forgetting the W-9 and PO before starting work. Commercial clients route invoices through AP; AP requires the W-9 on file and a PO referenced on every invoice. Get both before writing code. Otherwise the first invoice gets returned for paperwork, adding 2-3 weeks to payment.

  • Releasing source code before final payment. Code is the deliverable. State in the contract: 'Final code repository access transferred to client on receipt of final payment.' Don't release commit access to a private repo before payment clears — the client has what they need and your leverage vanishes.

US tax notes for web developers

Web development services are non-taxable in most US states (it's a service), but the deliverable form can change treatment in a few jurisdictions: Texas treats 'taxable information services' broadly and some web work falls inside; Hawaii taxes services generally; New Mexico applies gross-receipts tax to most services; Washington applies B&O (business & occupation) tax to services. Hosting, recurring subscriptions, and SaaS resold to clients carry their own tax treatment — many states tax SaaS as 'tangible digital property.'

Federal: 1099-NEC at $600 from every business client. Web dev deductibles often missed: AWS/Vercel/Netlify/Supabase subscriptions for development and demo environments, GitHub Pro + Copilot, Figma + Sketch, course platforms (Frontend Masters, Egghead, Pluralsight) for continuing-ed, conference travel (React Summit, JSConf, AWS re:Invent), home-office deduction or coworking, hardware (laptop refresh on a 3-year cycle qualifies for Section 179), and the under-claimed line — domain registration and DNS subscriptions for personal portfolio and demo sites which support business development.

Not tax advice — confirm specifics with your CPA or state department of revenue.

More questions from web developers

How do I bill for scope changes mid-sprint?

Two-tier approach. Small in-scope clarifications (the design Figma was ambiguous): absorbed without re-billing. Genuine scope additions (new feature, new page, new integration): change-order document with hour estimate and NTE, signed before work proceeds. Bill the change-order on the next milestone invoice as its own line item.

Should I bill maintenance hourly or as a retainer?

Retainer for established clients with regular work; hourly for ad-hoc. Standard retainer: 5-10 hrs/month at slight discount to hourly rate, unused hours roll one month then expire. Predictable for the client, predictable for you. Hourly with a minimum-engagement clause (1-2 hr minimum per task) for clients who only need occasional fixes.

How do I price hosting and infrastructure resold to the client?

Pass-through plus 10-20% management margin. Two lines: 'Vercel Pro subscription (pass-through): $20/mo' and 'Infrastructure management — monitoring, deploys, incident response: $X/mo.' Don't hide the hosting cost inside management; transparent pricing builds trust and lets the client move infrastructure later without renegotiating everything.

Can I refuse to work with a client who supplies their own outdated stack?

Yes — and you should set the policy upfront. Older PHP versions, jQuery codebases, Drupal 7 — these are real maintenance burdens that you can't responsibly support at modern rates. State your stack requirements on the contract: 'Engagements require maintained framework versions; migration work quoted separately as Phase 0.'

Other professions

→ Contractors → Electricians → Plumbers → Photographers → Graphic designers → Cleaners

All professions →

Ready to invoice?

Open the generator. Fill in your details. Export the PDF. Two minutes.

Open the free generator →