Naar hoofdinhoud
EN 16931 · regels

Fout UBL-SR-48: een factuurregel met twee belastingen of geen

In de Europese e-factuur draagt elke regel één btw-categorie, en maar één. In Odoo kan een regel meerdere belastingen hebben of geen, dus de botsing komt vaak voor: het is UBL-SR-48 in het bestand, en Odoo stopt er vóór het genereren mee met een eigen melding. In dezelfde groep horen BR-CO-04, BR-25 en BR-16.

FlexigoTech · Verantwoordelijk: Víctor Gómez · Bijgewerkt op 4 november 2026

In het kort

Versies
Odoo 17, 18, 19 en 20
Gecontroleerd
in de broncode van de module, versie 17.0 en 20.0 · in de bronnen onderaan
Leestijd
3 min

Wat elke regel zegt

Alle vier zijn fataal in het Schematron van EN 16931 (validation-1.3.17):

UBL-SR-48
"Invoice lines shall have one and only one classified tax category." Een UBL-syntaxisregel: één regel, één categorie.
BR-CO-04
"Each Invoice line (BG-25) shall be categorized with an Invoiced item VAT category code (BT-151)." De andere kant: geen regel zonder categorie.
BR-25
"Each Invoice line (BG-25) shall contain the Item name (BT-153)." Elke regel met een naam.
BR-16
"An Invoice shall have at least one Invoice line (BG-25)" Minstens één regel.
Kaart van de EN 16931-regel UBL-SR-48
Eén btw-categorie per regel (BT-151), met BR-CO-04, BR-25 en BR-16.

De melding van Odoo

Odoo wacht niet op de validator. Vóór het genereren van de UBL loopt het de regels langs en, als een regel niet precies één belasting heeft, stopt het met: "Each invoice line shall have one and only one tax." Dat gebeurt in alle vier versies, met een nuance:

  • Odoo 17: telt de belastingen van de regel zonder die met een vast bedrag, zoals de ecotaksen; er moet er één overblijven.
  • Odoo 18, 19 en 20: telt de belastingcategorieën die op de regel van het bestand worden geschreven; er moet er één zijn.

In dezelfde stap controleert het BR-25: een regel zonder product en zonder omschrijving stopt met "Each invoice line should have a product or a label."

De gevallen die het veroorzaken

Geval in OdooWat te doen
Regel zonder belasting, bijvoorbeeld een doorbelaste onkostZet er de juiste belasting op, ook als die 0 % of vrijgesteld is.
Twee btw-belastingen op dezelfde regelHoud er één over: zijn het twee verschillende tarieven, splits dan de regel.
Btw plus een toeslag of inhouding op de regelControleer of die tweede belasting in de e-factuur als belasting moet staan of op een andere manier; het juiste antwoord hangt af van je land.
Tekstregel zonder product of omschrijvingSchrijf de omschrijving of maak er een notitie van.

Secties en notities van Odoo tellen niet mee als regels, dus die veroorzaken de melding niet.

Met onze module XRechnung en ZUGFeRD

De module bouwt de XML met eigen code en voert de controle van Odoo niet uit: een regel zonder belasting of met twee komt zoals hij is in het bestand terecht. We hebben het gecontroleerd met de validator van KoSIT:

  • Regel zonder belasting: die gaat zonder btw-categorie de deur uit. In XRechnung UBL geeft dat UBL-SR-48, BR-CO-04 en BR-Z-08; in XRechnung CII, het standaardformaat van de module, BR-CO-04, BR-Z-01 en BR-Z-08.
  • Regel met twee belastingen: in UBL wordt alleen de eerste belasting met percentage geschreven, maar het totaal met btw draagt beide, en BR-CO-15 slaat aan. In CII gaan beide op de regel en klopt het totaal aan btw niet met de uitsplitsing, en BR-CO-14 slaat aan.
  • Regel met een belasting van 0 %: in UBL gaat hij als Z en KoSIT accepteert hem. In CII gaat hij als S, en KoSIT geeft BR-S-05, plus BR-Z-01 en BR-Z-08.

Controleer de belastingen van elke regel voordat je genereert.

Odoo 20-factuur met het tabblad XRechnung / ZUGFeRD van de module
Valideringsresultaat en Ready to send op de factuur. Schermafbeelding van Odoo 20 met demogegevens; het rapport in de schermafbeelding is een testrapport.

In Odoo 18, 19 en 20 wordt, met het abonnement op FlexigoTech Cloud, elke XRechnung en elke ZUGFeRD EN 16931 gevalideerd met de regels van KoSIT, en de mislukte regels blijven staan onder Validation Errors. In Odoo 17 valideert de gepubliceerde versie niet: die bestanden gaan zonder waarschuwing de deur uit.

Stappen

  1. Lees de melding: die vertelt of het om de belasting of om de naam van de regel gaat.
  2. Open de factuur in concept en controleer de kolom met belastingen regel voor regel.
  3. Corrigeer, boek en genereer het bestand opnieuw.

Lees verder

Fouten BR-E-10, BR-AE-10, BR-IC-10 en BR-G-10: de btw-vrijstellingsredenBR-E-10, BR-AE-10, BR-IC-10, BR-G-10 en BR-O-10 eisen een reden van vrijstelling; BR-S-10 en BR-Z-10 verbieden die. Zo bepaalt Odoo 17 t/m 20 die en hier wijzig je hem.Fout BR-CL-23: de maateenheid van de regel is geen UN/ECE-codeBR-CL-23 eist UN/ECE-codes voor de eenheid van elke regel, BR-23 dat die er is en Peppol R130 dat die gelijk is aan die van de prijs. Zo haalt Odoo de code.Fout BR-CO-15 in de e-factuur: het totaal met btw is niet netto plus btwBR-CO-15, BR-CO-14, BR-CO-16 en BR-CO-17 controleren of de totalen van de e-factuur kloppen. Wat elk optelt en welke er op één cent misgaan.
Gecontroleerd in de broncode van de module (versie 17.0 en 20.0) en in de gelinkte bronnen

Bronnen