Getting your code back from a development agency comes down to three things:
Most handovers fail on the third one. Founders discover it months later, when a new team opens the box.
We have been on the receiving end of dozens of these handovers. Here is what a complete one looks like, and how to get it.
When founders ask for their code, agencies often hand over a zip file of source files and consider the matter closed. That zip file is maybe half of what you paid for. A complete handover includes:
Copy this list into your handover request email. Agencies do complete handovers for clients who ask precisely.
Two clauses decide how this goes.
The IP clause. In Canada, a contractor owns the copyright in code they write unless it is assigned to you in writing. Most professional agency contracts do assign IP, but many tie the assignment to full payment. If you are mid-dispute and withholding an invoice, understand that you may be withholding your own code. We are not lawyers; if real money is at stake, spend an hour with one before escalating.
The termination clause. Check the notice period and whether there are early-exit fees. Some agencies lock clients into 12-month terms with monthly fees that run whether or not work continues. Know your exposure before you announce the departure.
Work this top to bottom. Most situations resolve on the first or second rung.
Two hard cases deserve straight talk.
The proprietary platform problem. If your app was built on the agency’s in-house platform, there may be no usable code to hand over. The app only runs inside their system, and your contract probably allowed it. Your options:
Painful, all three. The only real cure is prevention: never sign a contract where you cannot leave with a working product.
The “it’s complicated” handover. Sometimes you receive the code and your new developer cannot make it run. Missing configuration, undocumented services, dependencies on the agency’s accounts. Before you accept any handover as final, have an independent developer verify it: can they build the app from what was delivered, and does it run? This is exactly the kind of thing a second opinion on your project covers. Twenty minutes of verification beats discovering the gaps after the agency has moved on.
A handover is complete when you can answer yes to all five:
Until then, keep the file open.
The agency says the code is theirs because I haven’t paid the final invoice. Are they right? Possibly, if the contract ties IP transfer to payment. Paying a disputed final invoice is sometimes the cheapest way to own your code; fighting on principle can cost more than the invoice. Get the contract read by a lawyer before deciding.
Can I just have my new developer rebuild it and skip the fight? Sometimes that is the rational choice, especially for smaller builds. Compare the legal-fight cost against the rebuild cost honestly. But always attempt the professional request first; most agencies hand over without drama, and the repository history is worth having.
What are secret keys and why do I keep hearing about them? They are the passwords your app uses to talk to other services (payments, email, maps). They are deliberately kept out of the code, so a code handover without them produces an app that will not run. Ask for them explicitly, then change them.
Do I owe the agency anything for handover work? Reasonable handover effort is usually billable time unless your contract says otherwise. Paying for a clean, verified handover is almost always worth it.
If you are partway through a messy handover and not sure whether what you have received is complete, we will look at it with you.
Our second opinion on your project is a 30-minute call with our CTO.
We will tell you what is missing, what to ask for, and whether what you have can be built on.
Even if you never hire us, you will leave with a checklist.
Leave with everything you paid for.
We use cookies to enhance your browsing experience and analyze website traffic. You can choose which types of cookies to allow:
These cookies are essential for the website to function properly and cannot be disabled. They are usually set in response to your actions such as logging in or filling forms.
These cookies help us understand how visitors interact with our website by collecting and reporting information anonymously. This includes Microsoft Clarity analytics.
These cookies are used to deliver personalized advertisements and measure advertising effectiveness. They may be set by third-party advertising networks.