Possible Duplicate:
Hand over source code to customer

I have developed a couple of form based windows application in vb.net for a client and they all work well and he paid me through a freelance site. I have handed over the executable and the setup to the client and all was well. Now the client wants the source code for the application. Is there a general practice on sharing the source code with the client?

Please note - the client never mentioned he needs the source code and he is now asking for it after a week after the app was completed and he made the payment.

I don't mind sharing the source code, but I am not sure if I should. This probably means the client would not hire me again and the bigger question is the source code really his property?

This question may have been asked a few times, but I cannot still draw a conclusion on what is right.


To answer some of the questions:

  1. The source code was not mentioned at all. There was no exclusive contract signed except for the usual agreement of the freelance site.
  2. I am not sure if software development comes under work for hire and is it valid for users outside of the US?
  3. The reason for not sharing the source code was this was a very small project and I got paid for a mere few hours. So if I have an option then definitely I would want to keep the source code to myself as that gives a possibility of the client coming back. The application works flawlessly and the code is solid. Also, the task that the client wanted to achieve was very challenging and I would not like other programmers (competitors) to know how I achieved it.

So unless I get the confirmation that the source code is purely the property of the client, I would not be willing to share it.

  • 1
    Are you able to point to the T&Cs for the freelance site in question? Also, did you draw up any contract/agreement, and was source code mentioned at all? If not, it should have been - make sure this is understood for all your future contracts :).
    – halfer
    Commented Apr 24, 2012 at 20:12
  • 1
    Related/possible dup: programmers.stackexchange.com/questions/36367/…
    – halfer
    Commented Apr 24, 2012 at 20:14
  • You need to check your contractual agreement through the freelancing site you acquired the work through. You likely will have to hand over the source code, but this does not mean the client won't come back to you for future work.
    – Bernard
    Commented Apr 24, 2012 at 20:56
  • 3
    Software development can most certainly be classified as 'work for hire'. Of course, we don't know what site this is as you haven't mentioned. But think of it this way - you might be able to escape giving him the code (but most likely, you're required to hand it over), but he can bite you back by telling everyone else on the freelance site about you, if there was expectation of source code handovers.
    – wkl
    Commented Apr 24, 2012 at 21:03
  • Personal experience: A programmer was hired to program a PLC for a company. He did it but he was slow, it has a lot of bugs and he overcharged. Now he refuses to give the source code, so now the company will be forced to spend thousands of dollars to hire someone to rewrite because of a few bugs. Not really fair, is it? Commented Apr 25, 2012 at 3:27

7 Answers 7


In my experience, the source code IS typically handed over.

The reason for this is that the person hiring you is buying your time to write source code. Usually if someone only gets the application and NOT the source code, they are buying a license to use the software, which is essentially what you're doing giving him the executable, but retaining all the source code.

That being said, what is written in the contract? If it doesn't say specifically, then it's a legal gray area. Legal gray areas mean that you probably can't get sued, and the only thing that's really on the line is your relationship with the client and your reputation.

  • I don't agree it's a legal grey area. I don't think a judge in the US would side with the OP by not giving over the source code, especially the way he's described his work. Commented Apr 24, 2012 at 15:24
  • I could not agree more with this answer. +1
    – Travis J
    Commented Apr 24, 2012 at 21:09
  • 1
    +1 - I'd be shocked if "the usual agreement of the freelance site" didn't include copyright to the source code. Commented Apr 24, 2012 at 21:12
  • @JustinCave I've not used any freelance sites before, so you may be right. If the site does include it as having to hand it over, then yea, it's not a gray area at all, since it's in writing.
    – Ryan Hayes
    Commented Apr 25, 2012 at 17:33
  • He didn't say which freeelance site he was using. When it's one of those which serve everyone from carpenters to tax consultants, their standard contracts likely don't have clauses which only apply to specific industries.
    – Philipp
    Commented Dec 20, 2012 at 10:33

This probably means the client would not hire me again...

Why? Do you think they won't hire you because of the poor quality of the code, or do you think that once they've got the code they don't need you anymore?

If the code is lousy, consider this a lesson learned and do a better job next time. On the other hand, if the code is solid, why wouldn't they want to work with you again? They may want to add features to whatever you did, and who better to do that than the guy who wrote the code in the first place? Or they may have other projects in the works, and the happier they are with your work the more likely they'll be to want to keep working with you.

BTW, I agree with the other two posts. I'm no lawyer, but it sounds like this was a straight work for hire arrangement, and that usually means that the code is theirs.

  • 4
    Yea, if you are a good developer who can meet their needs next time they have a problem you will be high on their list of who to call. As a freelancer your only job security is the ability to bring value to your customers.
    – Zachary K
    Commented Apr 24, 2012 at 6:39
  • 1
    I think what the author meant is that if he keeps the source code for himself, the client will have no choice but to hire him again if he wants new features.
    – dub
    Commented Apr 24, 2012 at 16:04
  • 1
    awesome answer!! in my opinion the actually correct answer. Commented Apr 28, 2013 at 17:12
  • I always hand-over the source-code, but am I allowed to use it in other projects? Because even if I'm not allowed I can obviously solve the similar problem in hand coding from scratch and that'll contain around 80% OLD similar code, because the mind is still me. Commented Apr 28, 2013 at 17:14
  • @XCoder If it's a work for hire in the US, then the code isn't yours to keep in the first place, let alone reuse on projects for other clients. Whatever the situation, you should have come to an agreement with the client beforehand so that this kind of thing is never an issue. In other words: Why are you asking me if you're allowed to use it in other projects? Read your contract. If you don't have one, or if you don't understand it, then you've got a problem.
    – Caleb
    Commented Apr 28, 2013 at 18:51

On "work made for hire" projects, it's not a matter of sharing the source code, the source code belongs to them. For example, on the vWorker site, under Legal, it says: "Employer will receive exclusive and complete copyrights to all work purchased." The source code is part of the deliverable.

I don't know which freelancer site you did this through, but it's likely they have similar language.

  • 2
    This may depend on the country and/or the contract you have made with the client.
    – Simon
    Commented Apr 24, 2012 at 6:16
  • Downvoted - it is impossible to state explicitly that "the work belongs to them", this is not true, and varies widely between countries, and indeed US states. For instance in the state of California copyright ownership does NOT automatically pass to the contracting party. Who owns the code will depend on the contract in existence between the parties, the terms and conditions of the site through which the contract was arranged, and the local laws of the states of both parties, roughly in that order. Commented Apr 25, 2012 at 15:11
  • @GavinCoates, that's why I used vWorker as an example. In order to accept a project, one must accept their terms, which trumps California law.
    – tcrosley
    Commented Apr 27, 2012 at 16:59

If your goal is to do more work for this client, give them the source code. It's a small project and the client will go to someone else just to spite you. I know I would

Since there was no agreement, give the client the code, but get a written agreement that you are allowed to use, sell, alter, for personal or future work.

If you were paid by the hour, you can charge for your time to put the code together and send to the client.

  • +1. Sometimes they ask for it, even if they don't know the next steps - maybe they store it somewhere and never touch it again. But if you get into an argue with them, chances are high you will not get hired again.
    – Andy
    Commented Dec 20, 2012 at 10:35

My first thought was not, but then reading the other responses, it is usually assumed that if you pay for some "custom" software package they own it.

If this was a purchase or license then yes, you would own the code, but this was not case here.

The company is likely asking for it so they can maintain it going forward. They may have some internal person, they may use you again, or someone else. Their opinion of you will likely have a lot more to do with how well you worked with them, how good the deliverables were, and how much they liked working with you personally.


I'd argue that it depends, as others have said, on the contract in place primarily. Check that first. That will be the key determining factor. If it doesn't specifically state that all of the work, including IP and source code belongs to the client, then check the rules of your country/state. In Australia, for example, in a lot of fields, such as this, unless the IP is spe


In my experience this is common. As stated this should be agreed in advanced, and written in the contract. But he bought your programming time, and the product should be his\hers.

For future contracts: The source code is your insurance. So give out an executable, for testing and seeing that you have done what you where asked to. And just after the payment, you give out the code. That way the client sees that you have done the job, but s\he can't extend it in the future without paying you. (And all requirement change sooner or later)

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