---
title: "Werkvertrag vs Dienstvertrag for software in Austria"
canonical: https://wavect.io/blog/werkvertrag-vs-dienstvertrag-software-austria/
language: en
description: "Werkvertrag owes a result, Dienstvertrag owes effort. What the word Softwaredienstleister actually commits a vendor to, plus the Scheinselbstandigkeit trap."
image: "https://wavect.io/img/blog/headers/header_werkvertrag-vs-dienstvertrag-software-austria.png"
---

[**Back**](/blog/overview/)

[![Kevin Riedl](/img/team/kevin.webp)](/team/kevin-riedl/)

[Kevin Riedl](/team/kevin-riedl/) https://linkedin.com/in/wsdt

8 min read · 9 Aug 2026

[**Next**](/blog/werkvertrag-vs-time-material-austrian-saas/)

# Werkvertrag vs Dienstvertrag: What the Word "Dienstleister" Actually Commits Your Vendor To

TL;DR

A Werkvertrag owes a defined result and puts scope risk on the contractor; a Dienstvertrag owes labour under your direction and puts scope risk on you. The German word Dienstleister shares a root with Dienstvertrag, which nudges buyers into evaluating day rates and available hours when they should be evaluating a promise of result, but the label is marketing and says nothing about the contract: most Softwaredienstleister contract on a Werkvertrag for scoped work. Comparing day rates across the two is meaningless because you are pricing different instruments. Effort-based contracts are the honest answer for genuinely unknowable scope, embedded capacity, and maintenance retainers. If a contract says Werkvertrag but the working reality is daily direction, your own hours and no result owed, Austrian authorities look at the reality and reclassification lands retroactive social-insurance consequences on the client. Ask what the vendor owes you if the estimate was wrong, who writes the acceptance criteria, who owns the IP on full payment, and how change requests are priced.

Quick verdict: a Werkvertrag owes you a **result**. A Dienstvertrag owes you **effort**, delivered under your direction. When you search for a "Softwaredienstleister" and sign with one, the word in the label points at the second thing while what you almost certainly want is the first. That gap is not pedantry: it decides who eats the cost when the estimate was wrong.

This is a legal-mechanics post, not legal advice. We work with an Austrian commercial lawyer for the actual contracts. The point here is the conceptual map, so you can brief your own lawyer with sharp questions instead of paying them to explain the basics.

## What is the difference between a Werkvertrag and a Dienstvertrag?

Austrian civil law separates them by what is owed. A **Werkvertrag** (ABGB §1165 and following) owes a defined work product, the "Werk". The contractor organises the how, bears the scope risk, and gets paid on acceptance. A **Dienstvertrag** owes labour: the person works under your direction, integrated into your organisation, on your schedule, and is paid for the time regardless of whether the outcome landed. Between the two sits the **freier Dienstvertrag**, which owes labour without integration into the company.

The everyday German word for a supplier, *Dienstleister*, is built on the same root as Dienstvertrag. That is a linguistic accident, not a legal one: a Softwaredienstleister can and usually does contract on a Werkvertrag. But the accident matters, because it nudges buyers toward evaluating vendors on effort (day rates, headcount, hours available) when the thing they actually need to evaluate is a promise of result.

| Dimension | Werkvertrag | Dienstvertrag | Freier Dienstvertrag |
| --- | --- | --- | --- |
| What is owed | A defined result | Labour under direction | Labour, no integration |
| Who bears scope risk | The contractor | The client | The client |
| Direction and schedule | Contractor decides how and when | Client directs (weisungsgebunden) | Largely the worker's own |
| Payment trigger | Acceptance of the result (Abnahme, §1167) | Elapsed time | Elapsed time |
| Warranty | Gewährleistung applies to the Werk | None on outcomes | None on outcomes |
| Substitution | Contractor may use its own team | Personal performance owed | Usually personal |
| Typical software use | Scoped build, [discovery](/glossary/discovery-phase/), migration, takeover | Employment | [Staff augmentation](/glossary/staff-augmentation/), ongoing capacity |

## Why does this matter when buying custom software?

Because the two contracts answer different questions, and only one of them answers "will this exist and work". Under a Werkvertrag, if the vendor underestimated the complexity, the vendor eats it. Under an effort-based contract, you eat it, and the vendor is fully compliant with the agreement the entire time the budget drains. Neither is dishonest. They allocate risk in opposite directions, and you should know which direction you signed.

This is also why comparing day rates across the two is meaningless. A lower hourly rate attached to an obligation of effort is not cheaper than a higher rate attached to an obligation of result, any more than a cheaper lottery ticket is cheaper than a bond. You are pricing different instruments. We laid out the surrounding model choice in [the software build models](/software-development-options/).

## Does "Softwaredienstleister" mean the vendor works on a Dienstvertrag?

No. [Softwaredienstleister, Softwareagentur, Software-Dienstleister and Entwicklungspartner](/glossary/software-agency/) are marketing labels for the same category of firm, and most of them contract on a Werkvertrag for scoped work. The label tells you nothing about the contract. Ask for the contract type explicitly, in the first call, and treat a vague answer as information.

The label that *does* signal something different is [IT-Dienstleister](/glossary/it-service-provider/) or Systemhaus. That is a different business: running your existing IT under an SLA, which genuinely sits on a Dienstvertrag or framework agreement plus availability commitments. If a shortlist mixes both categories, the proposals will not be comparable, and that is usually the first sign the brief went to the wrong place.

![Kevin Riedl](/img/team/kevin.webp)

"Ask what the vendor owes you if the estimate was wrong. The answer is the contract type, whatever the website calls the company."

## What does a Werkvertrag actually commit us to?

A defined [SoW](/glossary/sow/) for a defined fee. If we misjudge the complexity, we absorb the cost and do not invoice extra for having been wrong. What a Werkvertrag does **not** mean is a refund if a date slips: the term means legally bound to deliver the agreed result, and client remedies follow the standard Gewährleistung path of improvement, price reduction, or withdrawal in serious cases. The milestone schedule and the acceptance criteria live in the SoW so both sides know when the work is finished.

## When is an effort-based contract the honest answer?

Three cases where insisting on a Werkvertrag is the wrong instinct:

1. **The scope is genuinely unknowable.** Pure research, or integration against an undocumented third-party [API](/glossary/api/). A fixed result promise here is a bet dressed as a contract, and the price will carry the risk premium.
2. **You need capacity inside a team that already has direction.** That is staff augmentation, and forcing it into a Werkvertrag creates a fiction about who decides what gets built.
3. **Maintenance and small changes.** A [retainer](/glossary/retainer/) with a monthly cap is the right shape for on-call and occasional tweaks.

For a scoped build with a capped budget, Werkvertrag wins. The pricing-model side of this, fixed price against time and materials, is worked through separately in [Werkvertrag vs time and materials for Austrian SaaS](/blog/werkvertrag-vs-time-material-austrian-saas/).

## The Scheinselbständigkeit trap

If a contract is labelled Werkvertrag but the working reality is a Dienstvertrag, Austrian authorities look at the reality, not the label. The markers are the ones you would expect: the person takes daily direction from you, works your hours, sits in your tooling and reporting lines, has no own business infrastructure, and owes personal performance rather than a result. Reclassification brings retroactive social-insurance and payroll-tax consequences for the client, not just the contractor.

The practical consequence for buyers is simple. If what you want is a person embedded in your team taking your direction, contract for that honestly as a freier Dienstvertrag or through an employment arrangement. Do not dress it as a Werkvertrag because the paperwork is easier. Ask your accountant and your lawyer before the first invoice, not after an audit letter.

## How acceptance changes the conversation

A Werkvertrag has a moment where the work is either accepted or rejected with specific defects listed (ABGB §1167). That single mechanism is what makes the contract enforceable, and it only works if the acceptance criteria are written down at the right level: outcomes and observable behaviour, not user-story detail. Ambiguous criteria are the largest source of disputes we see, which is why we run acceptance criteria as an explicit output of discovery.

Effort-based contracts have no equivalent moment. Sign-off is a timesheet. That is fine when you are buying capacity and terrible when you thought you were buying a product.

## Five questions to ask any vendor before you sign

- **Werkvertrag or an effort-based contract?** If the answer takes more than a sentence, ask again.
- **Who bears the cost if the estimate was wrong?** This is the same question, phrased so the answer cannot hide.
- **What are the acceptance criteria, and who writes them?** If nobody, there is no enforceable result.
- **Who owns the source code and IP on full payment?** Get it in the clause, not the sales deck.
- **How do change requests get priced and how does the timeline shift?** Every real Werkvertrag has this clause. Use it instead of quietly expanding scope.

How we answer those in practice sits on our [custom software development service](/services/software-development/). For a build shaped exactly this way, the [Bond Analytics case study](/case-studies/bond-analytics/) shows a scoped engagement with a defined result rather than a rented team.

## Final thoughts

Match the contract to the risk shape of the work, and never to the noun on the vendor's homepage. A defined outcome with a capped budget is a Werkvertrag: the contractor carries the scope risk and you get an acceptance moment. Genuinely open-ended work or embedded capacity is honestly an effort-based contract, and pretending otherwise creates a Scheinselbständigkeit exposure that lands on you.

Whatever you sign, have an Austrian commercial lawyer read it. The fee is usually under €1,500, and it is the cheapest insurance in the whole project.

## You may also like..

[**Werkvertrag vs T&M for Austrian SaaS** The pricing-model side of the same decision: legal mechanics, acceptance, VAT and bookkeeping for fixed price against time and materials.](/blog/werkvertrag-vs-time-material-austrian-saas/) [**Software agency vs IT service provider** Building new software against keeping existing IT running. Two businesses, two contract types, and why briefs land in the wrong category.](/compare/software-agency-vs-it-service-provider/)

Software buying and funding

## Continue through this cluster

[Start with the cornerstone**Software Agency Proposal Teardown: 12 Clauses That Change Price, Scope and Ownership**](/blog/software-agency-proposal-teardown/)

- [Software Agencies in Tyrol Compared 2026](/blog/software-agencies-tyrol-comparison-2026/)
- [Software Agency Proposal Teardown: 12 Clauses That Change Price, Scope and Ownership](/blog/software-agency-proposal-teardown/)
- [AI Consulting in Austria 2026: An Honest Guide for SMEs](/blog/ai-consulting-austria-2026/)
- [AI Funding in Austria 2026: aws, FFG, Premium, KMU.DIGITAL](/blog/ai-funding-austria-2026/)
- [MVP Development for Startups in Austria: Agencies, Cost and Selection 2026](/blog/best-software-agencies-austria-ai-mvp/)

Inbox, without the noise

## Follow the work that matters to you

Get a short email when we publish something new. Follow the whole blog or only the problems you care about.

[**Back**](/blog/overview/)

[![Kevin Riedl](/img/team/kevin.webp)](/team/kevin-riedl/)

[Kevin Riedl](/team/kevin-riedl/) https://linkedin.com/in/wsdt

8 min read · 9 Aug 2026

[**Next**](/blog/werkvertrag-vs-time-material-austrian-saas/)

New posts by email ×

×

Get new posts by email

A short email when we publish. Free, no tracking.

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/blog/werkvertrag-vs-dienstvertrag-software-austria/#webpage",
      "@type": "WebPage",
      "dateModified": "2026-08-09",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-08-09",
      "url": "https://wavect.io/blog/werkvertrag-vs-dienstvertrag-software-austria/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "abstract": "A Werkvertrag owes a defined result and puts scope risk on the contractor; a Dienstvertrag owes labour under your direction and puts scope risk on you. The German word Dienstleister shares a root with Dienstvertrag, which nudges buyers into evaluating day rates and available hours when they should be evaluating a promise of result, but the label is marketing and says nothing about the contract: most Softwaredienstleister contract on a Werkvertrag for scoped work. Comparing day rates across the two is meaningless because you are pricing different instruments. Effort-based contracts are the honest answer for genuinely unknowable scope, embedded capacity, and maintenance retainers. If a contract says Werkvertrag but the working reality is daily direction, your own hours and no result owed, Austrian authorities look at the reality and reclassification lands retroactive social-insurance consequences on the client. Ask what the vendor owes you if the estimate was wrong, who writes the acceptance criteria, who owns the IP on full payment, and how change requests are priced.",
  "articleBody": " Blog overview/Business and regulation/Software buying and funding Werkvertrag vs Dienstvertrag: What the Word \"Dienstleister\" Actually Commits Your Vendor To TL;DR A Werkvertrag owes a defined result and puts scope risk on the contractor; a Dienstvertrag owes labour under your direction and puts scope risk on you. The German word Dienstleister shares a root with Dienstvertrag, which nudges buyers into evaluating day rates and available hours when they should be evaluating a promise of result, but the label is marketing and says nothing about the contract: most Softwaredienstleister contract on a Werkvertrag for scoped work. Comparing day rates across the two is meaningless because you are pricing different instruments. Effort-based contracts are the honest answer for genuinely unknowable scope, embedded capacity, and maintenance retainers. If a contract says Werkvertrag but the working reality is daily direction, your own hours and no result owed, Austrian authorities look at the reality and reclassification lands retroactive social-insurance consequences on the client. Ask what the vendor owes you if the estimate was wrong, who writes the acceptance criteria, who owns the IP on full payment, and how change requests are priced. Quick verdict: a Werkvertrag owes you a result. A Dienstvertrag owes you effort, delivered under your direction. When you search for a \"Softwaredienstleister\" and sign with one, the word in the label points at the second thing while what you almost certainly want is the first. That gap is not pedantry: it decides who eats the cost when the estimate was wrong. This is a legal-mechanics post, not legal advice. We work with an Austrian commercial lawyer for the actual contracts. The point here is the conceptual map, so you can brief your own lawyer with sharp questions instead of paying them to explain the basics. What is the difference between a Werkvertrag and a Dienstvertrag? Austrian civil law separates them by what is owed. A Werkvertrag (ABGB §1165 and following) owes a defined work product, the \"Werk\". The contractor organises the how, bears the scope risk, and gets paid on acceptance. A Dienstvertrag owes labour: the person works under your direction, integrated into your organisation, on your schedule, and is paid for the time regardless of whether the outcome landed. Between the two sits the freier Dienstvertrag, which owes labour without integration into the company. The everyday German word for a supplier, Dienstleister, is built on the same root as Dienstvertrag. That is a linguistic accident, not a legal one: a Softwaredienstleister can and usually does contract on a Werkvertrag. But the accident matters, because it nudges buyers toward evaluating vendors on effort (day rates, headcount, hours available) when the thing they actually need to evaluate is a promise of result. Dimension Werkvertrag Dienstvertrag Freier Dienstvertrag What is owed A defined result Labour under direction Labour, no integration Who bears scope risk The contractor The client The client Direction and schedule Contractor decides how and when Client directs (weisungsgebunden) Largely the worker's own Payment trigger Acceptance of the result (Abnahme, §1167) Elapsed time Elapsed time Warranty Gewährleistung applies to the Werk None on outcomes None on outcomes Substitution Contractor may use its own team Personal performance owed Usually personal Typical software use Scoped build, discovery, migration, takeover Employment Staff augmentation, ongoing capacity Why does this matter when buying custom software? Because the two contracts answer different questions, and only one of them answers \"will this exist and work\". Under a Werkvertrag, if the vendor underestimated the complexity, the vendor eats it. Under an effort-based contract, you eat it, and the vendor is fully compliant with the agreement the entire time the budget drains. Neither is dishonest. They allocate risk in opposite directions, and you should know which direction you signed. This is also why comparing day rates across the two is meaningless. A lower hourly rate attached to an obligation of effort is not cheaper than a higher rate attached to an obligation of result, any more than a cheaper lottery ticket is cheaper than a bond. You are pricing different instruments. We laid out the surrounding model choice in the software build models. Does \"Softwaredienstleister\" mean the vendor works on a Dienstvertrag? No. Softwaredienstleister, Softwareagentur, Software-Dienstleister and Entwicklungspartner are marketing labels for the same category of firm, and most of them contract on a Werkvertrag for scoped work. The label tells you nothing about the contract. Ask for the contract type explicitly, in the first call, and treat a vague answer as information. The label that does signal something different is IT-Dienstleister or Systemhaus. That is a different business: running your existing IT under an SLA, which genuinely sits on a Dienstvertrag",
  "articleSection": "Business & Legal",
  "author": {
    "@id": "https://wavect.io/team/kevin-riedl/#person",
    "@type": "Person",
    "name": "Kevin Riedl",
    "sameAs": [
      "https://www.wikidata.org/wiki/Q139796365",
      "https://www.linkedin.com/in/wsdt",
      "https://github.com/wsdt"
    ],
    "url": "https://wavect.io/team/kevin-riedl/"
  },
  "dateModified": "2026-08-09",
  "datePublished": "2026-08-09",
  "description": "A Werkvertrag owes a defined result and puts scope risk on the contractor; a Dienstvertrag owes labour under your direction and puts scope risk on you. The German word Dienstleister shares a root with Dienstvertrag, which nudges buyers into evaluating day rates and available hours when they should be evaluating a promise of result, but the label is marketing and says nothing about the contract: most Softwaredienstleister contract on a Werkvertrag for scoped work. Comparing day rates across the two is meaningless because you are pricing different instruments. Effort-based contracts are the honest answer for genuinely unknowable scope, embedded capacity, and maintenance retainers. If a contract says Werkvertrag but the working reality is daily direction, your own hours and no result owed, Austrian authorities look at the reality and reclassification lands retroactive social-insurance consequences on the client. Ask what the vendor owes you if the estimate was wrong, who writes the acceptance criteria, who owns the IP on full payment, and how change requests are priced.",
  "headline": "What \"Dienstleister\" Commits Your Vendor To",
  "image": "https://wavect.io/img/blog/headers/header_werkvertrag-vs-dienstvertrag-software-austria.svg",
  "inLanguage": "en",
  "mainEntityOfPage": {
    "@id": "https://wavect.io/blog/werkvertrag-vs-dienstvertrag-software-austria/",
    "@type": "WebPage"
  },
  "publisher": {
    "@id": "https://wavect.io/#organization",
    "@type": [
      "Organization",
      "ProfessionalService",
      "LocalBusiness"
    ]
  },
  "url": "https://wavect.io/blog/werkvertrag-vs-dienstvertrag-software-austria/",
  "wordCount": 1800
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "item": "https://wavect.io/",
      "name": "Home",
      "position": 1
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/overview/",
      "name": "Blog overview",
      "position": 2
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/topics/business-regulation/",
      "name": "Business and regulation",
      "position": 3
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/clusters/software-buying-funding/",
      "name": "Software buying and funding",
      "position": 4
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/werkvertrag-vs-dienstvertrag-software-austria/",
      "name": "Werkvertrag vs Dienstvertrag for software in Austria | ",
      "position": 5
    }
  ]
}
```
