Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have a difficult client. Every bill is argued and debated over, and each email is parsed with a lawyers eye (because he's a lawyer), looking for a way to avoid paying for something. No amount of generosity on my part is ever reciprocated.

The client currently has 60% of his bills unpaid (these are invoices he signed off on), and it is a substantial amount of money. How it got to this stage, admittedly is a product of my own naïveté.

Since the client hosts his own code, I can't shut off the hosting and demand payment. Is it legal to install a remote "Kill Switch" to shut down the customers code unless bills are paid?

share|improve this question
6  
Perhaps you could claim ownership of the code unless all bills are fully paid. As such he could be using your code without ownership of the code. –  tehnyit Jul 19 '11 at 8:13
50  
Fire your client. Some clients are just not worth the trouble. Try and get a compromise for the 60% of unpaid bills (split them 50-50 or whatever) and agree to part ways. He can keep the code he has, you no longer have to fret over getting paid for maintenance/new features. –  Marjan Venema Jul 19 '11 at 8:38
10  
I'm tempted to downvote this purely because you have not even said which country you are in. How can this be meaningful answered without this information? –  sbi Jul 19 '11 at 8:47
9  
@sbi, I think location information is mooted as the standard answer will be to "consult a lawyer". –  tehnyit Jul 19 '11 at 11:12
13  
If it is illegal to purposely put a kill switch, it is NOT illegal to accidentally introduce a dehabilitating "bug" in the latest release to his environment. If you make it look like an accident, then refuse to fix it until all current bills are paid, then you lit the fire under him and he has no proof that you deliberately sabotaged the project. Once you get paid, fix the "bug" and then sever ties. You don't want clients like that, they will cost you more money in the long run. –  maple_shaft Jul 19 '11 at 12:35

13 Answers 13

up vote 63 down vote accepted

At 60% unpaid bills, the very least you need to do is to stop all further maintenance and support of your code for this customer until they have paid in full.

Also realise that you aren't doing this (stopping maintenance and support) to punish the customer - it's simply common sense self-preservation for you and your company. If all your clients would string you along like this you would very quickly end up with a serious cash-flow problem and go bankrupt. You cannot afford to do business like this.

For anything else, follow the advice given by other posters: consult a lawyer!

share|improve this answer
    
It's hard to pick a best answer, but I'm going with MadKeithV, since this is how I'm going to handle the situation. –  Sam Grunion Jul 19 '11 at 13:38
    
+1 for 'stop all work until payments are current.' I'd recommend billing frequently (at least monthly) and ensuring customers pay reasonably on-time to avoid this sort of situation. –  Steven Jul 19 '11 at 19:14
1  
The only thing I would add is to make sure that support isn't under a separate agreement of some sort, if it is, and if that contract is paid up then it probably can't be withdrawn. Unlikely given the background but possibly worth saying. –  Jon Hopkins Jul 19 '11 at 19:27
    
+1 For an incredibly ethical solution to a problem posed by an very unethical customer –  shmeeps Jul 20 '11 at 14:35
    
And stop releasing the code to him until he's paid you. Host it on your own dev server, where he can view it's functionality. When he pays (or pays an agreed upon portion), then you move it to his server and collect the rest of the payment BEFORE moving any more code. You can do the work, but don't provide the product to the user until you receive payment. –  CaffGeek Jul 20 '11 at 21:52

You're dealing with a lawyer, and you're not a lawyer. Get a lawyer, don't do anything to harm your client, without prior legal advice and proper representation. He'll sue your a** if you do that.

To answer your question directly - unless it is explicitly allowed in your contract (which I doubt), it's most probably illegal.

share|improve this answer
9  
+1 for "get a lawyer". –  Michael Kjörling Jul 19 '11 at 8:29
8  
+1 for "it's most probably illegal". Vigilante justice usually is. –  nikie Jul 19 '11 at 9:09
1  
@nikie But sometimes, oh so satisfying... –  Max Jul 19 '11 at 9:20
2  
I would add : vimeo.com/22053820 . –  deadalnix Jul 19 '11 at 12:32
12  
There's an old joke that fits this situation. "When do you need to talk to a lawyer? Any time you're talking to a lawyer." –  Christopher Bibbs Jul 19 '11 at 13:24

It depends on the legislation and your contract.

For example: In German law there is this funny thing called 'Abstraktionsprinzip', that states that, when you give someone a thing to be payed for, its now his, so messing with it would be the same as destroying anything else he owns. But if you stated in your contract, that, until payment the sold thing would remain yours, it would be fine.

You should get a Lawyer yourself, and, if you absolutely want to go for the kill switch, make it unobvious (as in 'some error occured, contact support'), and on the long term fire the customer.

Disclaimer: IANAL.

share|improve this answer
    
"Abstraktionsprinzip" - the German's come up with the best words. One other comment - don't do it subtly, either do it or don't do it. If your contract says you can withdraw services then you don't need to be subtle, if it doesn't then you shouldn't. –  Jon Hopkins Jul 19 '11 at 13:34
    
Yeah, there are some nice words, but they are horrible to use in code. On the subtlety: when it is in the contract, i agree, it should be made obvious, but it doesnt seem to be right now. –  keppla Jul 19 '11 at 13:42
    
The issue with doing it subtly is if you get found out (and that's more likely than you think - the guy isn't stupid and is likely not to believe in co-incidences) he's likely to sue you into oblivion. –  Jon Hopkins Jul 19 '11 at 13:46
    
thats why i said 'if you absolutely want to go for it', as in 'if you absolutely want to challange the boxing champion, at least put on gloves' –  keppla Jul 19 '11 at 13:48
    
this "funny thing" is present in many western european countries, it's one of the reasons "leasing" was invented as a separate mechanism (for the law). –  KillianDS Jul 20 '11 at 9:07

Is it legal to install a remote "Kill Switch" to shut down the customers code unless bills are paid?

Usually, your contract will have a clause that says the deliverable (a product or a work) remains your property until it's fully paid for. Once it's paid, it becomes your customer's property. And while partially paid for, it's something of a shared ownership - it's considered his until you complain of a breach in the contract. So no, you cannot use on a kill switch if, by this, you're meaning "disabling his site/app from remote".

If your deliverable is a service, on the other hand, the situation can be different. For instance, if you're hosting the site/app, and the customer is not paying his hosting invoices, you're most definitely entitled to shut the service down. (In a prior job, I've seen large banks panicking for being a day or two from losing the leased line access to its trade floor, due to unpaid invoices.)

Either way, keep in mind you're dealing with a lawyer. So be sure to get a lawyer before doing anything.

share|improve this answer
1  
The magic words in my contracts are "Intellectual property transfers on receipt of full payment". OP should watch the My Lawyer Gabe video "Fuck You, Pay Me": weblog.muledesign.com/2011/04/creative_mornings.php –  Dan Jul 19 '11 at 12:07

If you are in the UK, use the Late Payment Legislation.

If you run a business in the UK this legislation allows you to charge interest where a customer is late in paying their invoices. This has the potential to be an important part of your debt collection process.

And find a new customer, even if the new customer pay's less, life is not long enough for bad customers.

share|improve this answer

[Naturally I'm obliged to state that I am not a lawyer, a doctor or an astronaut and you should consult someone who is a lawyer. And a doctor and an astronaut if possible.]

Your right to withdraw services is ultimately down to your contract, however I would make the assumption that if it does not specifically mention it then you don't have that right.

Certainly if you are going to withdraw your services then do so in an open way - don't fake errors or similar. You should either be sure you can do it in which case you can do it openly, or you shouldn't do it. If you're going to do it you should give him formal written notice in advance - at least 7 days I'd suggest to allow him a chance to remedy matters.

But you mention "Every bill is argued and debated over" which suggests work is on-going. The first thing I'd do would be to decline to accept any more work from him and make it clear why. State that you will fulfil all currently contracted obligations, however you will not discuss any new work of any sort outside of this until he has settled his account in full.

If he agrees to that then you need to make it clear the basis on which you will work for him in future.

I wouldn't suggest a kill switch - it's to open to argument. Instead I'd demand payment of at least 80% before you'll ship code, the rest to be paid when the code is put live. If he objects say that you'll put the on-going work under Escrow so he knows that it's safe.

I'd also make it absolutely clear that the IP and all rights to the code remain with you until payment is received in full.

If he doesn't agree to that then shake hands and go your separate ways (he still owes you the money of course and you would still need to keep chasing that).

Oh, and watch this. Mike Montero's talk "Fuck you, pay me" about not getting into this situation in the first place.

share|improve this answer
2  
+1 Excellent link. –  Stephen Jul 19 '11 at 17:41

Licensing

This is one reason companies do it this way. You have to renew your license and receive a new license file in order for your software to work for another x days.

I would suggest you get a Lawyer, do your best to recoup as much revenue as you can while not spending to much, then attempt to move your software into requiring a License file.

You can even just have your software set to run for a certain number of days until the code is changed (Simply a date).

share|improve this answer

I'm assuming you are in the United States with my answer. Check your contract to see if it has a WORK MADE FOR HIRE CLAUSE. If it is not a work made for hire, even if the customer paid you to write the software, you still own it. Get a lawyer to send a letter saying that his license to it has been revoked and that he may no longer operate it.

As for a kill switch, you're putting a bullseye on your forehead if you do something that harms the customers business. What you need to do in the future is put in a feature where it periodically checks with a license server, and state in the contract this is the case, and that if he doesn't pay on time you can revoke the license which shuts him down in xx days, and send a certified letter when you do it. Its ok if you and the client agree up front and in writing that you can do a remote disable but be careful with it.

Also I find it really helps to put LATE FEE: $xxx on your contract and also state that it will accrue interest.

share|improve this answer
2  
Be VERY CAREFUL calling anything "interest" or a "finance charge", especially in the U.S. Here, only entities registered for business as "financial institutions", i.e. banks, can charge "interest" (loosely defined as any recurring or compounded fee based on a percentage of an outstanding balance) in excess of 3%. If you, as an independent contractor, start charging a 10% APR on the unpaid balance of past invoices, you will be taken to the cleaners; It's something like a quarter-million dollar penalty. –  KeithS Jul 19 '11 at 18:09

You need to sever ties with the lawyer as cleanly as possible. Take your losses and learn from them. Do not tick the lawyer off. A lawyer can sue you indefinately for the exact same problem in the hopes that you finally give in. Which you will, since he can sue you for essentially free, meanwhile you are paying thousands of dollars for your own lawyer. In order to count as a new lawsuit, all the lawyer needs to do is change one word in the suit and it's a new lawsuit and you'll once again need to rehire your lawyer costing you thousands more. This can go on indefinately, no matter how little merit the suit has, no matter how many times the judge laughs at the complaintant's suit and tosses it out. You will still need to pay for a lawyer each time while the lawyer spends a few minutes of his time to refile their lawsuit.

Just feel lucky if the lawyer goes away and you never hear from them again. In the future, don't do business with a lawyer, plain and simple.

share|improve this answer
1  
Repeated filing of frivolous lawsuits is harassment; if the OP experiences this they can recover damages. The judge, in addition to dismissing the plaintiff's lawsuit with prejudice, can at his discretion award "reasonable attorney's fees" to the defendant, and in such a case it'd be highly likely. Once this happens, the OP's lawyer will be happy to forward all his bills to the other lawyer, and should the other lawyer be stupid enough to persist he will run himself out of business. At some point, the amount of money this lawyer owes will be enough to file a REAL lawsuit going the other way. –  KeithS Jul 19 '11 at 18:15
    
@Keith: IANAL. While you may like to believe what you say, it only makes sense and seems fair the way you say it, and it may even be written in law the way you say and I totally agree that is how it should work. Unfortunately, in the real world it doesn't work that way. I do have first hand knowledge of this fact. Contrary to popular belief, our legal system doesn't make sense and it has little to do with justice, only legalities. –  Dunk Jul 19 '11 at 20:41
    
Simply cutting your loses is unacceptable. There is overhead, costs, payroll, stuff that just doesn't fall out of the sky. It's insulting to not pay your bills and he should take it as such. He needs to seek the proper counseling and recoup any monetary value that is outlined in the contract. –  Bryan Harrington Jul 19 '11 at 23:46
    
@Dunk: Absolute bollocks. –  Sylverdrag Jul 20 '11 at 10:51
    
If you have the cash, the time and stress medication to go after/fight the guy, then by all means do. However, for most small businesses it just isn't possible since your lawyer is going to expect to be paid while you are in the process of suing/defending against the other lawyer, which could take years. Even if you win some money, you then have to spend money to initiate collection proceedings if the other guy still doesn't pay up. While it doesn't sound fair, it's how the legal system works in real life. Real life does not match most people's vision of how the legal system should work. –  Dunk Jul 20 '11 at 15:41

Get a lawyer. Nobody here is a lawyer AFAIK and AFAYK, and so what we say is not legal advice, is probably not correct for your situation, and may cause you to be damaged further if you follow it.

That said, I have the following points.

  • The "kill switch" is probably a bad idea. In almost any situation where the software resides on your client's hardware and the contract did not stipulate termination of service as a penalty for non-payment, it places you in breach of contract, giving him leverage. You are justified in deactivating or "neutering" the software through some means if the contract specifically states that non-payment by the client will result in forfeiture of the right to use the software. You may also be covered, contract or not, if you remove his access to software or data in a remotely-hosted environment which you control; in that case, ownership of the software and/or data is yours because you own the digital infrastructure.

  • Don't be afraid of your client just because he's a lawyer. You have the high ground here; you have provided a service for which you are contracted to be paid, and payment is due. You can sue to collect this payment, and recover damages INCLUDING attorney's fees. If he abuses his position as a member of the bar to intimidate you, for instance if he continues to file lawsuit after lawsuit against you, that is harassment at best, and you can have an injunction put in place barring him from pursuing further legal action against you, and collect punitive damages and attorney's fees if he ignores it. As a lawyer, he knows all this, but he may be betting you don't.

  • It WILL cost your client time and money to pursue legal action against you should it come to that. While he's dealing with you or your lawyer, he's not able to bill his time to his own clients. It's opportunity cost; he'll actually only realize a loss of his own expenses, but he won't be making money either. And, any lawyer you bring your case to will know he can get you awarded your attorney's fees, and thus will be sure to tie up the other lawyer's time and attention as much as he can.

  • DO NOT damage your client's business in any way other than what your contract with him says you can do. If you damage his professional reputation and/or scare away his clients, he may sue you for libel/slander and you will have to prove that every word you said or wrote regarding him and/or his business is factually correct.

  • DO NOT harass him back. You are a debt collector; you have the rights to collect money from this other person or business. You are therefore subject to the Fair Debt Collection Processes Act, which among other things means if he tells you he does not want to be called by you concerning the debt, or to receive letters from you other than certified notices of pending legal action, you must comply, or he can sue for $5000 per occurrence after he gives verbal notice. That will very quickly whittle down what he owes you.

share|improve this answer
    
+1. I'm in Very Eastern Europe and we recently has a case when a program with a variation of a kill switch lead to criminal prosecution. So the outcome of "Average Joe" versus "Greedy Lawer" can vary. –  sharptooth Jul 21 '11 at 7:44
    
+1 esp. for "Don't be afraid of your client just because he's a lawyer" ... If you take the aw(e) out of lawyer, what are you left with? –  Craig Young Jul 1 '12 at 20:20

The first company I was at never shipped ANY application without an "Oops" switch but then we didn't sell to the US or Europe so the legal circumstances might be different.

Basically it was a date dependent routine that was designed to go haywire when the time came. It didn't do anything major, like shutting the system down or changing system data (I've seen some do that and its sick in a bad way.....) but it did make a random 10% of all documents painfully slow to save or load.

A second switch would come on at a later date and start to randomly stutter when running the saving/delete routines for all entries, letting them wait for a while before informing them that "the table couldn't be read" or something similar.

Did it work? I think it did. Can't really be sure because I wasn't the one in charge of collections.

I didn't do this when I set up my own company a few years later mainly because it was a painful way to do business. Instead I worked out my collection policies and implemented them properly. If you spend some time to do the same, I think you will find that the results with or without a switch would be pretty similar.

share|improve this answer
1  
This seems an extraordinarily bad idea (other legal issues aside) - if it's not clear this is a consequence of non-payment it just makes your software look flaky and adds reputational risk to your financial woes... –  Paolo Jul 20 '11 at 9:29
    
Yea, which is why I didn't do it when I started on my own. OTOH, I'll admit there were days when I wish I DID have them. It took a while to get to the point where I was financially stable enough to "let things slide" and to get my credit collection procedures sorted out. Some of those days where painful so I can feel where the OP is coming from :P –  Permas Jul 20 '11 at 10:33

Consider adding a log-in function.

We have a flag in our database for each customer which we can toggle. If a customer does not pay for multiple months we toggle it off and they can no longer use our system. We've had to use it before. But mostly for clients who are in big financial problems and can simply no longer pay their bills.

share|improve this answer

Lots of interesting discussion here. One side note that may also be interesting:

If you client the lawyer has acted unprofessionally you can issue a complaint to the bar association. The bar will investigate the case and take action. Their action can include:

  • Fining the lawyer for acting unethically (and paying you)
  • taking steps to disbar the lawyer (puts pressure on the lawyer to pay you).

The bar wants to have a good image in the eye of the public and is willing to go to strong extents to protect its image.

You may have to show that the lawyer has acted unprofessionally which could be tricky.

I am not a lawyer.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.