I participate in an online forum for freelancers, and I see roughly the same post at least once a week:
I worked on a project for a couple of months for a client without a down payment. Now that I’m done they won’t pay me for my work. What can I do?
This sucks. But what sucks even more than a customer who won’t pay is that much of this situation could have been avoided if they had followed a few simple rules.
Don’t start work without a down payment
Some freelancers feel awkward asking for a down payment. They are afraid they will lose the business if they insist on it, and they think they have something to prove to the customer before they are worthy of payment.
This is wrong. In a service industry like programming, a down payment shows that the customer is committed to working with you. Without a down payment, they can decide to switch vendors without paying you a dime. Certainly you can mount a legal challenge, but do you want to spend your time in court? Reasonable customers will not have a problem with a 10% down payment. Conveniently, reasonable customers are the kind you want anyway. (For smaller projects under $1,000, I will often ask for 50% down or everything up front.)
Keep payment terms short
My agreements with customers state that payment is due within 10 days of the invoice. This gives my customers more than a week to take the necessary administrative steps to get me paid, and my checks almost always arrive within that time period. Keeping payment terms short help minimize the risk to you. The last thing you want is to complete several more deliverables for the client and then find out they can’t pay their bills.
Make sure that your payment terms are spelled out in your contract with the client. My customers know that this is a deal breaker for me. One customer told me their standard practice is to pay NET 60 days, and they were switching that practice to 120 days! Tell me honestly: can you afford to float another organization a 4 month loan? If not, make it clear that this won’t work for you and stick to your guns. (That customer makes sure my invoices are paid by my NET 10 days due dates.)
Stop work when a customer is late in paying
If a customer is paying more slowly than you agreed, it is time to have a heart-to-heart with them. Explain that every time you don’t receive payment on time you will stop working on their project and move on to the next customer’s work. When payment arrives, you will be happy to move their project back to your queue, but it will impact any deadlines they may have. Most customers understand and will make the effort to get you paid.
Following these rules will help to ensure that you get paid most every time (and will minimize your risk if you aren’t). In more than 7 years of freelance programming, the only time I didn’t get paid was when my client was closed by their bank.