Good Riddance to Deadbeat Clients

Share this article

Everybody has them: slow-pay and no-pay clients. If you’ve been at it long enough, eventually you end up with brilliant projects, coupled with unpaid invoices. Worse still, sometimes the sites you build are live and operational while you’re still waiting and hoping to be paid. You may even be fending off the collection efforts of freelance or other agency contributors who helped you build the site, unable to pay them until you’re paid by the client.

Stop Problems before They Start

The first step in keeping clients from becoming pro bono without your permission is to use a service agreement that protects your interests, and then stick to it through the whole project. For your service agreement, be sure that you, your lawyer, or whoever is writing it includes the following terms to protect you:

  1. Upfront Installment:
    At the beginning of the project, always request a payment up front. Whether that’s 25% of the total project estimate, 50% of the total, or another number is up to you. But unless it’s a client you’ve known for years or have worked with before, commencing work without some money in hand will have you behind the cash flow curve from the very start. You may never catch up. An initial payment also ensures that the project is a priority for the client. If they’ve invested directly in it, they’re more likely to give you the input and feedback you need to make it work to have the project built and delivered.

  • Progress Payments:
    After that initial installment before you start work, build in progress payments. Make each deliverable trigger a payment that’s large enough to cover you through to the next due date. Once you’ve made the delivery, wait for the progress payment before doing more work on the project. This will have two necessary effects. First, if the client has questions about what you’ve done to that point, or thinks it’s unsatisfactory, you’ll find out before doing anything more. Second, it will keep you from extending credit to the client beyond a certain point.
  • Invoice the Silence:
    The silent client is a common enough creature. Feedback may be great for a few weeks or so, but as the project enters month two or three, choices are still required, client-dependent content is lacking, and the project stalls. This can keep you from reaching the next progress payment and perhaps even from delivering the project at the end. Put a provision in your agreement that says failure to respond to repeated requests for content and approvals will result in an invoice at a stated hourly rate for work done up to that point.
  • It’s Mine Until You Pay for It:
    Your standard client agreement probably already addresses what intellectual property belongs to the client and what’s simply under license at the conclusion of the project. If not, put it in there. Many agreements are without a provision stating that all copyright in the code, text, layout, design features, and other aspects created by your firm remain yours exclusively, with no license to the client to use them until you’re paid in full. Such a provision can give you a mighty tool against deadbeats. In the US, you can give a Digital Millennium Copyright Act (DMCA) notice to a deadbeat client’s ISP, which the ISP should honor by taking the site down. If they’ve yet to pay the contract price, they are infringing the creator’s rights by copying and displaying your work. Of course, the DMCA is inapplicable to the EU or Australia, but other copyright protections exist in those regions that can help provide some leverage for payment.
  • I’ll Host It, No Problem:
    Hosting the site during development and until all payments are made is another way of remaining in control of the delivery and payment process. If the client is physically unable to launch the site or take it to a competitor to finished it when you insist on payment, it’s more difficult for them to avoid paying what they owe.
  • Deadbeats Should Pay More if You Have to Chase Them:
    Particularly in countries where each side pays its own legal costs regardless of who wins, it’s important to state in your contract that the deadbeat client is responsible for any legal expenses and costs required to collect on their debt to you. Also consider a stipulation that invoiced amounts, if unpaid in a certain time period, begin to accrue interest. These two points can help your invoices rise to the top of the pile if a client finds themselves in the unfortunate position of having to decide which debts to pay and which ones to let sit a while longer.
  • If You’re in a Hole, Stop Digging

    “I know we need to pay your last invoice, but our accounting department has it now, and we really need to finish the site for it to go live.” If this sounds familiar, join the club. A slow-paying client will often report there’s internal progress towards payment, and a compelling story of why they’re totally up the creek if the site is unfinished by the end of the week. Beware. What this client is really requesting is that you extend more credit in spite of a bad payment history. They’re asking that you continue to meet and even prioritize your obligations to them, while they fail to meet their payment obligations to you.

    If you’re in a hole, stop digging. To speed up the process, offer to pick up the payment in person if their office is near yours, or let them know they can pay you by credit card. You can still appear helpful and show concern for the client’s plight without turning their issue into your cash flow problem. Once you receive a date from the client by which you’ll have payment in hand, you can agree to clear your calendar to work on their project for the next few days upon receipt of payment.

    It’s Not You, It’s Me

    It can be tough to be tough with your clients. Most client relationships are collaborations that begin with lots of enthusiasm and trust. If you’re concerned that your new client will look askance at an agreement that mentions attorney’s fees, collection costs, ownership of all IP until fully paid, and other terms to safeguard your rights, tell them, “It’s not you, it’s me.” Explain that you’ve been burned before, and though you know that they will not be a problem client, your business partners (or spouse, or lawyer, or the voices in your head) insist that you use a contract that reflects those hard lessons learned. If the client complains or pushes back, ask yourself why it should be a big problem for them to agree to these terms.

    These protective terms of the contract will only matter if the client fails to uphold their end of the bargain. As long as they’re planning to pay you as agreed, the protections, rights, and payment parts of the deal will never be an issue. If some of the protections you’re after are starting to look like deal breakers, it may be time to reconsider whether you want to do a job that leaves you high and dry. Business people often feel like they can’t afford to walk away from a potential client, but be careful. These same people don’t work for free, either.

    Chris GatewoodChris Gatewood
    View Author

    Chris Gatewood is a lawyer based in Virginia with the firm of Hirschler Fleischer P.C. Chris works on intellectual property and business matters for software companies, web developers, and other clients. His commentary here provides general information on legal topics of interest to the web development and design community, but it is not legal advice.

    Share this article
    Read Next
    Leveraging Progressive Web Apps (PWAs) for Enhanced Mobile User Engagement
    Leveraging Progressive Web Apps (PWAs) for Enhanced Mobile User Engagement
    SitePoint Sponsors
    10 Artificial Intelligence APIs for Developers
    10 Artificial Intelligence APIs for Developers
    SitePoint Sponsors
    The Ultimate Guide to Navigating SQL Server With SQLCMD
    The Ultimate Guide to Navigating SQL Server With SQLCMD
    Nisarg Upadhyay
    Retrieval-augmented Generation: Revolution or Overpromise?
    Retrieval-augmented Generation: Revolution or Overpromise?
    Kateryna ReshetiloOlexandr Moklyak
    How to Deploy Apache Airflow on Vultr Using Anaconda
    How to Deploy Apache Airflow on Vultr Using Anaconda
    Vultr
    Cloud Native: How Ampere Is Improving Nightly Arm64 Builds
    Cloud Native: How Ampere Is Improving Nightly Arm64 Builds
    Dave NearyAaron Williams
    How to Create Content in WordPress with AI
    How to Create Content in WordPress with AI
    Çağdaş Dağ
    A Beginner’s Guide to Setting Up a Project in Laravel
    A Beginner’s Guide to Setting Up a Project in Laravel
    Claudio Ribeiro
    Enhancing DevSecOps Workflows with Generative AI: A Comprehensive Guide
    Enhancing DevSecOps Workflows with Generative AI: A Comprehensive Guide
    Gitlab
    Creating Fluid Typography with the CSS clamp() Function
    Creating Fluid Typography with the CSS clamp() Function
    Daine Mawer
    Comparing Full Stack and Headless CMS Platforms
    Comparing Full Stack and Headless CMS Platforms
    Vultr
    7 Easy Ways to Make a Magento 2 Website Faster
    7 Easy Ways to Make a Magento 2 Website Faster
    Konstantin Gerasimov
    Powerful React Form Builders to Consider in 2024
    Powerful React Form Builders to Consider in 2024
    Femi Akinyemi
    Quick Tip: How to Animate Text Gradients and Patterns in CSS
    Quick Tip: How to Animate Text Gradients and Patterns in CSS
    Ralph Mason
    Sending Email Using Node.js
    Sending Email Using Node.js
    Craig Buckler
    Creating a Navbar in React
    Creating a Navbar in React
    Vidura Senevirathne
    A Complete Guide to CSS Logical Properties, with Cheat Sheet
    A Complete Guide to CSS Logical Properties, with Cheat Sheet
    Ralph Mason
    Using JSON Web Tokens with Node.js
    Using JSON Web Tokens with Node.js
    Lakindu Hewawasam
    How to Build a Simple Web Server with Node.js
    How to Build a Simple Web Server with Node.js
    Chameera Dulanga
    Building a Digital Fortress: How to Strengthen DNS Against DDoS Attacks?
    Building a Digital Fortress: How to Strengthen DNS Against DDoS Attacks?
    Beloslava Petrova
    Crafting Interactive Scatter Plots with Plotly
    Crafting Interactive Scatter Plots with Plotly
    Binara Prabhanga
    GenAI: How to Reduce Cost with Prompt Compression Techniques
    GenAI: How to Reduce Cost with Prompt Compression Techniques
    Suvoraj Biswas
    How to Use jQuery’s ajax() Function for Asynchronous HTTP Requests
    How to Use jQuery’s ajax() Function for Asynchronous HTTP Requests
    Aurelio De RosaMaria Antonietta Perna
    Quick Tip: How to Align Column Rows with CSS Subgrid
    Quick Tip: How to Align Column Rows with CSS Subgrid
    Ralph Mason
    15 Top Web Design Tools & Resources To Try in 2024
    15 Top Web Design Tools & Resources To Try in 2024
    SitePoint Sponsors
    7 Simple Rules for Better Data Visualization
    7 Simple Rules for Better Data Visualization
    Mariia Merkulova
    Cloudways Autonomous: Fully-Managed Scalable WordPress Hosting
    Cloudways Autonomous: Fully-Managed Scalable WordPress Hosting
    SitePoint Team
    Best Programming Language for AI
    Best Programming Language for AI
    Lucero del Alba
    Quick Tip: How to Add Gradient Effects and Patterns to Text
    Quick Tip: How to Add Gradient Effects and Patterns to Text
    Ralph Mason
    Logging Made Easy: A Beginner’s Guide to Winston in Node.js
    Logging Made Easy: A Beginner’s Guide to Winston in Node.js
    Vultr
    How to Optimize Website Content for Featured Snippets
    How to Optimize Website Content for Featured Snippets
    Dipen Visavadiya
    Psychology and UX: Decoding the Science Behind User Clicks
    Psychology and UX: Decoding the Science Behind User Clicks
    Tanya Kumari
    Build a Full-stack App with Node.js and htmx
    Build a Full-stack App with Node.js and htmx
    James Hibbard
    Digital Transformation with AI: The Benefits and Challenges
    Digital Transformation with AI: The Benefits and Challenges
    Priyanka Prajapat
    Quick Tip: Creating a Date Picker in React
    Quick Tip: Creating a Date Picker in React
    Dianne Pena
    How to Create Interactive Animations Using React Spring
    How to Create Interactive Animations Using React Spring
    Yemi Ojedapo
    10 Reasons to Love Google Docs
    10 Reasons to Love Google Docs
    Joshua KrausZain Zaidi
    How to Use Magento 2 for International Ecommerce Success
    How to Use Magento 2 for International Ecommerce Success
    Mitul Patel
    5 Exciting New JavaScript Features in 2024
    5 Exciting New JavaScript Features in 2024
    Olivia GibsonDarren Jones
    Tools and Strategies for Efficient Web Project Management
    Tools and Strategies for Efficient Web Project Management
    Juliet Ofoegbu
    Choosing the Best WordPress CRM Plugin for Your Business
    Choosing the Best WordPress CRM Plugin for Your Business
    Neve Wilkinson
    ChatGPT Plugins for Marketing Success
    ChatGPT Plugins for Marketing Success
    Neil Jordan
    Managing Static Files in Django: A Comprehensive Guide
    Managing Static Files in Django: A Comprehensive Guide
    Kabaki Antony
    The Ultimate Guide to Choosing the Best React Website Builder
    The Ultimate Guide to Choosing the Best React Website Builder
    Dianne Pena
    Exploring the Creative Power of CSS Filters and Blending
    Exploring the Creative Power of CSS Filters and Blending
    Joan Ayebola
    How to Use WebSockets in Node.js to Create Real-time Apps
    How to Use WebSockets in Node.js to Create Real-time Apps
    Craig Buckler
    Best Node.js Framework Choices for Modern App Development
    Best Node.js Framework Choices for Modern App Development
    Dianne Pena
    SaaS Boilerplates: What They Are, And 10 of the Best
    SaaS Boilerplates: What They Are, And 10 of the Best
    Zain Zaidi
    Understanding Cookies and Sessions in React
    Understanding Cookies and Sessions in React
    Blessing Ene Anyebe
    Enhanced Internationalization (i18n) in Next.js 14
    Enhanced Internationalization (i18n) in Next.js 14
    Emmanuel Onyeyaforo
    Essential React Native Performance Tips and Tricks
    Essential React Native Performance Tips and Tricks
    Shaik Mukthahar
    How to Use Server-sent Events in Node.js
    How to Use Server-sent Events in Node.js
    Craig Buckler
    Five Simple Ways to Boost a WooCommerce Site’s Performance
    Five Simple Ways to Boost a WooCommerce Site’s Performance
    Palash Ghosh
    Elevate Your Online Store with Top WooCommerce Plugins
    Elevate Your Online Store with Top WooCommerce Plugins
    Dianne Pena
    Unleash Your Website’s Potential: Top 5 SEO Tools of 2024
    Unleash Your Website’s Potential: Top 5 SEO Tools of 2024
    Dianne Pena
    How to Build a Chat Interface using Gradio & Vultr Cloud GPU
    How to Build a Chat Interface using Gradio & Vultr Cloud GPU
    Vultr
    Enhance Your React Apps with ShadCn Utilities and Components
    Enhance Your React Apps with ShadCn Utilities and Components
    David Jaja
    10 Best Create React App Alternatives for Different Use Cases
    10 Best Create React App Alternatives for Different Use Cases
    Zain Zaidi
    Control Lazy Load, Infinite Scroll and Animations in React
    Control Lazy Load, Infinite Scroll and Animations in React
    Blessing Ene Anyebe
    Building a Research Assistant Tool with AI and JavaScript
    Building a Research Assistant Tool with AI and JavaScript
    Mahmud Adeleye
    Understanding React useEffect
    Understanding React useEffect
    Dianne Pena
    Web Design Trends to Watch in 2024
    Web Design Trends to Watch in 2024
    Juliet Ofoegbu
    Building a 3D Card Flip Animation with CSS Houdini
    Building a 3D Card Flip Animation with CSS Houdini
    Fred Zugs
    How to Use ChatGPT in an Unavailable Country
    How to Use ChatGPT in an Unavailable Country
    Dianne Pena
    An Introduction to Node.js Multithreading
    An Introduction to Node.js Multithreading
    Craig Buckler
    How to Boost WordPress Security and Protect Your SEO Ranking
    How to Boost WordPress Security and Protect Your SEO Ranking
    Jaya Iyer
    Understanding How ChatGPT Maintains Context
    Understanding How ChatGPT Maintains Context
    Dianne Pena
    Building Interactive Data Visualizations with D3.js and React
    Building Interactive Data Visualizations with D3.js and React
    Oluwabusayo Jacobs
    JavaScript vs Python: Which One Should You Learn First?
    JavaScript vs Python: Which One Should You Learn First?
    Olivia GibsonDarren Jones
    13 Best Books, Courses and Communities for Learning React
    13 Best Books, Courses and Communities for Learning React
    Zain Zaidi
    5 jQuery.each() Function Examples
    5 jQuery.each() Function Examples
    Florian RapplJames Hibbard
    Implementing User Authentication in React Apps with Appwrite
    Implementing User Authentication in React Apps with Appwrite
    Yemi Ojedapo
    AI-Powered Search Engine With Milvus Vector Database on Vultr
    AI-Powered Search Engine With Milvus Vector Database on Vultr
    Vultr
    Understanding Signals in Django
    Understanding Signals in Django
    Kabaki Antony
    Why React Icons May Be the Only Icon Library You Need
    Why React Icons May Be the Only Icon Library You Need
    Zain Zaidi
    View Transitions in Astro
    View Transitions in Astro
    Tamas Piros
    Getting Started with Content Collections in Astro
    Getting Started with Content Collections in Astro
    Tamas Piros
    What Does the Java Virtual Machine Do All Day?
    What Does the Java Virtual Machine Do All Day?
    Peter Kessler
    Become a Freelance Web Developer on Fiverr: Ultimate Guide
    Become a Freelance Web Developer on Fiverr: Ultimate Guide
    Mayank Singh
    Layouts in Astro
    Layouts in Astro
    Tamas Piros
    .NET 8: Blazor Render Modes Explained
    .NET 8: Blazor Render Modes Explained
    Peter De Tender
    Mastering Node CSV
    Mastering Node CSV
    Dianne Pena
    A Beginner’s Guide to SvelteKit
    A Beginner’s Guide to SvelteKit
    Erik KückelheimSimon Holthausen
    Brighten Up Your Astro Site with KwesForms and Rive
    Brighten Up Your Astro Site with KwesForms and Rive
    Paul Scanlon
    Which Programming Language Should I Learn First in 2024?
    Which Programming Language Should I Learn First in 2024?
    Joel Falconer
    Managing PHP Versions with Laravel Herd
    Managing PHP Versions with Laravel Herd
    Dianne Pena
    Accelerating the Cloud: The Final Steps
    Accelerating the Cloud: The Final Steps
    Dave Neary
    An Alphebetized List of MIME Types
    An Alphebetized List of MIME Types
    Dianne Pena
    The Best PHP Frameworks for 2024
    The Best PHP Frameworks for 2024
    Claudio Ribeiro
    11 Best WordPress Themes for Developers & Designers in 2024
    11 Best WordPress Themes for Developers & Designers in 2024
    SitePoint Sponsors
    Top 10 Best WordPress AI Plugins of 2024
    Top 10 Best WordPress AI Plugins of 2024
    Dianne Pena
    20+ Tools for Node.js Development in 2024
    20+ Tools for Node.js Development in 2024
    Dianne Pena
    The Best Figma Plugins to Enhance Your Design Workflow in 2024
    The Best Figma Plugins to Enhance Your Design Workflow in 2024
    Dianne Pena
    Harnessing the Power of Zenserp for Advanced Search Engine Parsing
    Harnessing the Power of Zenserp for Advanced Search Engine Parsing
    Christopher Collins
    Build Your Own AI Tools in Python Using the OpenAI API
    Build Your Own AI Tools in Python Using the OpenAI API
    Zain Zaidi
    The Best React Chart Libraries for Data Visualization in 2024
    The Best React Chart Libraries for Data Visualization in 2024
    Dianne Pena
    7 Free AI Logo Generators to Get Started
    7 Free AI Logo Generators to Get Started
    Zain Zaidi
    Turn Your Vue App into an Offline-ready Progressive Web App
    Turn Your Vue App into an Offline-ready Progressive Web App
    Imran Alam
    Clean Architecture: Theming with Tailwind and CSS Variables
    Clean Architecture: Theming with Tailwind and CSS Variables
    Emmanuel Onyeyaforo
    How to Analyze Large Text Datasets with LangChain and Python
    How to Analyze Large Text Datasets with LangChain and Python
    Matt Nikonorov
    Get the freshest news and resources for developers, designers and digital creators in your inbox each week
    Loading form