Skip to Content
Q&A

0% VAT on Intra-Community Supplies: How to Set It Up in Odoo

EU shipments without VAT — the tax statuses handle it.

Terug naar alle Q&A
November 13, 2025 by
0% VAT on Intra-Community Supplies: How to Set It Up in Odoo
DAADit Group, Nick

Verkoopt u aan zakelijke klanten binnen de EU met een geldig BTW-nummer? Dan factureert u 0% BTW als intracommunautaire levering (ICV). Denk aan een machinebouwer in Eindhoven die aan een Duitse GmbH levert: geen 21% op de factuur, maar 0% met verlegde BTW. Odoo regelt dit automatisch via fiscale posities — mits u ze correct instelt. Zo pakt u het aan.

Fiscale posities activeren

Ga naar Boekhouding → Configuratie → Fiscale Posities. In een standaard Nederlandse Odoo-installatie staan al voorgedefinieerde posities voor EU-intracommunautair en export buiten de EU. Een fiscale positie is niets meer dan een vertaaltabel: “vervang 21% BTW door 0% ICV”, inclusief de juiste grootboekrekeningen. U hoeft ze meestal alleen te controleren, niet zelf te bouwen.

Automatische detectie

Zet per fiscale positie Detect Automatically aan en configureer de landen en de BTW-nummervereiste. Bij het aanmaken van een order controleert Odoo dan automatisch of de klant in de EU zit en een BTW-nummer heeft, en past de juiste positie toe. Voor 0% BTW moet aan drie dingen zijn voldaan:

  • Het land van de klant is een EU-land, maar niet uw eigen land.
  • Er staat een geldig BTW-nummer op de klantfiche (activeer de VIES-controle in Boekhouding → Instellingen zodat Odoo dit voor u valideert).
  • De fiscale positie koppelt uw standaardtarief aan het 0%-ICV-tarief.

Per klant handmatig

Werkt automatische detectie niet, of wilt u het expliciet vastleggen? Open de klantfiche, tabblad Verkoop & Inkoop, veld Fiscale Positie. Kies bijvoorbeeld “Intra-communautaire levering”. Alle toekomstige orders en facturen voor deze klant gebruiken dan automatisch 0% BTW — ook als een collega de order aanmaakt die van het hele ICV-verhaal nog nooit heeft gehoord.

Blanco klant = standaard BTW

Bij een nieuwe klant zonder fiscale positie rekent Odoo het standaardtarief (21% in NL). Dat is bewust en terecht: liever 21% factureren en achteraf crediteren, dan ten onrechte 0% rekenen. Kan u bij een controle namelijk niet aantonen dat de goederen de grens over zijn gegaan en dat het BTW-nummer geldig was, dan mag u die 21% alsnog afdragen — uit eigen zak.

ICP-rapportage niet vergeten

Heeft u EU-leveringen, dan bent u verplicht periodiek een Opgaaf Intracommunautaire Prestaties (ICP) in te dienen. Odoo genereert dit rapport onder Boekhouding → Rapportage → EC Sales Report, netjes gegroepeerd per BTW-nummer van uw afnemers.

Tot slot: een praktische tip

Controleer elk kwartaal of de BTW-nummers van uw EU-klanten nog geldig zijn — een klant die van rechtsvorm wisselt, krijgt een nieuw nummer en dan klopt uw 0%-factuur opeens niet meer. Met de VIES-check in Odoo is dat een kwestie van minuten. Twijfelt u of uw fiscale posities goed staan? Neem contact op met DAADit Group — we lopen uw BTW-instellingen graag met u na.

Vragen over uw Odoo implementatie? Doe de gratis Business Scan.

Start de Business Scan →

Do you sell to business customers within the EU that have a valid VAT number? Then you invoice 0% VAT as an intra-community supply. Think of a machine builder in Eindhoven delivering to a German GmbH: no 21% on the invoice, but 0% with the VAT reverse-charged. Odoo handles this automatically through fiscal positions — provided you set them up correctly. Here is how.

Activating fiscal positions

Go to Accounting → Configuration → Fiscal Positions. A standard Dutch Odoo installation already contains predefined positions for EU intra-community and export outside the EU. A fiscal position is essentially a translation table: “replace 21% VAT with 0% ICS”, including the correct ledger accounts. Usually you only need to verify them, not build them yourself.

Automatic detection

Enable Detect Automatically per fiscal position and configure the countries and the VAT number requirement. When an order is created, Odoo then automatically checks whether the customer is in the EU with a VAT number and applies the right position. Three things must be in place for 0% VAT:

  • The customer's country is an EU country, but not your own.
  • A valid VAT number is on the customer record (enable the VIES check in Accounting → Settings so Odoo validates it for you).
  • The fiscal position maps your standard rate to the 0% intra-community tax.

Manually per customer

Automatic detection not working, or do you prefer to make it explicit? Open the customer record, Sales & Purchase tab, Fiscal Position field. Choose “Intra-Community supply”, for example. All future orders and invoices for this customer then use 0% VAT automatically — even when the order is created by a colleague who has never heard of intra-community supplies.

Blank customer = default VAT

For a new customer without a fiscal position, Odoo charges the standard rate (21% in NL). That is deliberate and correct: better to invoice 21% and issue a credit note afterwards than to charge 0% incorrectly. If you cannot prove during an audit that the goods crossed the border and the VAT number was valid, you still owe that 21% — out of your own pocket.

Do not forget the EC Sales Report

If you have EU supplies, you are required to periodically submit an intra-community transactions declaration (in the Netherlands: the ICP). Odoo generates this report under Accounting → Reporting → EC Sales Report, neatly grouped by your customers' VAT numbers.

Finally: a practical tip

Check every quarter whether your EU customers' VAT numbers are still valid — a customer that changes legal form gets a new number, and suddenly your 0% invoice no longer holds up. With the VIES check in Odoo this takes minutes. Not sure whether your fiscal positions are configured correctly? Contact DAADit Group — we are happy to review your VAT setup with you.

Questions about your Odoo implementation? Take the free Business Scan.

Start the Business Scan →

Vraag niet beantwoord?

Onze Odoo-consultants denken graag met u mee. Plan een vrijblijvend kennismakingsgesprek.

Plan een afspraak
Do not automatically send calendar invitations to external contacts
Sometimes you want to plan internally without a client receiving an invitation.