It usually starts with a disagreement about money or a missed deadline. You ask for the code, and the answer is silence, a delay, or "once the last invoice is paid." Meanwhile your app, your domain, or your customer data sits in an account you cannot open.
This is stressful, and it is usually recoverable. Here is the order I would go in. It is general information, not legal advice. For a real dispute, talk to a lawyer.
Key Takeaways
- First secure what you already control: domain, hosting, payment provider, and data.
- Make one clear, written request, listing exactly what you need and by when.
- Check your contract for ownership, payment terms, and handover obligations.
- If you have to, rebuild from what you have. Often it is less than you fear.
Step One: Secure What You Control
Before any argument, check every account your app depends on. Our list of accounts you should own before a developer builds your app covers them all.
- Domain. If it is in your name, change the password and turn on two-factor authentication. If it is not, contact the registrar about the ownership process.
- Hosting and database. If you are the owner, remove the developer's access and export a backup.
- Payment provider. This should always be in your name. Remove their access.
- Data. Export customer and order data from anything you can reach.
Do this quietly and quickly. It protects your business whatever happens next.
Step Two: Read Your Contract
Look for:
- Ownership of the work. Does it assign the code to you, and when? Some contracts transfer ownership only after full payment.
- Payment status. Have you paid for what was delivered?
- Handover obligations. Does it require the developer to deliver code and credentials?
Ownership matters because, under US law, a copyright transfer must be in writing and signed (17 U.S.C. Section 204), and contractor-written code is usually not a "work made for hire" by default (US Copyright Office, Circular 30). If you have no written assignment, a lawyer can tell you where you stand. Our post on who owns the code a contractor writes explains the background.
Step Three: One Clear Written Request
Send a short, calm email:
- What you need: the full source code, database export, and credentials for listed accounts.
- The format: access to a repository, or a download.
- The deadline: a reasonable one, such as seven days.
- The money: if you owe for delivered work, say you will pay it on receipt. If you dispute an amount, say which part and why.
Keep emotion out of it. This email may be read later by a lawyer, a mediator, or a judge.
Step Four: If That Fails
- Separate the money from the code. Often the block is an unpaid invoice. If you owe it, paying it (or paying the undisputed part) is frequently the fastest route.
- Offer a paid handover. A few hours at their rate to document and transfer can save weeks.
- Use the platform's process. If you hired through a freelance marketplace, its dispute process may help.
- Get legal advice. A letter from a lawyer changes the tone of many disputes. Small claims court may be an option for smaller amounts, depending on your state.
Step Five: Plan B, Rebuild
If the code never comes back, you still have more than you think: the live app to look at, your designs, your data, and a clear idea of what works. That is a good specification. A rebuild from a working reference is usually faster and cheaper than the original build. Read should you rewrite or refactor your app and how to rescue a failing software project.
A Concrete Version
A cafe owner's online ordering app is running, but the freelancer who built it disputes the final $1,500 invoice because of extra changes, and stops replying.
The owner checks accounts: the domain and payment provider are in the cafe's name. The hosting and code are in the freelancer's personal account.
The owner sends one email: full code and hosting transfer within seven days; $1,000 of the invoice is undisputed and will be paid on transfer; the remaining $500 for changes that were never agreed in writing is disputed.
The freelancer replies after five days, accepts $1,200, and transfers the repository and hosting. The owner pays, removes the freelancer's access, and writes a one-page note on everything learned. Next time, the code lives in the cafe's account from day one.
The Honest Counterpoint
Developers get burned too. Unpaid invoices are a real problem for freelancers, and holding code is sometimes the only pressure they have. If you owe money for work you accepted, the fair move and the fast move are usually the same: pay it. Before assuming bad faith, ask whether your side of the agreement is complete. Disputes about "extra changes" are why written change orders exist. See what is a change order in software development.
Frequently Asked Questions
Can a developer legally keep my code?
It depends on your contract and what has been paid. This is exactly where a lawyer earns their fee.
My developer disappeared entirely. What now?
Secure your accounts, then read what to do when a developer ghosts you.
How do I prevent this next time?
Code in your repository from day one, accounts in your name, milestone payments, and a written ownership clause. See fixed-price software contract: what to include.
Can a new developer recover code from the live app?
Only partly. What users see in the browser can be viewed, but the server side cannot. Plan for a rebuild of those parts.
The Bottom Line
Secure what you control, read your contract, make one calm written request, and separate the money from the code. If you end up rebuilding, a clear plan makes it faster. The honest read can turn what your app does today into a spec, and our software factory rebuilds at a fixed price, and you own everything we build.
Roberto Espinoza is CEO of Ruzora, which builds custom software for business owners at a fixed price and places pre-vetted senior LATAM engineers with US teams. Get a free honest read on your idea.
