I've recently left university and this was one of my first freelance projects - the first one to become a nightmare. The project was to build a highly custom e-commerce system for a restaurant. However, being inexperienced, naive and stupid, we had a verbal contract, not a written one.
The client is currently withholding pay on the grounds that I have not completed the project. The problem is, what we agreed to on the day the project began is now only a shadow of what the project has actually become. I've graciously added many modules and features to the system free of charge, and he will not stop adding features saying that the project is not complete (even though all the features from the beginning of the project are present and then some). I think his main rationale is that his original idea did not suit his business, so he wants to keep changing it and that it is my responsibility to make it work.
To make matters worse, the client refused to give me a budget at the start of the project even after I asked several times to his face.
So, stupidly I decided to give him a massive discount hoping that he would agree to it at the completion of the project as he would not talk about price at the beginning.
However, when he received my invoice he said it was "too expensive", which shocked me and I couldn't sleep for several days. Btw this was just a few hundred bucks for a complex custom e-commerce system.
Yes I know I was stupid, but do I have any legal basis at all? Is there anything I can do in the court of law? Or is it in my best interest to cut the client loose, not do anything more for him and count my blessings?