Skip to main content
Custom SaaS Development

Who Owns the Code Built by a Software Agency? (What Founders Must Know)

Who owns the source code when a software agency builds your product? IP ownership, work-for-hire clauses, jurisdiction differences, and the contract terms that protect you.

Jahja Nur Zulbeari | | 8 min read

Most founders do not read the IP clause in their development contract until something goes wrong. By then, it is too late.

The question of who owns the code built by a software agency is not complex — but the default answer, in most jurisdictions, is not the one founders expect.

The Short Answer

By default, the agency owns the code. Copyright law in most countries assigns ownership to the creator unless there is a written agreement that transfers ownership to the client. Without an explicit IP assignment clause in your contract, you may be licensing your own product from the agency that built it — and they can potentially restrict your use of it, license it to competitors, or hold it hostage in a payment dispute.

This is not a theoretical risk. It happens.

When a developer writes code, they automatically own the copyright to that code — the same way an author owns the copyright to a book they write. This applies whether the developer is a freelancer, an agency employee, or a contractor.

There are two mechanisms that transfer that copyright to the client:

1. Work-for-hire. In some jurisdictions (notably the US), work created by an employee in the scope of their employment is automatically owned by the employer. For contractors and agencies, a “work-for-hire” designation in the contract can extend this principle — but the rules vary significantly by jurisdiction and the type of work.

2. IP assignment. An explicit written clause in the contract that transfers (“assigns”) all intellectual property rights from the agency to the client. This is the more reliable mechanism across all jurisdictions and should be in every software development contract regardless of where either party is located.

What Your Contract Must Say

A contract that protects your IP ownership needs to cover five things:

1. Explicit IP Assignment Clause

The contract must state, explicitly, that all intellectual property created under the engagement is assigned to you upon payment. Vague language like “work product belongs to client” is not sufficient — it needs to name intellectual property specifically, including source code, documentation, and any derivative works.

Example language:

“Agency hereby irrevocably assigns to Client all right, title, and interest in and to all Intellectual Property created, developed, or invented by Agency in connection with this Agreement, including all copyrights, patents, trade secrets, and other proprietary rights. This assignment takes effect upon receipt of final payment.”

2. Subcontractor Coverage

If the agency uses subcontractors (which most do), the IP assignment must cover work created by those subcontractors. An agency cannot assign IP it does not own — so your contract should require the agency to obtain IP assignments from all subcontractors and pass those rights to you.

3. No Retained Licence

The contract should state that the agency retains no right to use, licence, or reproduce the code after the engagement ends. Without this, the agency may argue they have an implied licence to use the code (for example, as a portfolio piece or as a template for future clients).

4. Pre-Existing IP Carve-Out

Agencies bring pre-existing tools, frameworks, and components to every project — open-source libraries, internal utility code, design system components. These remain the agency’s property (or are governed by their open-source licences). The contract should explicitly list these pre-existing components and confirm they are licensed to you (not assigned), so there is no ambiguity about what is yours and what is not.

5. Escrow or Continuous Access

Do not wait until the end of the project to receive the source code. Require access to the code repository throughout the engagement. If the agency terminates the contract or becomes insolvent mid-project, you need the code that has been written so far — not just a promise that you will receive it upon completion.

Jurisdiction Matters

IP law varies significantly across countries. The key differences:

JurisdictionDefault OwnershipWork-for-Hire ApplicabilityBest Protection
United StatesCreator (agency)Applies to certain commissioned worksExplicit IP assignment + work-for-hire
United KingdomCreator (agency)Not directly applicable to contractorsExplicit IP assignment clause
GermanyCreator (agency); moral rights retainedNot recognisedIP assignment clause (note: German moral rights cannot be waived)
NetherlandsCreator (agency)Not directly applicableExplicit IP assignment
European Union broadlyCreator (agency)Varies by member stateExplicit IP assignment in all cases

The practical conclusion: regardless of jurisdiction, always require an explicit IP assignment clause. Do not rely on work-for-hire doctrine or implied ownership.

Red Flags in Software Development Contracts

Watch for these contract terms that weaken your IP position:

  • “Client receives a perpetual licence to the work product.” A licence is not ownership. The agency retains copyright and can theoretically revoke or modify the licence terms.
  • “IP assignment is conditional on all invoices being paid in full.” Conditional assignment means the agency owns the code until the final invoice is cleared — including during any payment disputes.
  • “Agency retains the right to display work in its portfolio.” This is standard and usually acceptable for public-facing work, but it should be limited to screenshots and descriptions — not access to your source code.
  • “Work product includes pre-existing agency IP.” Fine if the pre-existing IP is listed explicitly. A problem if it is a blanket carve-out that could capture custom components built for your project.
  • No mention of IP at all. Walk away, or get it added before signing.

Infrastructure and Accounts

IP ownership of code is only part of the picture. You also need to own:

  • Cloud provider accounts (AWS, GCP, Azure) — these should be in your name from day one
  • Domain registrations — registered to you, not the agency
  • Third-party service accounts (Stripe, SendGrid, etc.) — your accounts, with the agency added as a team member
  • Repository access — you should own the GitHub/GitLab organisation; the agency is a collaborator

An agency that holds your infrastructure accounts has operational leverage over you regardless of what the IP clause says. Insist on account ownership from the start of the engagement.

What to Do Before Signing

  1. Read the IP clause yourself. Do not rely on the agency’s explanation of it.
  2. Confirm the assignment covers subcontractors.
  3. Get a list of pre-existing/open-source components the agency plans to use.
  4. Require repository access from day one — not delivery of a zip file at the end.
  5. Confirm all infrastructure accounts will be in your name.
  6. If the contract is silent on IP, add a clause before signing. Any agency that objects to an explicit IP assignment clause has something to protect.

Zulbera assigns all IP to clients upon final payment, provides repository access throughout every engagement, and sets up all infrastructure accounts in the client’s name from day one. If you want to understand how we structure our contracts, request a private consultation.

Jahja Nur Zulbeari

Jahja Nur Zulbeari

Founder & Technical Architect

Zulbera — Digital Infrastructure Studio

Let's talk

Ready to build
something great?

Whether it's a new product, a redesign, or a complete rebrand — we're here to make it happen.

View Our Work
Avg. 2h response 120+ projects shipped Based in EU

Trusted by Novem Digital, Revide, Toyz AutoArt, Univerzal, Red & White, Livo, FitCommit & more