Selling Software Engineering Time Across the EU: VAT, Reverse-Charge, and Permanent-Establishment Rules That Decide Where You Owe Tax

#EU VAT software services
Sandor Farkas - Founder & Lead Developer at Wolf-Tech

Sandor Farkas

Founder & Lead Developer

Expert in software development and legacy code optimization

A Berlin Symfony consultancy invoices a French SaaS company for three months of backend development work. A German GmbH sends two engineers to Amsterdam for a six-month on-site engagement. An Irish-registered SaaS studio hires a Spanish freelancer to build a React front-end. All three scenarios involve EU VAT software services — and each one produces a different tax outcome. Get the treatment wrong and you are either undercharging your client (collecting no VAT when you should) or creating a tax liability in a country where you are not registered and have no idea an obligation exists.

This post is not legal or tax advice. It is a practical orientation for software consultancies, freelancers, and engineering-led product studios operating across EU borders, covering the four decisions that drive most of the risk: where VAT is due, whether reverse-charge applies, when on-site presence tips into permanent establishment, and which OSS or IOSS schemes simplify what would otherwise be a multi-country registration problem.

The Default Rule for B2B Services: Tax Where the Customer Is

Under the EU VAT Directive (2006/112/EC), the default supply-of-services rule for B2B transactions is that the service is taxed at the place where the customer is established — not where the supplier is. This is sometimes called the "B2B general rule" or, misleadingly, the "reverse-charge rule." If you are a German consultancy and your client is a French company registered for VAT, the supply is treated as taking place in France. Your invoice does not carry German VAT. Instead, your French client accounts for the tax domestically under the reverse-charge mechanism.

Article 196 of the VAT Directive is the specific provision that makes the customer responsible for paying VAT on cross-border B2B services when the supplier is not established in the customer's member state. In practice, this means your invoice to an EU business client should include:

  • Your own VAT registration number
  • The client's VAT registration number
  • The explicit text "VAT reverse-charged — Article 196 of Council Directive 2006/112/EC" (or the national-language equivalent)
  • Zero VAT charged

The critical qualifier: this only applies to business-to-business transactions. Your client must actually be a taxable person — meaning they are VAT-registered and receiving the service for business purposes. If you invoice a French individual consumer rather than a French company, the reverse-charge does not apply and different rules govern where you owe the tax.

Verifying the Client's VAT Status

Before issuing a reverse-charge invoice, verify your client's VAT number in the EU's VIES system (ec.europa.eu/taxation_customs/vies). A valid VIES result is your documented proof that the reverse-charge is justified. Screenshot it and save it with the invoice. If a client provides a VAT number that does not validate in VIES, treat the transaction as B2C until you receive a corrected number, because a reverse-charge invoice to a non-registered customer is legally incorrect and leaves you exposed in an audit.

Some legitimate businesses are VAT-exempt at certain thresholds — small businesses in Germany (Kleinunternehmer), for example, may not be VAT-registered even if they are genuine companies. In those cases the reverse-charge cannot apply; you invoice with your own domestic VAT unless the client can confirm they are registered elsewhere. The grey zone is narrow but worth knowing: not every business is a "taxable person" for VAT purposes.

The Permanent Establishment Risk: When On-Site Presence Changes Everything

The reverse-charge framework described above works cleanly for remote software development engagements. The rules become significantly more complicated when your engineers are physically present in the client's country — and not just for a day or two, but for months.

"Permanent establishment" (PE) is a concept from both VAT law and corporate income tax law. The definitions are not identical, which is a source of confusion. For VAT purposes, a PE is created when a consultancy has a sufficiently fixed and permanent physical presence in another member state with the human and technical resources to supply or receive services there. For corporate income tax, the thresholds are set by bilateral tax treaties (most of which follow the OECD Model Convention) rather than EU directives.

The corporate tax PE risk is the one that catches most engineering consultancies off guard. Under the OECD Model Convention, a PE is typically created when a company has a fixed place of business in another country for more than a defined threshold — usually around six months — or when it has a dependent agent who habitually concludes contracts on its behalf in that country. An engineer who works on-site at a French client for eight months, operating as the de-facto project lead who scopes work and accepts change requests, can be argued by the French tax authority (DGFiP) to constitute a dependent agent. If that argument succeeds, the German consultancy has a French PE, owes French corporate income tax on profits attributable to that PE, and faces substantial back-assessments plus penalties.

The mitigation is not particularly complicated in principle, even if it requires careful documentation in practice. Engineers on long-term on-site placements should operate under statements of work that make clear they are delivering a defined service under the German parent's direction — not acting as agents who commit the parent company contractually in France. The on-site role should be structured as execution, not sales. Client-facing documents should make clear that contracts are concluded in Germany. Short rotations of multiple engineers are structurally safer than a single individual being continuously on-site for an extended period. None of this is rocket science, but it needs to be deliberate from the start of the engagement rather than addressed after the DGFiP sends its first letter.

VAT Registration Thresholds and Mandatory Registration

A separate question from PE is whether cross-border activity triggers a VAT registration obligation in another member state. For B2B software services delivered under the reverse-charge, the answer is generally no — the customer handles the VAT domestically, and you do not need to register where your client is. This is one of the significant administrative simplifications the reverse-charge provides.

The exception arises when you supply services that are not covered by the general B2B rule — for example, admissions to live events or access to certain digital products where the place-of-supply rules differ. Software development services, consulting, and similar professional services to registered businesses consistently fall under the general B2B rule and do not normally create a VAT registration obligation for the supplier in the client's country.

Where the question gets live for software consultancies is if the business also sells to non-business customers (end consumers) across EU borders — for example, if a studio sells SaaS subscriptions or downloadable software directly to individuals in multiple EU member states. In that case, the distance-selling rules and the EU-wide threshold of €10,000 per calendar year become relevant. Above that threshold, VAT is due in each consumer's country. This is exactly where OSS and IOSS come in.

OSS and IOSS: The Simplified Registration Options

The One Stop Shop (OSS) and Import One Stop Shop (IOSS) were introduced in July 2021 to consolidate the multi-country VAT registration burden that the old distance-selling rules imposed. The Union OSS scheme allows a business established in the EU to register once in its home member state and declare and pay VAT on all B2C supplies made across the EU through a single return. The tax authority in the home state then distributes the collected VAT to each destination country.

For a Berlin-based studio selling SaaS subscriptions to individual consumers across France, Spain, and the Netherlands: instead of registering for VAT in three countries separately, the studio registers for OSS through the German Bundeszentralamt für Steuern (BZSt), files a single quarterly return, and pays all EU VAT in one place.

IOSS is the equivalent for goods imported from outside the EU with a value of up to €150. Most pure-software businesses will find OSS more relevant than IOSS.

The practical catch: OSS does not eliminate the need to know the correct VAT rate in each customer's country. You must apply the rate of the destination country to each consumer transaction. Germany's standard rate is 19%; France's is 20%; the Netherlands' is 21%; Spain's is 21%. OSS makes the registration and payment simpler; it does not flatten the rates into a single number. For a custom software development studio with a B2C product line, building per-country rate tables into the billing system is non-optional once you are on OSS.

What German, French, Spanish, and Dutch Tax Authorities Check on Invoices

Tax authority auditors in each country have specific invoice fields they look for on cross-border B2B software invoices. Missing or incorrect fields are the most common source of disputes on routine B2B engagements — not exotic PE questions.

Germany (Finanzamt): Required fields are the full legal name and address of both supplier and recipient, the Steuernummer or USt-IdNr of both parties, the supply date or period, a description of the service (general terms like "IT consulting" are accepted, but more specific descriptions reduce the chance of a query), the net amount, the explicit statement that VAT is reverse-charged and the legal basis (Article 196), and the invoice number. Missing the VAT number of either party is the most frequent trigger for an audit query on German cross-border invoices.

France (DGFiP): French invoicing requirements under Article 242 nonies A of the CGI are detailed. For a reverse-charge invoice, the DGFiP specifically expects the phrase "Autoliquidation" on the invoice alongside the Article 196 reference, the SIREN or SIRET number of the French client, and the service description in sufficient detail to match the business purpose stated in the client's purchase order. "Software development services" is acceptable; a vague "professional services" tag is not.

Netherlands (Belastingdienst): Dutch requirements align closely with the EU directive. The Belastingdienst requires the Dutch client's BTW-nummer (VAT number), the text "BTW verlegd" on the invoice, and the date of supply or service period. One area where Dutch auditors have been active: verifying that the described services match the economic substance of the engagement — particularly for IT staff augmentation contracts that look economically like employment.

Spain (AEAT): Spanish invoices for B2B reverse-charge should include the NIF-IVA of the Spanish client, the text "Inversión del sujeto pasivo" (the Spanish equivalent of reverse-charge), and the service period. AEAT has been increasingly attentive to multi-month software development engagements and has, in a number of cases, challenged the B2B characterization of individual freelancers invoicing Spanish companies — similar to the PE risk, with employment reclassification rather than permanent establishment as the mechanism.

Connecting Tax Structure to Engagement Structure

The tax structure your tech stack strategy consultancy uses should reflect how you actually deliver work. Remote-only engagements where all engineers are based in the home member state are the cleanest: the reverse-charge handles VAT, PE risk is minimal, and the compliance burden is a correctly worded invoice and a VIES check on file. On-site or hybrid engagements that extend beyond three months need documented statement-of-work boundaries, engineer rotation policies, and ideally a sign-off from a tax advisor in the client's country confirming the PE analysis before the engagement starts rather than after.

Recurring multi-year client relationships — common in custom software development and legacy modernization work — deserve a periodic review. Tax rules change, bilateral treaty interpretations shift, and a structure that was clean in 2022 may have accumulated risk by 2026. Treat the cross-border tax review as a recurring item in your annual operations calendar, not a one-time setup decision.

If your business is growing to the point where you have engineers in multiple EU countries regularly, a custom software development services structure that legally separates operations by country — subsidiary or branch rather than direct secondment — may be worth the administrative overhead. The point at which that becomes cost-effective is a question for your tax advisor, but it is a real option once the cross-border work volume is large enough.

The Practical Checklist

For any new cross-border B2B software engagement: check the client's VAT number in VIES and save the result. Confirm the client is a taxable person receiving the service for business purposes. Issue the invoice with your VAT number, the client's VAT number, a clear service description, the service period, and the reverse-charge reference to Article 196. If the engagement includes on-site presence lasting more than two months, get a PE analysis from a tax advisor in the client's country before the engagement starts. If your business also sells B2C digital products across the EU, check whether your cumulative B2C sales exceed €10,000 per year and register for OSS if they do.

None of this is operationally burdensome once the process is set up. The failure mode is not complexity — it is the assumption that EU internal market means tax uniformity, when in practice it means shared rules applied by 27 different national tax authorities with their own audit priorities and enforcement styles.

Wolf-Tech works with European software consultancies and engineering-led product teams on exactly these kinds of operational and architectural questions. If you are structuring a new cross-border engagement or want a second opinion on how your current invoicing holds up under a German or French audit, reach out at hello@wolf-tech.io or visit wolf-tech.io for a free consultation.