Skip to content
David VanAssche
Horror StoryEUR 466K

The Contractor Who Cost Us EUR 466K and Our Source Code

Three Dutch freelancers, two good years, one Belastingdienst audit -- and an IP ownership question that keeps the CTO up at night.

CloudForge was a mid-stage SaaS company out of Denver that had found product-market fit in Europe. Rather than set up a full Dutch entity, the VP of Engineering took what seemed like the smart path: hire three Dutch freelance developers as ZZP'ers -- zelfstandigen zonder personeel, the Dutch term for self-employed professionals without staff. The arrangement looked clean. Each developer had a KVK registration, invoiced monthly excluding BTW under the reverse-charge mechanism, and signed a contractor agreement drafted by CloudForge's US outside counsel.

Pieter, the lead backend developer, billed EUR 95 per hour. Sanne handled frontend and UX at EUR 85 per hour. Daan did DevOps and infrastructure at EUR 90 per hour. All three worked 40 hours a week, 46 weeks a year. Combined annual cost: approximately EUR 1.2 million in contractor invoices, with no employer social contributions, no pension, no holiday allowance, no sick leave risk. From Denver, this looked like a 30-40% savings compared to hiring them as employees.

The arrangement worked beautifully -- for exactly two years.

The Audit Letter

In February 2026, CloudForge's Dutch fiscal address received a letter from the Belastingdienst. The tax authority had identified CloudForge through its risk-based enforcement model, which explicitly targets the IT sector for false self-employment (schijnzelfstandigheid). The enforcement moratorium that had protected these arrangements for nearly a decade ended on January 1, 2025. As of January 1, 2026, the Belastingdienst could impose vergrijpboetes -- culpable conduct penalties -- of 25% to 100% of the tax owed for arrangements involving gross negligence or intent.

The letter announced a boekenonderzoek -- a formal book examination of CloudForge's contractor arrangements.

The Inspector's Assessment

The Belastingdienst inspector applied the holistic assessment framework established by the Dutch Supreme Court in the 2023 Deliveroo ruling. Under this framework, classification depends not on what the contract says but on how the relationship actually functions. The inspector examined three key indicators:

First, organizational embedding. All three developers worked in CloudForge's codebase, using CloudForge's GitHub repositories, Jira boards, and Slack channels. They attended daily standups, participated in sprint planning, and followed CloudForge's deployment processes. Their work was indistinguishable from what a CloudForge employee would do. Under Dutch law, this is textbook inbedding -- organizational integration -- and it is the strongest indicator of an employment relationship.

Second, authority and direction. CloudForge's product managers assigned tasks. Code reviews were mandatory. Coding standards were defined by the company. Sprint cadences were set by the engineering lead in Denver. The developers did not determine what to build, when to build it, or how to structure their workday. This constituted werkinhoudelijke aansturing -- work-related direction -- pointing firmly toward employment.

Third, personal labor obligation. Each contract contained a substitution clause allowing the developer to send a replacement. In practice, no substitution had ever occurred. CloudForge's CTO admitted that he would never accept an unknown developer showing up to work on the codebase. The substitution clause was fiction.

The inspector's conclusion: all three arrangements constituted employment relationships. CloudForge owed loonheffing -- payroll taxes -- retroactively from January 1, 2025, the date the enforcement moratorium ended.

The Tax Bill

The back-assessment covered 13 months (January 2025 through January 2026). For each developer, the Belastingdienst calculated:

Employer social security contributions -- AWf unemployment premium at the high rate of 7.74% (the flex-contract rate, since no permanent employment contract existed), Aof disability premium at 7.63%, Whk return-to-work fund at 1.52%, childcare surcharge at 0.50%, and ZVW employer healthcare levy at 6.10%. Total employer premiums: approximately 23.5% of salary up to the EUR 79,409 maximum contribution base.

For the 13-month period, the combined employer social security premiums across all three developers came to approximately EUR 61,000.

Holiday allowance owed: 8% of the deemed gross salary for each developer. That added EUR 31,000.

Pension contributions: the inspector determined that CloudForge's activities potentially triggered a mandatory sector pension fund obligation. Retroactive employer pension contributions were estimated at EUR 53,000.

The subtotal for back-assessments: EUR 145,000. The Belastingdienst added belastingrente (interest) at approximately 5.0% per annum on the overdue payroll taxes: EUR 4,000.

Then came the vergrijpboete. The inspector argued that CloudForge's arrangement demonstrated at minimum grove schuld -- gross negligence. The company had engaged three full-time, long-term, single-client developers with complete organizational integration and had made no effort to assess whether the arrangements constituted employment under Dutch law, despite the well-publicized end of the enforcement moratorium. The penalty: 25% of the tax owed, or EUR 36,000.

Total Belastingdienst assessment: EUR 185,000.

The three developers, meanwhile, filed their own civil claims. Reclassification as employees entitled them to benefits they had never received: accrued vacation days (20 statutory days per year, times two years), holiday allowance (8% of salary for the full two years), and continued salary during any periods of illness. One developer had taken three weeks off for a knee surgery and received nothing -- as an employee, he would have been entitled to full salary continuation. The civil claims added approximately EUR 145,000 across all three developers.

Combined tax and civil exposure: EUR 330,000.

The IP Question

Then the CTO asked the question that nobody in Denver had considered: "Do we still own the code?"

Under the Dutch Auteurswet -- the Copyright Act of 1912 -- the rules for IP ownership depend on the employment relationship. Article 7 of the Auteurswet provides that when an employee creates a work in the performance of their employment duties, the employer is the original copyright holder by legal fiction. There is no transfer -- the employer is deemed the author from the moment of creation.

For contractors, the rule is reversed. Copyright vests in the creator -- the contractor -- not the client. The client only obtains rights through an explicit written assignment, known as an akte van overdracht (deed of transfer).

CloudForge's contractor agreements, drafted by US outside counsel, contained a "work for hire" clause -- standard language in American IP agreements. But "work for hire" is a concept under US copyright law (17 U.S.C. Section 101). It does not exist under Dutch law. The clause had no legal effect in the Netherlands.

The agreements also contained an IP assignment provision. This was stronger ground -- but its enforceability was now entangled with the reclassification question. CloudForge's Dutch IP lawyer laid out three scenarios:

Scenario one, the favorable reading: if the developers were retroactively deemed employees, Article 7 of the Auteurswet kicks in and CloudForge was the author all along. The IP assignment clause becomes moot because the company owned the code by operation of law. This was the best case, but it required a civil court to confirm the retroactive employment relationship -- which the developers had every incentive to resist on the IP question even while embracing it on the benefits question.

Scenario two, the gap theory: the Belastingdienst reclassification was for tax purposes only. Tax reclassification and civil-law reclassification are separate proceedings. If the contractor agreements were voided as sham arrangements but a civil court had not yet applied Article 7, there could be a period where IP ownership was genuinely uncertain -- the original contractor agreements were compromised, but the employment-based ownership had not been legally established.

Scenario three, the assignment survives: the IP assignment clause in the contractor agreements, while poorly drafted under Dutch law, might be interpreted as a valid standalone transfer that survived reclassification. But this required litigation to confirm, and the outcome was uncertain.

CloudForge's CTO was looking at a codebase built over two years by three developers who might -- or might not -- be the legal owners of what they had written. The company's Series B investors were not amused.

The Settlement

CloudForge settled with all three developers for a combined EUR 466,000: the Belastingdienst assessment of EUR 185,000, the civil claims totaling EUR 145,000 (negotiated down from the initial demands), and a separate IP assignment agreement -- a proper akte van overdracht under Dutch law -- in which each developer formally assigned all copyrights to CloudForge in exchange for EUR 15,000 each. Legal fees across Dutch employment counsel, tax counsel, and IP counsel added another EUR 91,000.

The IP assignment was the most expensive piece of leverage the developers held. They knew CloudForge could not afford ambiguity about who owned the codebase heading into a funding round. The EUR 45,000 paid for three signatures on a document that should have cost nothing -- if anyone had structured the original arrangements under Dutch law instead of copy-pasting American templates.


The Lesson

The nearly decade-long Dutch enforcement moratorium on contractor classification created a false sense of safety that evaporated on January 1, 2025. Full-time, long-term, organizationally embedded ZZP arrangements in the IT sector are among the highest-risk configurations under the Deliveroo holistic assessment framework. And the tax exposure is only half the story. The intersection between reclassification and Dutch copyright law creates a second front -- an IP ownership question -- that can threaten the company's core assets. Every contractor agreement with a Dutch ZZP'er should contain an explicit IP assignment clause compliant with Dutch law, not US "work for hire" language. And every long-term, full-time contractor arrangement should be assessed for employment risk before the Belastingdienst does it for you.


What This Actually Costs

Cost ComponentAmount (EUR)
Belastingdienst back-assessment (13 months, 3 developers)145,000
Belastingrente (interest)4,000
Vergrijpboete (25% gross negligence penalty)36,000
Civil claims: accrued vacation, holiday allowance, sick pay145,000
IP assignment payments (3 developers x EUR 15,000)45,000
Dutch employment lawyer38,000
Dutch tax counsel28,000
Dutch IP lawyer25,000
Total~EUR 466,000

What the arrangement "saved" over two years vs. employment: approximately EUR 360,000 in avoided social charges and benefits. What it actually cost: EUR 466,000 plus months of executive distraction plus IP risk that nearly derailed a funding round. Net result: EUR 106,000 worse off than if they had hired employees from day one.

This scenario is an illustrative composite built from documented Dutch regulatory outcomes, real legal frameworks, and verified financial mechanics. Company names and characters are fictional. No specific client engagement is depicted.

Have questions about this topic? Let's talk on LinkedIn