Running a Software Consultancy GmbH in Germany: BaFin Traps, Professional Liability Insurance, and the Fixed-Price Contract Clauses That Actually Protect You
Most engineering-led founders who set up a software GmbH in Germany think the hard part is landing clients. It is not. The hard part is the legal and regulatory surface area that accumulates invisibly — right up until a FinTech client asks for a BaFin licence opinion, a fixed-price project runs 40 percent over scope, or a Swiss engagement triggers a wage tax withholding obligation nobody warned you about.
This post is the practitioner's guide I wish had existed when I started Wolf-Tech. It is not legal advice — for your specific situation, you need a German Rechtsanwalt and a Steuerberater. But it maps the territory so you know where the landmines are before you step on them.
The BaFin Licensing Trap That Catches Software GmbHs Off-Guard
BaFin, Germany's financial regulator, does not only regulate banks. It regulates functions — and if your software performs a regulated function on behalf of users, the licensing obligation can attach to you, not just to your client.
The specific exposure point for software consultancies is the § 32 KWG banking licence requirement and, since PSD2, the ZAG (Zahlungsdiensteaufsichtsgesetz) payment services framework. The scenarios where a software GmbH inadvertently enters regulated territory include:
Account aggregation and PFM features. If you build a personal finance management tool that reads account data via open banking APIs and aggregates it for end users, you may be providing Account Information Services (AIS) under ZAG. Your client needs an AIS licence — or a BaFin-licensed sub-contractor relationship. If neither is in place and your GmbH is the entity touching the API, BaFin may take the position that you are the unlicensed AIS provider.
Escrow or payment initiation logic. Building a marketplace checkout where funds sit in a holding state in your application's logic — even briefly, even if routed through Stripe — can look like payment initiation services (PIS) or e-money services to BaFin, depending on implementation details.
Crypto-adjacent work. Since MiCA came into force across the EU, crypto asset services are a regulated category. Writing a backend that manages wallets, executes swaps, or custodies private keys puts you squarely in regulated territory.
The practical rule: before you start a FinTech engagement, get a written scope statement from your client confirming which BaFin licences they hold and which regulated functions your software is explicitly excluded from performing. If the client cannot provide this, flag it to your own legal counsel before signing. This is not paranoia — it is contract hygiene.
Three Insurance Products Every Software GmbH Should Carry
German law does not mandate professional liability insurance for software companies the way it does for lawyers or auditors. That means most GmbH founders either under-insure or buy the wrong product. Here are the three layers that actually matter.
1. Berufshaftpflichtversicherung (Professional Indemnity)
This covers financial losses your clients suffer as a result of errors or omissions in your professional services — a buggy migration that corrupts production data, incorrect technical advice that leads to an expensive rebuild, a missed security vulnerability in code you audited. Standard coverage starts at €250,000 per claim; for mid-size enterprise clients, you want at least €1 million. The coverage gap to watch: most standard policies exclude intentional acts and consequential losses beyond direct damage. If a performance issue you introduced causes a client's SaaS to lose customers, the lost revenue claim may be excluded. Read the Ausschlüsse (exclusions) section carefully, not just the headline coverage amount.
2. Cyber-Versicherung (Cyber Liability)
Separate from professional indemnity and increasingly required by enterprise clients before contract signature. Covers your own first-party costs (incident response, forensics, notification obligations under GDPR Art. 33) as well as third-party claims from clients whose data was compromised via your systems. Given that a software consultancy typically has client credentials, API keys, and source code in its development environment, the exposure is real. The gap to watch: many cyber policies exclude known vulnerabilities — meaning if you had an unpatched CVE in your toolchain at the time of breach, coverage may be denied.
3. Betriebshaftpflichtversicherung (General Business Liability)
The base layer. Covers bodily injury and property damage arising from your business operations. Less directly relevant for a pure software shop, but required by most co-working space leases and client premises access agreements. Do not skip it — it is cheap and some clients will refuse to let contractors on-site without it.
The combination of all three typically costs a software GmbH between €3,000 and €8,000 per year depending on revenue and risk profile. Treat it as a cost of doing business, not an optional expense.
Werkvertrag vs Dienstvertrag: Choosing the Right Contract Type
This distinction matters more than most software founders realize, because it determines what your client can demand and what remedies they have if things go wrong.
A Werkvertrag (contract for work and services) obligates you to deliver a defined result — a working system, a specific feature, a migration with defined acceptance criteria. If the result is defective, the client has statutory warranty claims (Gewährleistung) for two years under § 634a BGB. They can demand rectification, a price reduction, or ultimately contract rescission.
A Dienstvertrag (service contract) obligates you to provide effort — hours of competent engineering work — not to guarantee a result. There is no statutory warranty for outcome. If the architecture you advised turns out to be wrong, the client's remedy is tort law, not contract warranty law, and that is a much harder case for them to make.
Most software consultancy engagements should be structured as Dienstverträge where possible, because software is inherently uncertain — requirements change, clients make scope decisions mid-project, and outcomes are not purely within the consultant's control. The challenge is that fixed-price contracts with defined deliverables look like Werkverträge to a German court even if you call them something else. The label does not control the legal characterisation — the economic substance does.
Fixed-Price Contract Clauses That Actually Protect You
Fixed-price projects are commercially attractive but legally dangerous if your contract does not account for the realities of software delivery. These are the clauses that matter.
A precise Leistungsbeschreibung with an explicit change order protocol. The scope of a Werkvertrag is what is written in the Leistungsbeschreibung (statement of work). Anything the client requests that is not in that document is additional work that entitles you to additional compensation. The problem is that without a written change order protocol, the client will characterise every scope addition as "we assumed that was included." Your contract must specify: changes are defined in writing, signed by both parties, and priced before work begins. Verbal approvals do not count.
A Gewährleistungsausschluss limiting warranty to six months. The statutory warranty period under German law for Werkverträge is two years. You can reduce this to six months by contract for commercial clients (B2B — the limitation is not valid for consumers). Get this clause in. The standard formulation limits warranty claims to defects reported within six months of formal acceptance (Abnahme), and restricts remedies to one opportunity for rectification before the client can invoke price reduction.
A formal Abnahme clause with deemed-acceptance provision. Abnahme (formal acceptance) is the trigger for several important legal consequences: the warranty clock starts, the risk of accidental loss transfers to the client, and you become entitled to final payment. Your contract must define what constitutes acceptance — typically a written sign-off after a defined testing period — and include a deemed-acceptance clause stating that if the client does not raise documented defects within X days of delivery, acceptance is deemed granted. Without this, a passive client can delay acceptance indefinitely and withhold your final payment.
A liability cap at contract value. German law allows parties to cap liability in B2B contracts at the value of the contract, except in cases of intentional misconduct or gross negligence (grobe Fahrlässigkeit). Use this. A €50,000 project should not expose you to €500,000 in consequential loss claims.
Explicit exclusion of consequential damages. Related to the liability cap: exclude lost profits, loss of data, and indirect damages from your liability exposure. These are standard exclusions in well-drafted software contracts and courts generally uphold them in B2B relationships.
Cross-Border Engagements and the Wage Tax Trap
If your software GmbH works with clients in Switzerland, Austria, or other EU countries and you send employees or contracted subcontractors to the client's premises, you may trigger local wage tax withholding obligations even for short assignments. Switzerland in particular has a 15-day rule: Swiss clients are required to withhold tax from payments to foreign contractors in some cantons if the assignment exceeds 15 days.
This catches founders off-guard because the obligation sits with the client, but the client will often present it as your problem — or deduct it from your invoice without warning. The fix is straightforward: in your cross-border contract, specify that the client is responsible for any local tax withholding obligations and that invoice amounts are net of any such obligations. If the client insists on withholding, that amount must be documented and you must be able to use it as a tax credit in Germany under the applicable double taxation agreement.
For longer engagements where you or a team member will be physically present in another country for more than 183 days in a year, speak to your Steuerberater before the engagement begins — you may be creating a permanent establishment.
A Note on the Freelancer vs GmbH Question
If you are reading this while still deciding between operating as an independent Freiberufler and setting up a GmbH, the calculus has shifted somewhat in recent years. The GmbH provides liability protection and allows you to retain earnings in the company at the lower corporate tax rate rather than paying income tax on everything distributed. For a consultancy generating €200,000+ per year in revenue, the tax efficiency usually outweighs the administrative overhead.
The key downside of GmbH status for software consultants is the risk of Scheinselbständigkeit (false self-employment) reclassification if a large portion of your revenue comes from a single client and you work on-site in a way that resembles employment. BaFin is not the only regulator to worry about — the Deutsche Rentenversicherung audits GmbH contractors and can require retroactive social security contributions if it concludes the arrangement is economically equivalent to employment.
The structural fix is the same whether you are operating as a Freiberufler or a GmbH: maintain multiple clients, avoid integration into the client's operational hierarchy, keep your own tools and work hours, and document your independence in your contract language.
Getting the Operational Basics Right
Beyond the legal and insurance framework, three operational decisions have an outsized impact on how smoothly your GmbH runs:
A good Steuerberater who understands software businesses — not just a generic small business tax advisor — will save you far more than their fee. VAT treatment for intra-EU services, the R&D tax incentive (Forschungslagengesetz), and cross-border invoice compliance are all areas where a generalist will miss legitimate optimisations.
A standard set of contract templates reviewed by a German IT lawyer, not copied from the internet. The one-time legal cost for proper templates is typically €1,500–3,000. You will use them for every engagement for years.
A disciplined invoicing and collections process. German commercial law requires payment within 30 days of invoice receipt (§ 271a BGB) unless otherwise agreed, but enforcing this requires a documented dunning process. Small claims up to €5,000 can be recovered efficiently through the German Mahnverfahren (payment order procedure) without a full court case.
Wolf-Tech has been operating as a Berlin-based software GmbH for over 18 years. If you are building or scaling a software consultancy in Germany and have questions about structuring client engagements or navigating the regulatory landscape, reach out at hello@wolf-tech.io or visit wolf-tech.io — we are happy to share what we have learned.

