If you’ve ever experienced the hassle of late payment, you’ll understand how much it costs. Your cashflow’s affected but you’ll also lose hours chasing clients and it’ll sour your relationship. It doesn’t need to be that way.
1. Use a Contract
If you do nothing else: write a legally binding contract for you and the client to sign. Yes it’s boring, but create a reusable template which is easy to modify. Keep it concise but include:
- An outline of the project, the prices and delivery dates
- The client’s payment schedule. Highlight fees and interest charges for late payment.
- The ownership of all code, media, etc. Ownership should only be transferred following the final payment.
- Review and approval terms (see below). Add a clause about “unreasonable rejections” to ensure clients cannot continually change scope or add features.
- What happens in the event of a dispute.
- How long the contract terms remain valid prior to signing. 28 days is normally enough — it’ll focus the client’s mind and prevent them from delaying the project.
For smaller projects I normally use a short 2/3-page contract which provides links to web pages containing detailed information. It’s less daunting to read but the small print is still available.
While verbal agreements are legally binding, it’s far more difficult to prove what was agreed. Put everything in writing.
2. Demand a Deposit
Always demand an up-front deposit. 50% is realistic for most projects — if not 100% for smaller tasks. For larger projects, consider breaking it into smaller sub-tasks or outline regular payment schedules.
If you’re doing consultancy work which is paid per hour, I’d recommend frequent billing — perhaps every one or two weeks. If in doubt, run a credit check on the company and search the web for negative comments (you may not leave them, but others will).
If the client is concerned, offer money-back guarantees if they’re not completely satisfied with the final delivery. This won’t be a problem if the brief is good and your skills are up-to-scratch. Alternatively, consider using an escrow service.
Alarm bells should start ringing if the client starts to quibble about tight budgets. If they’re moaning now, think how bad they’ll be when the payment’s due. It’s not your problem. Never negotiate on price — remove features or extend the schedule if they want a reduction.
Finally, never work for share options or a slice of profits unless you’re a company director with absolute faith in the product. For every Facebook billionaire, there are thousands of developers who never saw a penny.
3. Contact the Right People
Find out who invoices should be addressed to. Ideally, speak to the person responsible for payments before you start working for the company. They may require information before they can add you to their accounting system.
At the very least, it’ll give you a valuable contact within the company’s finance department should anything go wrong.
4. Use a “Work Acceptance” Document
A Work Acceptance document is delivered with the completed project and must be mentioned in your contract. The client should be given a reasonable amount of time to evaluate, verify and accept your work by signing.
Offer a sweetener for those who sign on time, such as a 30-day warranty period where further issues are rectified at no extra cost. If the client fails to sign or report issues before the deadline, the project will be deemed complete; no warranty will be available and updates will incur further charges.
5. Withhold Launch Until the Final Payment
Unlike other industries, it’s relatively easy for web developers to withhold software or media until the final payment. Just remember that it’s not always practical — a client cannot evaluate a website unless they can see and use it. However, you should be able to withhold something; whether it’s transfer to their domain, ownership rights, email accounts, FTP access or image files.
Finally, did I mention you should have a contract which outlines all these policies? Spend a day or two writing one. It’s worth it.
Do you have any tips for ensuring payment?
Craig is a freelance UK web consultant who built his first page for IE2.0 in 1995. Since that time he's been advocating standards, accessibility, and best-practice HTML5 techniques. He's created enterprise specifications, websites and online applications for companies and organisations including the UK Parliament, the European Parliament, the Department of Energy & Climate Change, Microsoft, and more. He's written more than 1,000 articles for SitePoint and you can find him @craigbuckler.
Jump Start Git, 2nd Edition
Visual Studio Code: End-to-End Editing and Debugging Tools for Web Developers
Form Design Patterns