DemandPay.co

How to Recover Payment on an Unpaid Web Development Invoice

Quick Answer: When a web development client refuses to pay your invoice, a demand letter leveraging your ownership of source code, hosting access, and domain credentials creates strong pressure to settle. Reference specific deliverables — custom code, CMS configuration, database work, and deployment — and set a 14-day deadline. Most web development disputes between $3,000 and $25,000 resolve after a formal demand.

Why Web Development Invoices Go Unpaid

Web development projects are particularly vulnerable to payment disputes because of their complexity, extended timelines, and the client's frequent misunderstanding of what development work actually involves. A website that looks simple to the client may represent hundreds of hours of backend work.

Common unpaid invoice scenarios for web developers include:

  • Scope creep without payment: The client kept adding features, pages, and integrations beyond the original specification, then disputes the final invoice reflecting the additional work
  • Launch delay blame: The project launched late — often due to the client's delayed content delivery or feedback — and the client uses the delay as justification to withhold payment
  • "It does not work" claims: The client reports bugs or issues after launch (sometimes caused by their own modifications) and refuses to pay until everything is fixed, regardless of warranty terms
  • Milestone payment defaults: The client paid the deposit and perhaps the mid-project milestone, but withholds the final payment after the site goes live
  • Ongoing maintenance disputes: Monthly retainer or maintenance invoices go unpaid after the initial project relationship sours

Legal Leverage for Web Developers

Source Code Ownership

Unless your contract explicitly transfers copyright, you own the source code you wrote. This includes custom themes, plugins, modules, API integrations, and backend logic. The client has a license to use the deployed website, but that license is contingent on payment.

Hosting and Infrastructure Control

If you manage the client's hosting, DNS, SSL certificates, or deployment pipeline, you have practical leverage. While you should never take a live site offline without proper notice (and legal advice), you can decline to provide further hosting services for an account in default.

Database and Content

Custom database schemas, migrations, and configurations you developed are your intellectual property. The client's content stored in the database belongs to them, but the system architecture you built does not.

What to Include in Your Demand Letter

Project Agreement Reference

Cite your contract, statement of work (SOW), or proposal. Reference the agreed scope, technology stack, timeline, and payment schedule.

Work Completed

Document the full scope of development work:

  • Discovery and planning: Requirements gathering, wireframing, technical architecture
  • Frontend development: Pages built, responsive design, browser testing, accessibility compliance
  • Backend development: Custom functionality, CMS configuration, database design, API integrations
  • Testing and QA: Bug fixes, cross-browser testing, performance optimization, security hardening
  • Deployment: Server configuration, domain setup, SSL installation, launch checklist
  • Post-launch support: Bug fixes, content updates, training provided

Scope Change Documentation

If the client requested features beyond the original SOW, list each change request with:

  • Date requested
  • Description of the additional work
  • Email or message where the client approved the change
  • Hours spent or agreed additional fee

Financial Summary

  • Original project fee
  • Deposits and milestone payments received
  • Additional charges for scope changes (with documentation)
  • Monthly hosting or maintenance fees owed
  • Late fees per contract terms
  • Total outstanding balance

Intellectual Property Notice

State that you retain ownership of all custom code, and that the client's license to use the deployed website is contingent on full payment. Clarify that you are not obligated to provide source code, repository access, or hosting credentials until the account is current.

Industry-Specific Tips

  • Document everything in Git: Your commit history is timestamped evidence of every hour of work performed. Reference your repository's commit log as proof of development effort
  • Separate your code from their content: Make clear in your demand letter that you are not withholding the client's content (text, images, data) — only the custom code and systems you built
  • Reference market rates: Use platforms like Glassdoor, Stack Overflow salary surveys, or agency rate cards to demonstrate that your rates are within industry norms
  • Address the "my nephew can build it cheaper" defense: If the client claims the work is overpriced, your demand letter can note the specific technical skills required (e.g., custom API integration, database optimization, security compliance) that justify professional rates
  • Preserve access logs: Server logs showing the client actively using the website prove they received and are benefiting from your work

Timeline for Resolution

  • Day 1: Send demand letter via email and certified mail
  • Days 3-7: Client response window
  • Day 14: Payment deadline
  • Day 15: Revoke repository access and withhold further development or hosting services
  • Day 30: File small claims court petition or engage a collections agency

When to Escalate

Web development disputes often involve amounts from $5,000 to $50,000+. Choose your escalation path based on the amount:

  • Under $10,000: Small claims court is ideal — no lawyer needed, and you can present your contract, commit history, and communications as evidence
  • $10,000-$25,000: Consider mediation first, then small claims (if within your state's limit) or hiring an attorney for a breach of contract claim
  • Over $25,000: Attorney representation is recommended. The cost of litigation is justified, and your contract may include an attorney fees clause
  • Ongoing hosting disputes: If the client owes for hosting and maintenance, you can terminate hosting services with 30 days written notice, forcing the client to migrate and often prompting payment

Put It in Writing Today

DemandPay generates a letter specific to your case and mails it for you. Takes about 5 minutes.

From $39. Preview before you pay.

Frequently Asked Questions

Can I take down the client's website if they refuse to pay my web development invoice?

This is legally risky and generally not recommended without legal counsel. If you host the site and the client is in breach of your hosting agreement, you may be able to terminate hosting services with proper written notice — typically 30 days. However, if the client owns the domain and has their own hosting, you cannot access their server to remove code. A better approach is to revoke repository access, withhold future updates, and pursue payment through your demand letter and small claims court. Never take a site down without consulting an attorney first.

What if the client hired another developer to finish the project and refuses to pay me?

You are still owed for all work you completed up to the point the engagement ended. Your demand letter should document every deliverable you produced, reference your commit history as evidence of completed work, and calculate payment based on either the contracted milestones you completed or the reasonable hourly value of your work. The client hiring a replacement does not extinguish their obligation to pay for work already performed. If anything, it proves they needed the foundational work you delivered.

Should I include hosting fees and domain renewal costs in my unpaid invoice demand letter?

Yes, if your agreement covers hosting and domain management. These are ongoing services you are providing at your own cost. Your demand letter should itemize hosting fees separately from development fees, include the dates of service, and note that continued hosting is contingent on a current account. If you advanced domain renewal costs on the client's behalf, those are reimbursable expenses. Be specific about the monthly hosting rate and the number of months outstanding.