Free Software Maintenance Agreement Template

Fully editable with standard terms and clauses. Send and e-sign it online.

Bonsai has helped create 1,023,928 documents and counting.

Trusted by thousands of agencies and consulting firms
4.9/5 on G2
4.8/5 on Capterra
Table of contents

What is a software maintenance agreement?


A software maintenance agreement is the contract signed between a software maintenance developer and their client before a project can commence. It discusses the work to be carried out — whether it’s to improve software, fix any issues, or apply upgrades — and ensures both parties are on the same page in terms of responsibilities, project timeline, and payment terms.

Just like software must adapt to market demands thanks to ever-changing technology, you need to adapt a software maintenance agreement for every client you have. A template can help new freelancers to put together this document quickly and effortlessly and guarantee that it includes the necessary information.

Failing to send out a professional software maintenance agreement can affect your credibility as a business and cause delays to the project start date.

Note: Sign up now to get your free software maintenance agreement template that will walk you through the contracting process so that you can successfully onboard your client and get to work faster.

What to include in the software maintenance agreement

Each contract that you create for your freelancing business will differ based on the responsibilities required for a particular collaboration. Even so, there are some items that any software maintenance agreement must have to cover the essential details.

Introduction

A software maintenance agreement will begin with a statement that names the parties involved and how they will be referred to throughout the document.

For instance, this could be something as simple as:

“This contract is between [client’s name] (the “Client”) and [your name] (the “Developer”).”

Any service provider may like to include contact details of both parties in this section, such as organization mailing addresses and phone numbers. That said, by law, just names are sufficient for any type of contract.

The introduction will also state the date from which the agreement will be effective.

Services provided

The section underneath the introduction usually discusses the software to be maintained by the developer. For example, you may write something along the lines of: “inspecting, troubleshooting, and diagnostics of [program] on site until the software is functioning properly again.”

You can be as detailed or vague as you want here. However, consider that the more detail you provide, the clearer the expectations will be between you and your client.

If it’s a large project and there’s a lot of work to be done, avoid having a large chunk of text in this section by using bullet points to list each project milestone.

Timeline or schedule

This part of a software maintenance agreement will outline how long the project will last. If you have a start and end date or certain milestones in mind, state these here.

If the project is ongoing, it’s absolutely fine to say this. Just be sure to include a clause which explains that either party can initiate termination of the contract at any time. This can be in the event of force majeure situations, or any other reason.

Payment details

Software maintenance agreements must have a section on the subject of project payment. These details should have already been discussed with your client during your initial emails or kickoff call.

Do the parties agree on an hourly payment for X amount of hours or on a monthly retainer until the work is complete? State it in this section. Alternatively, list your fixed rate fee for the whole project or each milestone. Do you require a payment upfront to secure the project? Write this down here too.

You may also want to mention briefly what your rates include. Do they purely cover the scope of work or encompass email support throughout the project? Will you be charging extra for weekly meetings or are phone calls included?

Using a software maintenance agreement to flesh out these details can save you and your client a headache later on, and ensure the project goes as smoothly as possible.

Invoicing terms

Once you have filled out payment details in your software maintenance agreement, move on to invoicing terms.

Note down how you’ll be paid and on what kind of schedule, whether it’s through PayPal every two weeks or NET30 via bank transfer. And don’t forget to include late payment fees in the case of non payment.

Keep in mind that none of the information in this section should come as a surprise to your client. Alongside your payment rates and preferred method, it should have been previously talked about before sending out the contract. (This is just good business practice!)

Ownership of rights

This section handles the ownership of any intellectual property created and developed during the project, i.e., the computer software. It reassures your client that they have all rights to the work product once you deliver it and they can use it however they see fit.

A service provider tends to talk about confidentiality in this section since you and your client may exchange sensitive information that they wouldn’t want to become public. Your client may even request that this be included in the software maintenance agreement if it isn’t already.

On the other hand, your client may require you to sign a non-disclosure agreement (NDA) to protect themselves.

Declaration

At the end of any software maintenance agreement will be a section where you declare that all the information in the document is true and correct. You and your client will then proceed with signing the contract to confirm the agreement so that you can get to work.

How to write a software maintenance agreement


Writing a software maintenance agreement may seem like one of the most daunting tasks if you’ve never done it before. But there are some things you can do to not just get the job done, but do it well — and become a pro in the process.

Find out exactly what the client wants

During an initial email or phone conversation, confirm with the company the required services and project deliverables. Ask the following questions:

  • Which stage of the software development life cycle are they at and where do they want to be? What will you be responsible for?
  • Which of the four types of software maintenance do they want you to provide support for? Corrective software maintenance? Adaptive software maintenance? What is the main goal of the project?
  • Do they have a deadline? Do they want you to work a specific number of hours per week or achieve a particular milestone in three weeks?
  • Are you going to access their resources on site or remotely?

Gather as much information as you can to be able to write an accurate and comprehensive contract that will impress your client.

Agree on the terms and conditions

Next, you need to finalize the finer details such as how you’re getting paid and when.

Don’t leave your client scratching their head when they come to read the software maintenance agreement. All expected project terms should be discussed prior to producing the contract. This saves unwarranted back-and-forth between you and your client and builds trust, which is the secret to a happy and thriving business relationship.

Input all of the information

The only thing that’s left to do is fill out the software maintenance agreement based on the information you’ve collected from your client. Take care not to leave anything out and proofread it more than once before sending it through to your contact.

Creating a software maintenance agreement is simple with Bonsai


Putting together a software maintenance agreement takes time, and time is money as a freelancer. The most straightforward way to do this is by using Bonsai’s software maintenance agreement template.

All you have to do is fill out the sections that apply to your specific project and client, download it, and then you can send it in a matter of minutes.

Plus, once you’ve filled out this template on one occasion, you can use the same document to form your next agreement. After all, many of the sections are standard for a software maintenance agreement.

Frequently Asked Questions
Questions about this template.

What is the difference between service agreement and maintenance agreement?

Maintenance is a scheduled routine 'check up' to make sure your software is in good shape. This can be like providing technical support for an existing or new software. A service covers software problems or repairs.

Is a service agreement legally binding?

A service agreement is legally binding. The buyer and service provider are both given some levels of protection in the service contract.

It depends on the length of the contract; if it lasts more than 11 months, registration of the agreement is required. You should register the contract for services amenities as well. Otherwise, it's possible that the other party won't stick to the terms of the agreement in the future.

It depends on the length of the contract; if it lasts more than 11 months, registration of the agreement is required. You should register the contract for services amenities as well. Otherwise, it's possible that the other party won't stick to the terms of the agreement in the future.

How many pages does a software maintenance agreement need to be?

Simply put, your software maintenance agreement should be as long as it needs to be. Keep it as clear and concise as possible but make sure it covers the vital sections.

As a service provider, do I need to get my software maintenance agreement legally reviewed?

Whether you’re making any variety of personal or business agreement, it’s always a good idea to get it legally reviewed. It should follow the correct formatting and incorporate the required details so you can avoid legal problems at a later date.As a service provider, you wouldn’t have to worry about this though if you use a legally-vetted software maintenance agreement, such as the one on the Bonsai app.

Template preview

Free Software Maintenance Agreement Template

Software Maintenance Agreement

Software Engineer
First Name
Last Name
Acme LLC.
Client
First Name
Last Name
Corporation Corp.

This Contract is between Client (the "Client") and Acme LLC, a limited liability company (the "Software Engineer").

The Contract is dated [the date both parties sign].

1. WORK AND PAYMENT.

1.1 Project. The Client is hiring the Software Engineer to do the following: Change, modify, and update software to keep up with customer needs

1.2 Schedule. The Software Engineer will begin work on June 19, 2023 and will continue until the work is completed. This Contract can be ended by either Client or Software Engineer at any time, pursuant to the terms of Section 6, Term and Termination.

1.3 Payment. The Client will pay the Software Engineer a rate of [ENTER AMOUNT HERE] (USD) per hour. Of this, the Client will pay the Software Engineer [ENTER AMOUNT HERE] (USD) before work begins.

1.4 Expenses. The Client will reimburse the Software Engineer's expenses. Expenses do not need to be pre-approved by the Client.

1.5 Invoices. The Software Engineer will invoice the Client at the end of the project. The Client agrees to pay the amount owed within 15 days of receiving the invoice. Payment after that date will incur a late fee of 1.5% per month on the outstanding amount.

1.6 Support. The Software Engineer will not provide support for any deliverable once the Client accepts it, unless otherwise agreed in writing.

2. OWNERSHIP AND LICENSES.

2.1 Client Owns All Work Product. As part of this job, the Software Engineer is creating “work product” for the Client. To avoid confusion, work product is the finished product, as well as drafts, notes, materials, mockups, hardware, designs, inventions, patents, code, and anything else that the Software Engineer works on—that is, conceives, creates, designs, develops, invents, works on, or reduces to practice—as part of this project, whether before the date of this Contract or after. The Software Engineer hereby gives the Client this work product once the Client pays for it in full. This means the Software Engineer is giving the Client all of its rights, titles, and interests in and to the work product (including intellectual property rights), and the Client will be the sole owner of it. The Client can use the work product however it wants or it can decide not to use the work product at all. The Client, for example, can modify, destroy, or sell it, as it sees fit.

2.2 Software Engineer's Use Of Work Product. Once the Software Engineer gives the work product to the Client, the Software Engineer does not have any rights to it, except those that the Client explicitly gives the Software Engineer here. The Client gives permission to use the work product as part of portfolios and websites, in galleries, and in other media, so long as it is to showcase the work and not for any other purpose. The Client does not give permission to sell or otherwise use the work product to make money or for any other commercial use. The Client is not allowed to take back this license, even after the Contract ends.

2.3 Software Engineer's Help Securing Ownership. In the future, the Client may need the Software Engineer's help to show that the Client owns the work product or to complete the transfer. The Software Engineer agrees to help with that. For example, the Software Engineer may have to sign a patent application. The Client will pay any required expenses for this. If the Client can’t find the Software Engineer, the Software Engineer agrees that the Client can act on the Software Engineer's behalf to accomplish the same thing. The following language gives the Client that right: if the Client can’t find the Software Engineer after spending reasonable effort trying to do so, the Software Engineer hereby irrevocably designates and appoints the Client as the Software Engineer's agent and attorney-in-fact, which appointment is coupled with an interest, to act for the Software Engineer and on the Software Engineer's behalf to execute, verify, and file the required documents and to take any other legal action to accomplish the purposes of paragraph 2.1 (Client Owns All Work Product).

2.4 Software Engineer's IP That Is Not Work Product. During the course of this project, the Software Engineer might use intellectual property that the Software Engineer owns or has licensed from a third party, but that does not qualify as “work product.” This is called “background IP.” Possible examples of background IP are pre-existing code, type fonts, properly-licensed stock photos, and web application tools. The Software Engineer is not giving the Client this background IP. But, as part of the Contract, the Software Engineer is giving the Client a right to use and license (with the right to sublicense) the background IP to develop, market, sell, and support the Client’s products and services. The Client may use this background IP worldwide and free of charge, but it cannot transfer its rights to the background IP (except as allowed in Section 11.1 (Assignment)). The Client cannot sell or license the background IP separately from its products or services. The Software Engineer cannot take back this grant, and this grant does not end when the Contract is over.

2.5 Software Engineer's Right To Use Client IP. The Software Engineer may need to use the Client’s intellectual property to do its job. For example, if the Client is hiring the Software Engineer to build a website, the Software Engineer may have to use the Client’s logo. The Client agrees to let the Software Engineer use the Client’s intellectual property and other intellectual property that the Client controls to the extent reasonably necessary to do the Software Engineer's job. Beyond that, the Client is not giving the Software Engineer any intellectual property rights, unless specifically stated otherwise in this Contract.

3. COMPETITIVE ENGAGEMENTS.

The Software Engineer won’t work for a competitor of the Client until this Contract ends. To avoid confusion, a competitor is any third party that develops, manufactures, promotes, sells, licenses, distributes, or provides products or services that are substantially similar to the Client’s products or services. A competitor is also a third party that plans to do any of those things. The one exception to this restriction is if the Software Engineer asks for permission beforehand and the Client agrees to it in writing. If the Software Engineer uses employees or subcontractors, the Software Engineer must make sure they follow the obligations in this paragraph, as well.

4. NON-SOLICITATION.

Until this Contract ends, the Software Engineer won’t: (a) encourage Client employees or service providers to stop working for the Client; (b) encourage Client customers or clients to stop doing business with the Client; or (c) hire anyone who worked for the Client over the 12-month period before the Contract ended. The one exception is if the Software Engineer puts out a general ad and someone who happened to work for the Client responds. In that case, the Software Engineer may hire that candidate. The Software Engineer promises that it won’t do anything in this paragraph on behalf of itself or a third party.

5. REPRESENTATIONS.

5.1 Overview. This section contains important promises between the parties.

5.2 Authority To Sign. Each party promises to the other party that it has the authority to enter into this Contract and to perform all of its obligations under this Contract.

5.3 Software Engineer Has Right To Give Client Work Product. The Software Engineer promises that it owns the work product, that the Software Engineer is able to give the work product to the Client, and that no other party will claim that it owns the work product. If the Software Engineer uses employees or subcontractors, the Software Engineer also promises that these employees and subcontractors have signed contracts with the Software Engineer giving the Software Engineer any rights that the employees or subcontractors have related to the Software Engineer's background IP and work product.

5.4 Software Engineer Will Comply With Laws. The Software Engineer promises that the manner it does this job, its work product, and any background IP it uses comply with applicable U.S. and foreign laws and regulations.

5.5 Work Product Does Not Infringe. The Software Engineer promises that its work product does not and will not infringe on someone else’s intellectual property rights, that the Software Engineer has the right to let the Client use the background IP, and that this Contract does not and will not violate any contract that the Software Engineer has entered into or will enter into with someone else.

5.6 Client Will Review Work. The Client promises to review the work product, to be reasonably available to the Software Engineer if the Software Engineer has questions regarding this project, and to provide timely feedback and decisions.

5.7 Client-Supplied Material Does Not Infringe. If the Client provides the Software Engineer with material to incorporate into the work product, the Client promises that this material does not infringe on someone else’s intellectual property rights.

6. TERM AND TERMINATION.

This Contract is ongoing until the work is completed. Either party may end this Contract for any reason by sending an email or letter to the other party, informing the recipient that the sender is ending the Contract and that the Contract will end in 7 days. The Contract officially ends once that time has passed. The party that is ending the Contract must provide notice by taking the steps explained in Section 11.4. The Software Engineer must immediately stop working as soon as it receives this notice, unless the notice says otherwise. The Client will pay the Software Engineer for the work done up until when the Contract ends and will reimburse the Software Engineer for any agreed-upon, non-cancellable expenses. The following sections don’t end even after the Contract ends: 2 (Ownership and Licenses); 3 (Competitive Engagements); 4 (Non-Solicitation); 5 (Representations); 8 (Confidential Information); 9 (Limitation of Liability); 10 (Indemnity); and 11 (General).

7. INDEPENDENT CONTRACTOR.

The Client is hiring the Software Engineer as an independent contractor. The following statements accurately reflect their relationship:

  • The Software Engineer will use its own equipment, tools, and material to do the work.
  • The Client will not control how the job is performed on a day-to-day basis. Rather, the Software Engineer is responsible for determining when, where, and how it will carry out the work.
  • The Client will not provide the Software Engineer with any training.
  • The Client and the Software Engineer do not have a partnership or employer-employee relationship.
  • The Software Engineer cannot enter into contracts, make promises, or act on behalf of the Client.
  • The Software Engineer is not entitled to the Client’s benefits (e.g., group insurance, retirement benefits, retirement plans, vacation days).
  • The Software Engineer is responsible for its own taxes.
  • The Client will not withhold social security and Medicare taxes or make payments for disability insurance, unemployment insurance, or workers compensation for the Software Engineer or any of the Software Engineer's employees or subcontractors.

8. CONFIDENTIAL INFORMATION.

8.1 Overview. This Contract imposes special restrictions on how the Client and the Software Engineer must handle confidential information. These obligations are explained in this section.

8.2 The Client’s Confidential Information. While working for the Client, the Software Engineer may come across, or be given, Client information that is confidential. This is information like customer lists, business strategies, research & development notes, statistics about a website, and other information that is private. The Software Engineer promises to treat this information as if it is the Software Engineer's own confidential information. The Software Engineer may use this information to do its job under this Contract, but not for anything else. For example, if the Client lets the Software Engineer use a customer list to send out a newsletter, the Software Engineer cannot use those email addresses for any other purpose. The one exception to this is if the Client gives the Software Engineer written permission to use the information for another purpose, the Software Engineer may use the information for that purpose, as well. When this Contract ends, the Software Engineer must give back or destroy all confidential information, and confirm that it has done so. The Software Engineer promises that it will not share confidential information with a third party, unless the Client gives the Software Engineer written permission first. The Software Engineer must continue to follow these obligations, even after the Contract ends. The Software Engineer's responsibilities only stop if the Software Engineer can show any of the following: (i) that the information was already public when the Software Engineer came across it; (ii) the information became public after the Software Engineer came across it, but not because of anything the Software Engineer did or didn’t do; (iii) the Software Engineer already knew the information when the Software Engineer came across it and the Software Engineer didn’t have any obligation to keep it secret; (iv) a third party provided the Software Engineer with the information without requiring that the Software Engineer keep it a secret; or (v) the Software Engineer created the information on its own, without using anything belonging to the Client.

8.3 Third-Party Confidential Information. It’s possible the Client and the Software Engineer each have access to confidential information that belongs to third parties. The Client and the Software Engineer each promise that it will not share with the other party confidential information that belongs to third parties, unless it is allowed to do so. If the Client or the Software Engineer is allowed to share confidential information with the other party and does so, the sharing party promises to tell the other party in writing of any special restrictions regarding that information.

9. LIMITATION OF LIABILITY.

Neither party is liable for breach-of-contract damages that the breaching party could not reasonably have foreseen when it entered this Contract.

10. INDEMNITY.

10.1 Overview. This section transfers certain risks between the parties if a third party sues or goes after the Client or the Software Engineer or both. For example, if the Client gets sued for something that the Software Engineer did, then the Software Engineer may promise to come to the Client’s defense or to reimburse the Client for any losses.

10.2 Client Indemnity. In this Contract, the Software Engineer agrees to indemnify the Client (and its affiliates and their directors, officers, employees, and agents) from and against all liabilities, losses, damages, and expenses (including reasonable attorneys’ fees) related to a third-party claim or proceeding arising out of: (i) the work the Software Engineer has done under this Contract; (ii) a breach by the Software Engineer of its obligations under this Contract; or (iii) a breach by the Software Engineer of the promises it is making in Section 5 (Representations).

10.3 Software Engineer Indemnity. In this Contract, the Client agrees to indemnify the Software Engineer (and its affiliates and their directors, officers, employees, and agents) from and against liabilities, losses, damages, and expenses (including reasonable attorneys’ fees) related to a third-party claim or proceeding arising out of a breach by the Client of its obligations under this Contract.

11. GENERAL.

11.1 Assignment. This Contract applies only to the Client and the Software Engineer. The Software Engineer cannot assign its rights or delegate its obligations under this Contract to a third-party (other than by will or intestate), without first receiving the Client’s written permission. In contrast, the Client may assign its rights and delegate its obligations under this Contract without the Software Engineer's permission. This is necessary in case, for example, another Client buys out the Client or if the Client decides to sell the work product that results from this Contract.

11.2 Arbitration. As the exclusive means of initiating adversarial proceedings to resolve any dispute arising under this Contract, a party may demand that the dispute be resolved by arbitration administered by the American Arbitration Association in accordance with its commercial arbitration rules.

11.3 Modification; Waiver. To change anything in this Contract, the Client and the Software Engineer must agree to that change in writing and sign a document showing their contract. Neither party can waive its rights under this Contract or release the other party from its obligations under this Contract, unless the waiving party acknowledges it is doing so in writing and signs a document that says so.

11.4 Notices.

(a) Over the course of this Contract, one party may need to send a notice to the other party. For the notice to be valid, it must be in writing and delivered in one of the following ways: personal delivery, email, or certified or registered mail (postage prepaid, return receipt requested). The notice must be delivered to the party’s address listed at the end of this Contract or to another address that the party has provided in writing as an appropriate address to receive notice.

(b) The timing of when a notice is received can be very important. To avoid confusion, a valid notice is considered received as follows: (i) if delivered personally, it is considered received immediately; (ii) if delivered by email, it is considered received upon acknowledgement of receipt; (iii) if delivered by registered or certified mail (postage prepaid, return receipt requested), it is considered received upon receipt as indicated by the date on the signed receipt. If a party refuses to accept notice or if notice cannot be delivered because of a change in address for which no notice was given, then it is considered received when the notice is rejected or unable to be delivered. If the notice is received after 5:00pm on a business day at the location specified in the address for that party, or on a day that is not a business day, then the notice is considered received at 9:00am on the next business day.

11.5 Severability. This section deals with what happens if a portion of the Contract is found to be unenforceable. If that’s the case, the unenforceable portion will be changed to the minimum extent necessary to make it enforceable, unless that change is not permitted by law, in which case the portion will be disregarded. If any portion of the Contract is changed or disregarded because it is unenforceable, the rest of the Contract is still enforceable.

11.6 Signatures. The Client and the Software Engineer must sign this document using Bonsai’s e-signing system. These electronic signatures count as originals for all purposes.

11.7 Governing Law. The laws of the state of California govern the rights and obligations of the Client and the Software Engineer under this Contract, without regard to conflict of law principles of that state.

11.8 Entire Contract. This Contract represents the parties’ final and complete understanding of this job and the subject matter discussed in this Contract. This Contract supersedes all other contracts (both written and oral) between the parties.

THE PARTIES HERETO AGREE TO THE FOREGOING AS EVIDENCED BY THEIR SIGNATURES BELOW.

Software Engineer
First Name
Last Name
Acme LLC.
Client
First Name
Last Name
Corporation Corp.