AnswersWeb Development

How do I protect ownership of agency-built software?

9 min read|Updated June 19, 2026
A business owner and a developer reviewing a software development contract and source code on a laptop
Short answer

Get a written contract that assigns all intellectual property to you on final payment, requires source code delivery, and bans work-for-hire ambiguity. Insist on your own hosting, repositories, and domain accounts, plus a documented handover. Without an explicit IP-assignment clause, the agency that wrote the code usually owns it by default.

Key facts
  • Under Canadian copyright law, the person who creates a work usually owns the copyright by default — so without a written assignment clause, the agency that wrote your software can legally own it, even after you've paid in full.
  • An IP-assignment clause and a 'work made for hire' clause are not the same thing; Canadian law has no broad work-for-hire doctrine for contractors, so an explicit assignment is what actually transfers ownership.
  • Owning the running website is not the same as owning the source code — many agencies deliver a live site while retaining the underlying code, design files, and the right to reuse it.
  • Open-source components (MIT, GPL, and similar licences) inside your build can't be 'owned' by anyone; you own your custom code while those parts stay under their original licences.
  • Custom software in Canada commonly runs $15,000–$50,000+ CAD, which makes a few hundred dollars of legal review of the contract cheap insurance against losing the asset.
  • Holding your own domain registrar, hosting, code repository, and analytics accounts in your name is the practical half of ownership that contract language alone can't enforce.

Who Owns It by Default — and Why That's the Trap

By default, the agency or developer who writes the code usually owns it — not you, the company that paid for it. This surprises most business owners, and it's the single biggest reason software-ownership disputes happen. Under Canadian copyright law (and most comparable regimes), copyright in a created work belongs to its author unless ownership is transferred in writing. A contractor or agency is the author of the code they write. Paying their invoice buys you the deliverable and, typically, a licence to use it — it does not automatically transfer the copyright.

That distinction sounds academic until you try to leave. The agency that 'owns' your software can decline to hand over source code, charge to release it, reuse your custom build for a competitor, or hold a renewal hostage. None of that requires bad faith — it's simply the default the law hands them when nobody wrote it down differently.

The fix is not goodwill; it's a clause. Your contract needs an explicit, present-tense assignment of all intellectual property rights in the work to you, ideally triggered by final payment. 'The Agency hereby assigns to the Client all right, title and interest in the deliverables upon receipt of full payment' does in one sentence what no amount of trust will. Without it, you are renting software you believe you bought — and the moment to discover that gap is before you sign, not the day you decide to switch providers.

Get this reviewed by a lawyer who handles IP. On a $15,000–$50,000+ CAD custom build, a few hundred dollars of legal review is the cheapest insurance you'll buy.

The Contract Clauses That Actually Protect You

Five clauses do the real work. Get them in writing before any code is written, because renegotiating ownership after delivery is far harder.

IP assignment. The core clause: a present-tense transfer of all copyright and IP in the deliverables to you, conditioned on final payment so the agency stays protected until they're paid. Watch for weasel wording like 'grants a licence to use' — a licence is not ownership and can be revoked or limited.

Source code delivery. Ownership of code you can't access is theoretical. The contract should require delivery of the complete, current source code, plus design files and any documentation, at project completion or on request — pushed to a repository in your account, not the agency's.

Work-for-hire language, used correctly. 'Work made for hire' is a US concept with no broad equivalent for contractors in Canada, so don't rely on it as a substitute for an assignment. Use it as belt-and-suspenders alongside an explicit assignment, never instead of one.

Moral-rights waiver. Canadian authors retain moral rights even after assigning copyright. A clean handover includes a written waiver of moral rights so you can modify, rebrand, or extend the work without the original author's objection.

No-reuse / exclusivity scope. Decide explicitly whether the agency may reuse the custom work elsewhere. Generic boilerplate and open-source components they can reuse; the bespoke parts you paid to develop should be yours alone. Spell out which is which.

If an agency resists a straightforward IP-assignment clause on a custom build, treat that as information. At SearchPod, client-owned work is the default — you own what we build for you.

Own the Accounts, Not Just the Code

Contract language protects the code; account ownership protects everything around it. The most common way businesses lose effective control of their own software has nothing to do with copyright — it's that the agency holds the keys. Even with a perfect IP clause, you're stuck if the domain, hosting, and repository all sit in someone else's name.

Put these in accounts you own, with you as the primary administrator, from day one:

Domain registrar — your domain should be registered to your business, in an account you control. Domains held 'on your behalf' by an agency are a frequent hostage point during a breakup.

Hosting and infrastructure — the servers or platform your software runs on (the cloud account, the hosting plan) belong in your name, with the agency granted access as a collaborator, not as the owner.

Code repository — your source code should live in a GitHub, GitLab, or equivalent organization owned by your business, with the agency added as a contributor. This makes 'deliver the source code' continuous rather than a one-time handover you have to chase.

Third-party services and keys — payment processors, email services, analytics, and any API keys should be in your accounts, with the agency holding delegated access.

The principle is simple: the agency works inside your accounts; they don't own accounts on your behalf. This is the same standard SearchPod applies to ad accounts and tracking — the client owns the assets, the agency operates them. It costs nothing to set up at the start and saves an expensive, ugly extraction later. If you're already mid-project, audit who holds each account today and migrate ownership before you need to.

The Handover: What 'Owned' Looks Like in Practice

You truly own your software when you could hand it to another developer tomorrow and they could run, modify, and deploy it without contacting the original agency. That test — not a clause in a PDF — is the real definition of ownership, and a proper handover is what makes it true.

A complete handover package includes the full source code in your repository, the database and its schema or export, all design and asset files, environment configuration and deployment instructions, a list of third-party services and dependencies with their licences, and admin credentials transferred into your accounts. Documentation matters as much as code: undocumented custom software that only its author understands is a soft form of lock-in, even when you legally own every line.

Mind the open-source layer. Most modern software is built partly on open-source frameworks and libraries (React, Next.js, WordPress plugins, and so on). Nobody 'owns' those — they stay under their original licences (MIT, GPL, Apache). What you own is your custom code on top. A good contract distinguishes the two so expectations are clear: you're not buying ownership of the framework, you're buying ownership of what was built with it.

Plan the exit while the relationship is good. The cheapest time to confirm you can leave cleanly is when nobody wants to — request a sample handover or a documentation review early. If an agency can't or won't show you what leaving would look like, that reluctance is the answer. Month-to-month terms and a clean handover clause keep the relationship honest: an agency that knows you can walk and take everything with you has every incentive to keep earning the work, which is exactly the dynamic you want.

Related questions

Usually not. Under Canadian copyright law, the author — the agency or developer who wrote the code — owns the copyright by default. Paying the invoice typically buys you the deliverable and a licence to use it, not ownership of the code itself. Ownership only transfers if your contract includes a written IP-assignment clause.

An IP assignment is a written transfer of copyright and IP rights from the agency to you. 'Work made for hire' is largely a US concept with no broad equivalent for contractors in Canada. So in Canada an explicit assignment is what actually transfers ownership; treat work-for-hire wording as a backup, never as a replacement for the assignment.

It depends entirely on your contract. Generic boilerplate and open-source components they can and will reuse — that's normal. The bespoke functionality you paid to develop should be yours exclusively, which means a no-reuse or exclusivity clause covering the custom parts. If the contract is silent, the default often favours the agency, so spell it out.

No, and you don't need to. Frameworks and libraries like React, Next.js, or WordPress stay under their own open-source licences — no one owns them outright. You own the custom code built on top of them. A clear contract separates your proprietary code from the open-source layer so there's no confusion about what was actually transferred.

Audit who controls each asset — domain, hosting, repository, and third-party accounts — then migrate ownership to accounts in your business's name with you as primary admin. Request a full source-code and documentation handover. If the relationship is intact, frame it as standard housekeeping; doing it now is far easier than during a dispute.

Want a second opinion on your situation?

Get a free, no-obligation proposal. We’ll look at your site and your market and tell you honestly what we’d do — and what we wouldn’t.

Get Free Proposal →

No upfront fees. No long contracts. If you’re not satisfied after the first 30 days, you don’t pay.

Get Free Proposal
Get Free ProposalCall