Comparison

Contract for work (Werkvertrag) or service contract (Dien­stver­trag) in software development?

Whether a software project counts as a contract for work or a service contract determines acceptance, remedies for defects, payment and termination. Here you will learn how they differ and what to look out for in development and maintenance contracts.

Options Contract for work (Werkvertrag) · Service contract (Dienstvertrag)Last updated October 16, 2026
Featured image: Contract for work (Werkvertrag) or service contract (Dienstvertrag) in software development?
Short & clear

Under a contract for work (Werkvertrag, §§ 631 et seq. of the German Civil Code, BGB), the contractor owes a specific result – such as working software according to a specification – which the client accepts and for which remedies for defects apply. Under a service contract (Dienstvertrag, §§ 611 et seq. BGB), the provider owes only diligent performance of services, such as development hours, consulting or support, with no guarantee of success. For clearly defined software projects, a contract for work usually fits; for agile further development, consulting and ongoing support, a service contract is more suitable. What matters is the actual content of the contract, not its title – this overview does not replace legal advice.

The options

Strengths and weaknesses at a glance

Contract for work (Werkvertrag)

The contractor undertakes to produce the promised work, the client to pay the agreed remuneration (§ 631 BGB). The result is what is owed – for example, software that meets the agreed requirements.

Strengths

  • A clear result as the subject of the contract – the contractor bears the risk that the work succeeds.
  • Acceptance as a defined checkpoint; remuneration generally becomes due only upon acceptance (§ 641 BGB).
  • Statutory remedies for defects such as subsequent performance, price reduction, withdrawal or damages (§ 634 BGB).
  • Combines well with a fixed price and installment payments after milestones (§ 632a BGB).

Weaknesses

  • Requires a precise specification – unclear requirements lead to disputes over what work is owed.
  • Changes during the project require change orders and slow down agile ways of working.
  • Contractors factor in the risk of success, and acceptance procedures cost time on both sides.

Ideal for: Clearly defined undertakings such as a website, an app version or an interface with a fixed scope of work.

Service contract (Dien­stver­trag)

The service provider owes the promised services, the recipient the agreed remuneration (§ 611 BGB). What is owed is careful work, not a particular outcome.

Strengths

  • High flexibility: priorities and requirements can be adjusted on an ongoing basis.
  • Fits agile development, consulting, support and working within the customer's project team.
  • No acceptance required; payment for work performed, usually by time spent.
  • Less specification effort at the start of the project.

Weaknesses

  • No guaranteed outcome and no contract-for-work remedies for defects – the risk of the outcome largely lies with the client.
  • In the event of poor performance, what remains is essentially damages for breach of duty (§ 280 BGB), which is often hard to prove.
  • If external developers are integrated and subject to detailed instructions, risks such as false self-employment or disguised temporary agency work arise.

Ideal for: Agile further development, consulting, support and ongoing maintenance with changing tasks.

Comparison table

The most important criteria compared side by side

CriterionContract for workService contract
Legal basis§§ 631 et seq. BGB§§ 611 et seq. BGB
What is owedA specific result (the work)Diligent performance of services
AcceptanceYes, obligation of the client (§ 640 BGB)No
Payment dueGenerally upon acceptance, installments possibleAfter the services are rendered or after time periods (§ 614 BGB)
Remedies for defectsSubsequent performance, self-remedy, withdrawal, price reduction, damagesNo warranty in the strict sense, damages for breach of duty
Outcome riskMostly with the contractorMostly with the client
TerminationBy the client at any time until completion, with payment consequences (§ 648 BGB)Ordinary under §§ 620 et seq. BGB or the contract, extraordinary under § 626 BGB
Remuneration modelFixed price or time and materials possibleMostly time and materials, flat rate possible
Typical in softwareCustom development to a specification, website, interfaceAgile teams, consulting, support, hotline

Contract for work vs. service contract in software development: the core difference

The difference can be reduced to one question: is a result owed, or an activity? Under a contract for work, the contractor promises to produce a specific piece of software, app or interface that meets the agreed requirements. Under a service contract, they promise to work competently and diligently – whether the desired result is achieved at the end is not the subject of the contract.

The label in the contract alone does not decide. Courts look at what was actually agreed and put into practice: if there is a concrete specification and an acceptance, that points strongly to a contract for work. If developer hours are called off for changing tasks, it points more to a service contract. The creation of custom software is often classified as a contract for work – but the individual case is always what counts.

Acceptance, defects and payment under a contract for work

Acceptance is the central moment of a contract for work. With it, the client recognizes the work as essentially conforming to the contract. From then on, payment generally becomes due, the burden of proof for defects shifts to the client, and the limitation period for defect claims begins. If the client fails to refuse acceptance, citing at least one defect, within a reasonable period, the work may be deemed accepted (§ 640 (2) BGB).

For software projects, it is therefore advisable to define acceptance criteria in advance: which functions are tested, with what data, in what environment? Partial acceptances after milestones and a clear distinction between defects and new requests also make sense. The client's duties to cooperate include, for example, delivering content, access and decisions on time. The more clearly these points are stated in the contract, the smoother acceptance goes.

Agile projects, maintenance and repairs: contract for work or service contract?

Agile methods such as Scrum don't fit seamlessly into the classic contract-for-work model, because the scope is deliberately left open at the start. In practice, there are several approaches: a service contract with clear roles and sprint goals, contracts for work per release or milestone, or a framework agreement with individual orders. What matters is that the contract and the way you actually work together match.

With maintenance contracts, it depends on the individual services. Hotline, consulting and standby are typically services, whereas fixing a specific fault has the character of a contract for work. Software maintenance contracts are therefore often classified as mixed contracts. A repair in which a specific defect is to be fixed is generally governed by contract-for-work law, because the result is what matters.

Contract for work vs. fixed price – and the “freier Dien­stver­trag”

Contract type and remuneration model are two different things. A contract for work can be billed at a fixed price or by time and materials; a service contract is usually paid by the hour or day but can also provide for a monthly flat fee. A fixed price therefore does not automatically turn a service contract into a contract for work. If no remuneration has been agreed, the customary remuneration applies to a contract for work under § 632 BGB.

The term “freier Dienstvertrag” (freelance service contract) comes from Austrian law, where it describes an activity without personal dependence and with its own social security rules. In German law, the closest equivalent is the service contract with a self-employed freelancer. Whether someone is actually self-employed depends on the circumstances, in particular on being bound by instructions and being integrated into the organization. This overview does not replace legal advice.

Our recommendation

For clearly defined undertakings – a website, an app version, an interface – a contract for work with a precise specification and defined acceptance criteria is usually the safer solution for both sides. For agile further development, consulting and support, a service contract or a framework agreement with individual orders is a better fit. Before the project starts, Nano Concepts clarifies with you transparently which services are agreed as a result and which as ongoing support – preferably at a fixed price where the scope is clearly defined. For a legal review of your contract, we recommend a law firm that specializes in IT law.

FAQ

Frequently asked questions

That depends on the content of the contract. If a specifically described piece of software is owed, with acceptance, it is usually a contract for work. If developer services are provided for changing tasks on a time-and-materials basis, that points strongly to a service contract. The individual case is decisive; this note does not replace legal advice.

Software maintenance contracts are often mixed contracts. Hotline and consulting have the character of a service contract, while fixing specific defects is closer to a contract for work. For this reason, the contract should state clearly for each service what is owed, such as response times or defect resolution.

No. The fixed price only governs the remuneration; the contract type follows from the service owed. A contract for work can be billed on a time-and-materials basis, and a service contract can provide for a flat fee. We compare fixed price and time-and-materials billing in a separate comparison.

In the case of material defects, the client may refuse acceptance, but not on account of insignificant defects; the contractor then has to rectify the defects. If the contractor sets a reasonable deadline after completion and the client does not refuse acceptance citing at least one defect, the work may be deemed accepted. Additional notice requirements apply toward consumers.

The freier Dienstvertrag (freelance service contract) is a term from Austrian law for activities without personal dependence. In Germany, people instead speak of a service contract with a freelancer. For distinguishing it from false self-employment, being bound by instructions and being integrated into the organization are what count.

Read more

More comparisons & guides

Comparison

Fixed price or time and materials – which is better for software projects?

A fixed price fits when scope and requirements are clearly described before the project starts – you get budget certainty, and changes are handled through change orders.

Learn more
Comparison

Custom software or SaaS – when does which solution pay off for your company?

Standard software as a service (SaaS) is the right choice if your process is common in your industry and a ready-made solution covers it well: fast start, low initial…

Learn more
Comparison

Cloud, SaaS or on-premise – where should your software run?

SaaS fits if mature off-the-shelf software exists for your process and you don't want any operating effort.

Learn more
Step by step

How is software depreciated in Germany – and does a one-year useful life apply?

For tax purposes, the BMF circular (issued by the German Federal Ministry of Finance) on the useful life of computer hardware and software allows software to be…

Learn more
Costs & budget

What funding is available in Germany for a website, software and digi­tal­iza­tion?

In Germany, digitalization projects can qualify for funding programs from the federal government, the states and the EU – usually as a grant, a low-interest loan or…

Learn more
Costs & budget

How much does a programmer cost per hour?

What a programmer costs per hour depends on experience, specialization, form of employment and billing model – a flat hourly rate says little without the scope of work.

Learn more
Get the right quote in 60 seconds

Needs analysis: Work or service contract?

Answer a few short questions – we usually get back to you within 24 hours with an initial assessment.

Request a project