Any billing system will do the job, provided your clients pay their bills. But how do you handle the client that doesn't want to pay?
Let's consider some primary reasons for non-payment:
1. the client really doesn't have the money - unless they are out of business, they can get the money, so this is a non-excuse. Anyone refusing to pay for lack of available funds should get sent to collections. It costs $Y for your work X as specified in the contract/sales order/etc. Negotiating any deal to forgive this debt is entirely YOUR risk, as the client is already demonstrating an unwillingness to pay (so why would they ever pay if you'll just negotiate a new deal each time?)
2. the product delivered does not function as expected - proper documentation up front can prove otherwise. Next time you think you don't need to create documentation, remember that the client could try to claim this excuse and not pay the bill. If you don't have the documentation, you are really in trouble. How can you prove that you did what was expected of you without it? If you take away nothing from this article, at least remember to get all changes to expectations in writing.
3. the client thinks they deserve a freebie for some reason (possibly because of a perceived slight) - this is all on you to maintain professionalism at all times, and address issues when they come up. Before you decide on any promotional giveaways or other discounts, be extra familiar with how these will be perceived by your existing clients.
4. the client just wants you to work for free - and why not? If they can get you to do it, that's great for them.
Most entrepreneurs encounter one of these situations at some early point in their career, and they know now that taking care of that one client can end up costing far more in resources and lost productivity than the entire billing needs of all the other clients. In fact, one problem client can very easily generate enough overhead to erase productivity and threaten to bankrupt the unprepared entrepreneur. The following are a few examples of when I have encountered these problem clients. I will describe my solutions as well as pitfalls that I seek to avoid in the future.
In the lowest-overhead of freelancing situations, it may make sense to doggedly pursue a client who is refusing to pay. However, seeking payment until you get it does not excuse you from professional etiquette.
I had one client refuse to pay for an off-hours "emergency" consulting service, because they decided without telling me that this particular instance should be free. I continued to gently press them about until they finally paid. I probably would not entertain working with them again based on how much effort it was to get paid in the end, but I also made changes to my invoicing language to help minimize the chance that someone else can feign ignorance and thus try to press me for free work after delivery of services.
In higher-overhead world of corporate on-site consulting services, I would not hesitate to forward difficult clients to collections provided that I had the payment schedule and the related consequences laid out in clear, precise contract terms. Contracts are paramount to getting payment, and once terms of agreement are signed in any way, those should carry the force of law sufficiently to allow you to collect payment for delivered goods.
I have seen many instances where clients refused to pay in order to bargain a better deal, or in order to account for new features due to scope creep. Once you cave in on an instance like this, you open all of your dealings up for renegotiation. This is where bankruptcy can quickly occur -- i.e. you can end up doing tons of free work. Every time you try to collect again, the past renegotiation comes up, and you can't hold firm to your terms because you already caved in once.
My best advice in these situations is to never enter into fee negotiations after you have delivered on the original contract, and to always document everything in writing. You can sign a brand new contract for additional work from scope creep and negotiate new terms in that contract, but the original contract should carry the force of law and not bend to the whims of the buyer. No matter how adept you are at negotiating a good deal, allowing the client to chip away at your profits on deals you already scoped out and built or delivered is a losing long-term business strategy.
I have been happily billing for many years now as a result of the following specific tactics that I recommend to everyone:
1. Get it in writing, no exceptions.
2. Re-read any response and edit for the maximum level of professionalism. Replace opinions with facts, preface estimates as such with the margin of error, etc.
3. Communicate immediately and profusely on any change to the bottom line. Make sure that the client understands and agrees to the project's cost and deliverables upon each change.
4. Follow through precisely on the terms of the contract regarding any late/non-payments. Refer to the documentation from #1-#3 if the client has any questions about why something is happening a certain way.
5. If a change is necessary to the billing process as a result of a client issue, make the change as soon as possible, and communicate the new process clearly to everyone involved.
I am a Sr. Systems Engineer for a major telecommunications company, and a professor of Video Game Programming at a state community college. I have a long history of entrepreneurial activities, especially during the dot-com era.