What are some measures that one can put in place to ensure that clients pay their invoices in a timely manner?
One can do the following to ensure that clients are paying on time:
Create expectations up-front
To ensure that clients pay up front; establish win-win situations for you and your client. Be honest, effective by having them written out and available for the client to review.
Create contracts that protect you and the client
Consult a lawyer and have them proof your contract. Legal counsel and expertise with allow you to create an effective process and avoid vagueness in your contract so both parties can avoid escalating to legal disputes.
Specify your terms in your contract
Specify the payment terms in your invoice and in your contract: e.g. NET 15, 30, 45, etc.
Provide client with a late payment policy
Provide your client with your late payment policies. If necessary place in your contract and invoice what if or what late payment fees there are. Make sure that you document that your client agrees to such terms. Remember to be reasonable.
My answer is rather simplistic. I use oDesk for all my billing, so I never have to worry about clients that don't pay on time (they guarantee payment on every hour logged with their client application). I'm not aware of any other service that does that (although there may be).
You could also certainly build an oDesk style system yourself (tie a time logging application to some payment service, and periodically place reserves against the payment method, then capture the payment weekly).
[I realize most people view oDesk as a job board, I use it as a way to outsource all the invoicing / payment issues with clients.]
Here are the things I do to insure on time payment:
Establish a standard. My standard is payment to be received within 10 days of the invoice, but you can use a different rule.
Communicate the standard. I let my customers know the requirement both via conversations with them during contract negotiation and within the contract itself. I also explicitly put a due date on every invoice.
Make it easy to pay. Allow multiple payment options.
Request partial payment up front. On all my projects, I request an upfront payment of something between 10%-50% of the total project cost BEFORE work begins. (This is obviously easier to do when there is a flat project fee instead of an hourly rate, but on a larger project it is still be possible to ask for an up front fee.) This helps A LOT because the client must demonstrate through this payment that they are reliable and invested in the project.
Offer a discount for full payment up front. One advantage to getting paid up front is that it is difficult for a client to cancel the project. Also late payment becomes a non-issue. This isn't an option I prefer, but I have seen others implement it successfully, and I've used it before.
Stop work when payment is late. I make it VERY CLEAR to clients that if their payments are late, work will not continue. If their project is halted while I have to wait for payment, I can't guarantee I will meet their deadlines. In fact, their work will go to the end of my queue. One advantage of using short payment terms like NET 10 days is that you know very quickly that there is a problem and so you won't spend as much time working without payment. With NET 30 you've already worked a month without getting paid.
I rarely have problems with late payments.
My suggestion comes from practical experience, see if it works for you.
Contracts are important and should be there but it is not easy or practical to take the legal option. Freelancers/Small firms just do not have the time, money or man-power to followup.
Any business will always have non-paying or late-paying clients. Contradictory as it may seem to the bottom line, I think the best measure is to not put lot of time, energy and money on late/non-paying clients. To ensure clients pay on time, it is about what one does before the order, then after it.
If service/product is good, I found customers very rarely cause problems or request a replacement, surprisingly, less then 1%.
I have found almost all the customers to be honest. In a rare case, a customer does not pay, I have a clear policy of not dealing with them again. It is their loss, they won't get my top notch service/product again.
After 3 emails for pending payment, spaced over few weeks, I send a final email, letting them know never to order from me unless they pay for past orders and include a link to list of competitors, which I openly list on my website.
This seems to work for me, and I have found customers pay up. Also, due to the open approach, the customers put in a good word and orders come in through reference, without any marketing.
Overall, instead of followup on non-payment, the best measure, that worked for me, is to establish yourself as the best place for your product/service. The growth in business due to customer confidence will out weigh occasional non-payments.
YMMV, depending on your product/service and price/fee, this approach may not be practical.