Sinds 1 januari 2026 versturen Belgische bedrijven hun facturen verplicht elektronisch via PEPPOL, het beveiligde netwerk voor e-facturatie. Drankenhandels, brouwerijen en groothandels botsen daarbij op een verrassend probleem: statiegeld op bakken, flessen en kratten correct op de elektronische factuur krijgen. Wat op papier prima werkt, wordt bij PEPPOL-facturen soms afgekeurd.
In dit artikel lees je hoe de leeggoedondersteuning in Odoo versie na versie evolueerde, wanneer de standaard volstaat en wanneer je extra hulp nodig hebt. Nog niet vertrouwd met de verplichting zelf? Lees dan eerst waarom elektronische facturatie via PEPPOL verplicht is sinds 1 januari 2026.
Wat zegt de PEPPOL-standaard?
De PEPPOL BIS Billing 3.0-standaard is helder over leeggoed (vidange/empties/consignes):
- Statiegeld hoort op een aparte factuurregel, gescheiden van de handelsgoederen
- Die regel krijgt btw-categorie "E" (Exempt) met 0% btw
- Er moet een vrijstellingsreden bij staan (in de standaard heet dat veld BT-120)
- De btw-totalen moeten per categorie exact kloppen: de som van alle E-regels moet overeenkomen met het E-subtotaal, en hetzelfde voor S-regels
De Belgische PEPPOL-werkgroep heeft dit verder uitgewerkt in een specifiek scenario voor consumer empties. Die schrijft voor dat de productnaam op leeggoedregels de vaste tekst Leeggoed/Vidange/Empties moet bevatten, en dat de vrijstellingsreden in de btw-totalen een concrete vermelding moet zijn zoals Leeggoed/Vidange/Empties (Saldo consumer empties).
Klinkt eenvoudig. Maar statiegeld komt zelden alleen: de combinatie met accijnzen, recyclagebijdragen en btw maakt het in de praktijk een stuk complexer.
Hoe evolueerde de ondersteuning doorheen de Odoo-versies?
Odoo zette de afgelopen versies flinke stappen in de ondersteuning van leeggoed op PEPPOL-facturen. Elke versie bouwt voort op de vorige:
| Functionaliteit | v16 | v17 | v18 | v19 |
|---|---|---|---|---|
| Leeggoed als aparte factuurregel | nee | ja | ja | ja |
| Btw-categorie E op leeggoedregels | nee | ja | ja | ja |
| Berekend statiegeld (code-type) | nee | nee | ja | ja |
| Configureerbare btw-categorie per belasting | nee | nee | nee | ja |
| Configureerbare vrijstellingsreden (VATEX-code) | nee | nee | nee | ja |
| Belgische vrijstellingsreden voor leeggoed | nee | nee | nee | nee* |
* In Odoo 19 is de vrijstellingsreden configureerbaar, maar de Belgische leeggoedtekst moet je zelf invullen. Er bestaat nog geen officiële VATEX-code specifiek voor consumer empties.
Odoo 16: de basis
In Odoo 16 lag de focus van de PEPPOL-module op het correct exporteren van standaardfacturen. Vaste belastingen zoals RECUPEL en BEBAT werden al ondersteund als toeslagen op de factuurregel, maar een specifieke behandeling voor leeggoed was er nog niet. Statiegeld werd behandeld als elke andere vaste belasting.
Odoo 17: de doorbraak
Met versie 17 kwam een belangrijke verbetering. Het development team voegde de methode _split_fixed_taxes toe, die vaste belastingen slim opsplitst:
- Recyclagebijdragen (RECUPEL, AUVIBEL, BEBAT) blijven een toeslag op de factuurregel
- Leeggoed wordt automatisch een aparte factuurregel met btw-categorie E
Het verschil zit in de instelling include_base_amount op de belastingcode. Staat die aan, dan telt het bedrag mee in de btw-berekening en behandelt Odoo het als recyclagebijdrage (toeslag). Staat die uit, dan valt het buiten de btw-berekening en wordt het leeggoed (aparte factuurregel met categorie E). De bijhorende tests bevestigen dit met een belasting genaamd "Vidange".
De vrijstellingsreden die Odoo 17 meestuurt in de XML is echter de generieke Engelse tekst "Exempt from tax" (broncode). De Belgische PEPPOL-specificatie verwacht hier "Leeggoed/Vidange/Empties (Saldo consumer empties)". Technisch geldig, maar niet conform de Belgische aanbeveling.
Odoo 18: bredere herkenning
Odoo 18 bracht een nieuwe exportarchitectuur en breidde de leeggoedherkenning uit. De verbeterde methode herkent nu ook berekend statiegeld: belastingen die met een formule werken in plaats van met een vast bedrag per stuk. Dat is belangrijk voor drankenleveranciers met complexere statiegeldberekeningen op basis van productconfiguratie.
Daarnaast kwamen er duidelijke helper-methoden die het onderscheid maken tussen recyclagebijdragen, accijnzen en leeggoed. De vrijstellingsreden blijft ook hier "Exempt from tax".
Odoo 19: volledige configuratie
Odoo 19 gaat een stap verder met een configureerbaar btw-categorieveld rechtstreeks op de belastingcode. Je stelt nu per belasting expliciet in welke PEPPOL-categorie (S, E, AE, K, G, ...) gebruikt moet worden. Geen giswerk door het systeem meer.
Hetzelfde geldt voor de vrijstellingsreden: een keuzelijst met alle officiële VATEX-codes, de Europese standaardcodes die de reden van een btw-vrijstelling aanduiden. In eerdere versies stond hier de vaste tekst "Exempt from tax". Odoo 19 bevat echter geen specifieke VATEX-code voor leeggoed, omdat die op Europees niveau nog niet bestaat. De Belgische leeggoedtekst moet je dus nog steeds handmatig configureren.
Wanneer volstaat de standaard?
Voor veel bedrijven werkt standaard Odoo 18 of 19 prima. Voldoe je aan deze voorwaarden, dan heb je waarschijnlijk geen extra modules nodig:
- Je statiegeld is geconfigureerd als een vaste belasting (fixed tax) per stuk
- De optie
include_base_amountstaat uit op je statiegeldbelasting - Je werkt niet met prijsinclusieve accijnzen op dezelfde producten
- Je factureert in relatief eenvoudige scenario's zonder complexe combinaties
Wil je breder controleren of je klaar bent voor elektronische facturatie? Op onze pagina met PEPPOL-tips zetten we de belangrijkste aandachtspunten op een rij.
Wanneer heb je meer nodig?
In de praktijk zien we dat bedrijven in de drankenbranche vaak net buiten deze standaard vallen. Enkele veelvoorkomende situaties:
Oudere Odoo-versies
Draai je nog op Odoo 16? Dan zit leeggoedondersteuning voor PEPPOL nog niet in de standaard. Op versie 17 werkt het voor vaste bedragen, maar niet voor berekend statiegeld. Overweeg je een upgrade? Lees dan wat er komt kijken bij een migratie naar een nieuwe Odoo-versie.
Complexe statiegeldberekeningen
Bakken met 24 flessen, retourflessen met een ander tarief dan nieuwe, combinaties van kratten en flessen: dit soort berekeningen gebruikt vaak een formule-gebaseerde belasting. De correcte afhandeling daarvan is pas beschikbaar vanaf Odoo 18.
Prijsinclusieve heffingen
Bij dranken zitten er vaak accijnzen of recyclagebijdragen verwerkt in de verkoopprijs. In combinatie met leeggoedregels kan dat leiden tot afrondingsverschillen in de btw-totalen. De PEPPOL-validatie is streng: één cent verschil en je factuur wordt afgekeurd.
Vrijstellingsreden en productnaam
In Odoo 17 en 18 is de vrijstellingsreden op leeggoedregels de generieke Engelse tekst "Exempt from tax". De Belgische PEPPOL-specificatie verwacht hier een specifiekere drietalige vermelding: "Leeggoed/Vidange/Empties (Saldo consumer empties)". Pas in Odoo 19 is de vrijstellingsreden vrij configureerbaar, maar de Belgische leeggoedtekst zit niet standaard in de keuzelijst.
Daarnaast verwacht de specificatie de vaste productnaam "Leeggoed/Vidange/Empties" op leeggoedregels. Odoo neemt hier de naam van de belastingcode over, wat afwijkt van die conventie.
Hoe pakken wij dit aan?
Wij ontwikkelden specifieke Odoo-modules die bovenop de standaard PEPPOL-export werken. Het uitgangspunt: je werkwijze in Odoo verandert niet. Je boekhouding, je belastingcodes, je pdf-facturen: alles blijft hetzelfde. De modules passen enkel de XML-export aan zodat:
- Leeggoed als aparte factuurregels verschijnt met de correcte btw-categorie E en vrijstellingsreden
- De productnaam op leeggoedregels automatisch de voorgeschreven drietalige tekst bevat
- De btw-totalen correct optellen, ook bij complexe combinaties van statiegeld, accijnzen en kortingen
- Het werkt op alle Odoo-versies, ongeacht de standaard ondersteuning
We bouwen daarbij zoveel mogelijk voort op Odoo's eigen architectuur. De broncode-links in dit artikel tonen dat we de standaard grondig kennen. Zo vullen we precies aan waar het nodig is, zonder de standaard te dupliceren. Die filosofie, zo veel mogelijk standaard en maatwerk alleen waar het rendeert, trekken we door in heel je boekhouding. Meer daarover lees je op boekhouden met Odoo.
Speelt dit alleen bij drankenleveranciers?
Nee. We komen het probleem het vaakst tegen bij drankenhandels en brouwerijen, maar het speelt bij iedereen die met deposito's werkt: gasflessen, palletstatiegeld, herbruikbare verpakkingen in de voedingsindustrie. Overal waar je iets meestuurt dat de klant kan terugbrengen.
Validatiefouten met leeggoed?
Herken je problemen bij het versturen van elektronische facturen met statiegeld? Of wil je zeker zijn dat alles correct is voordat het bij je klanten terechtkomt? Plan een vrijblijvend kennismakingsgesprek: geen salespitch, wel concrete antwoorden op jouw situatie.
Statiegeld correct op je PEPPOL-factuur?
Dertig minuten, concrete antwoorden op jouw situatie.
Plan een kennismakingsgesprek