Agreement templates

Software development agreement template

IP assignment, warranties, milestones and payment — the terms specific to a code-delivery engagement.

What this is

A software development agreement is the contract for a build engagement, with two concerns beyond a general services agreement: precise IP assignment for source code (since 'the deliverable' is often the code itself), and a warranty period for post-launch bug fixes.

When to use it

  • For any project where source code, an app, or a platform is being built for a client
  • After a development proposal is accepted, alongside a Statement of Work for milestone detail
  • Whenever code ownership and licensing of third-party components need to be explicit

What to include

IP/code assignment

Explicitly state that source code created for the client transfers on payment, and address open-source/third-party licenses used in the build.

Milestones and acceptance testing

Reference a Statement of Work for milestone detail, with acceptance criteria for each.

Warranty period

A defined window (e.g., 30 days post-launch) for bug fixes at no extra charge, distinct from new feature work.

Third-party costs

Whether hosting, APIs, or licenses are the client's responsibility or bundled into the fee.

Post-launch support

Whether ongoing maintenance is included, and if not, how it's billed separately.

The template

Copy this into your own document, or build it directly as a branded page in Hanko. Bracketed text like [Client Name] is a placeholder to fill in.

Not legal advice — This is a starting point, not legal advice. Contract terms — especially liability, IP ownership, termination, and payment enforcement — vary by jurisdiction and by what you and your client actually negotiate. Have a lawyer review any agreement before you rely on it, particularly for larger engagements.

Software Development Agreement

This Agreement is entered into as of [Date] between [Developer/Studio Legal Name] ("Developer") and [Client Legal Name] ("Client").

1. Services

Developer will design, build and deliver the software described in the Statement of Work dated [Date] (the "Software"), incorporated by reference.

2. Fees & Milestones

Client will pay the fees and follow the milestone schedule set out in the Statement of Work. Invoices are due within [15] days.

3. Intellectual Property

Upon full payment, Developer assigns to Client all right, title and interest in the source code created specifically for this project. Developer retains rights to any pre-existing tools, libraries, or frameworks used, and grants Client a perpetual license to use them as incorporated into the Software. Third-party and open-source components remain subject to their own licenses.

4. Acceptance Testing

Client will test each milestone deliverable within [5] business days and report any deviations from the agreed specification in writing. Developer will correct reported deviations before the milestone is considered complete.

5. Warranty

Developer warrants the Software will perform substantially as specified for [30] days after launch. Bugs reported within this period will be fixed at no additional charge. New features or changes to specifications are billed separately.

6. Third-Party Costs

Hosting, third-party APIs, and licensing fees are [Client's responsibility, billed directly to Client / included in Developer's fee up to $X].

7. Limitation of Liability

Developer's total liability under this Agreement will not exceed the total fees paid by Client under this Agreement.

8. Governing Law

This Agreement is governed by the laws of [State/Country].

Signatures

Developer: ___________________ Date: ______

Client: ___________________ Date: ______

How to customize it

  • Confirm the IP-assignment language matches your actual intent — some developers license rather than assign code, especially for reusable components
  • Set the warranty period to something you can realistically support without it becoming free ongoing maintenance
  • Be explicit about who pays for and owns third-party service accounts (hosting, APIs) after the engagement ends
  • Reference a specific Statement of Work for milestones rather than embedding them directly in this agreement

Common mistakes

  • No warranty period defined, leaving 'is this a bug or a new feature' as a constant point of friction post-launch
  • IP assignment silent on third-party/open-source components, creating ambiguity about what the client actually owns
  • No acceptance-testing window, so 'complete' is never clearly defined for a milestone
  • Hosting and third-party costs left ambiguous, discovered only when the first bill comes due

Frequently asked questions

Does the client own the source code once it's built?

Under this template, yes — upon full payment. Confirm that matches your intent; some developers prefer to license reusable components rather than fully assigning them.

How long should the warranty period be?

30 days is common for smaller projects; longer for larger, more complex builds. Be explicit about what counts as a covered bug fix versus billable new work.

Who's responsible for hosting costs after launch?

State this explicitly — commonly the client's responsibility going forward, but it needs to be clear in the agreement rather than assumed.

Other templates

Sign this agreement, then invoice each milestone

Route it for e-signature in Hanko and bill milestone payments as they're accepted.

One account for proposals, agreements, invoices and client payments.

Get Started

Product updates and the occasional tip, about once a month.