Verschillende btw-percentages op je factuur: zo verwerk je ze correct in Peppol

Wie facturen verstuurt via Peppol, weet dat de kleinste afwijking in structuur al kan leiden tot een foutmelding. Dat merk je vooral bij facturen waarop meerdere btw-percentages staan, bijvoorbeeld 6% en 21%. In theorie lijkt dat eenvoudig, maar in de praktijk blijkt dat veel Access Points hier nog steeds mee worstelen.

Wat kan je lezen op deze pagina?

Btw-structuur in Peppol

Een Peppol-factuur bouwt btw niet zomaar op één lijn op, maar via een btw-breakdown per tarief. Voor elk gebruikt btw-percentage maak je een aparte TaxSubtotal aan met:

  • Taxable Amount: het totaalbedrag per tarief (exclusief btw)
  • Tax Amount: het bijbehorende btw-bedrag
  • Tax Category: de juiste code en het btw-percentage
    • S = standaard (21 %)
    • AA = verlaagd (6 %)
    • Z = nultarief
    • E = vrijgesteld
    • AE = verlegd

Belangrijk: elk TaxSubtotal bevat bedragen afgerond op twee decimalen. Peppol controleert dit automatisch.

Waarom meerdere btw-percentages zo’n uitdaging zijn

Een factuur met verschillende btw-tarieven is niet uitzonderlijk. Denk aan een leverancier die zowel voedingsproducten (6%) als verpakkingsmateriaal (21%) factureert.
In een klassieke PDF-factuur zet je gewoon twee btw-lijnen onder elkaar, en klaar. Maar binnen Peppol werkt het helemaal anders.

Elke factuur binnen Peppol wordt opgebouwd in een XML-formaat, gebaseerd op de UBL-standaard (Universal Business Language).
Dat betekent dat btw-percentages niet gewoon tekstregels zijn, maar gestructureerde data-elementen. En daar wringt het schoentje:
veel Access Points structureren die data niet correct, waardoor de factuur wordt geweigerd door het netwerk of door de ontvanger.

Veelgemaakte fouten

  • Btw berekenen vanaf de header
     → Reken altijd per lijn. Anders ontstaan cent-verschillen tussen lijnen en totalen.
  • Documentkorting niet per tarief verdelen
     → Een globale korting moet pro rata over elk btw-tarief worden verdeeld.
  • Verkeerde btw-code
     → Gebruik altijd de juiste TaxCategory (S, AA, Z, E, AE).
  • Meer dan twee decimalen
     → Peppol keurt facturen met meer decimalen af.
  • Geen afrondingspost
     → Gebruik PayableRoundingAmount om verschillen van €0,01 af te vangen.

Voor een mens lijkt dat detailwerk. Voor Peppol is het reden genoeg om de factuur af te keuren.

Zo bereken je btw correct

  1. Bereken per lijn
    • Lijnnetto = eenheidsprijs × hoeveelheid − eventuele korting
    • Lijnbtw = lijnnetto × btw-percentage
    • Rond beide bedragen af op twee decimalen
  2. Pas documentkortingen toe
    • Verdeel algemene kortingen pro rata over alle btw-tarieven
    • Herbereken daarna per tarief de Taxable Amount en Tax Amount
  3. Maak een VAT breakdown
    • Eén TaxSubtotal per tarief met juiste bedrag, percentage en categoriecode
  4. Controleer de totalen
    • TaxExclusiveAmount = som van alle lijnen (na korting)
    • TaxInclusiveAmount = TaxExclusive + totaal btw
    • Eventuele afronding van het totaal geef je aan via PayableRoundingAmount

Door per lijn te rekenen en daarna op te tellen per btw-tarief, vermijd je afrondingsverschillen tussen header-totalen en lijnbedragen.

Rekenvoorbeeld

Situatie

  • Product A: 2 × €100,00 aan 21 % btw
  • Product B: 3 × €50,00 aan 6 % btw
  • Algemene korting: 2 %
 

Berekening

  • Lijn 1 netto = €200,00 → btw €42,00
  • Lijn 2 netto = €150,00 → btw €9,00
  • Totale korting = €7,00
    • 21 % deel = €4,00 korting
    • 6 % deel = €3,00 korting
 

Na korting

  • 21 % tarief: netto €196,00 → btw €41,16
  • 6 % tarief: netto €147,00 → btw €8,82
 

Factuurtotalen

  • Taxable = €343,00
  • VAT = €49,98
  • Totaal = €392,98

Deze factuur valideert correct in Peppol, omdat elke btw-categorie apart is uitgesplitst en afgerond op twee decimalen.

Hoe het wél moet volgens Peppol

De Peppol BIS Billing 3.0 standaard schrijft exact voor hoe btw-percentages moeten worden verwerkt.
De logica is als volgt:

  • Elke factuurlijn bevat zijn eigen btw-code en percentage.
  • In de samenvatting van de factuur (<TaxTotal>) wordt per percentage één <TaxSubtotal> opgenomen.
  • De totalen in die samenvatting moeten exact overeenkomen met de som van alle lijnen met datzelfde percentage.

Een correct opgebouwd XML-bestand zorgt ervoor dat de factuur probleemloos door het netwerk geraakt — ongeacht hoeveel btw-percentages erop staan.

Het is dus niet Peppol dat dit moeilijk maakt, maar de manier waarop sommige systemen de data structureren.
Wanneer de onderliggende mapping tussen ERP en Access Point niet klopt, ontstaan er snel verschillen tussen lijnniveau en documentniveau.

Wat er gebeurt als het fout loopt

Als de btw-strategie niet juist wordt opgebouwd, merk je dat meteen:

  • de factuur wordt geweigerd door het Peppol-netwerk of door de klant;
  • de factuur komt niet aan in de boekhouding van de ontvanger;
  • je moet handmatig opvolgen of herverzenden;
  • betalingen lopen vertraging op.

En dat zijn allemaal processen die finance net probeert te vermijden met automatisatie.

Hoe goed ingestelde Access Points dit oplossen

Een goed Access Point controleert vóór verzending of de factuurstructuur geldig is. Dat betekent dat de btw-samenvattingen automatisch worden gevalideerd en dat er wordt gecontroleerd of elk percentage juist is doorgerekend. Zo wordt de factuur enkel doorgestuurd als ze écht voldoet aan de Peppol BIS-standaard.

Dat klinkt vanzelfsprekend, maar in de praktijk doen niet alle Access Points dit even zorgvuldig. Wie internationale of complexe facturatieprocessen heeft, merkt dan snel het verschil tussen “verstuurd” en “correct afgeleverd”.

Checklist voor facturen met gemengde btw-tarieven

  • Btw per lijn berekend en afgerond
  • Documentkortingen pro rata verdeeld
  • Per tarief één TaxSubtotal
  • Header-totalen sluiten exact aan
  • Eventuele afronding opgenomen via PayableRoundingAmount

 

Conclusie

Meerdere btw-percentages op één factuur zijn geen probleem voor Peppol — zolang de structuur klopt.
Controleer dus of jouw Access Point die validaties correct uitvoert. Een klein verschil in XML-structuur kan het verschil maken tussen een foutmelding en een vlotte verwerking.

Peppol is streng, maar voorspelbaar. Wie de regels goed toepast, heeft er juist een systeem aan dat foutloze en betrouwbare factuurstromen garandeert.

FAQ

Vraag
Antwoord
Moet ik btw per factuur of per lijn berekenen?
Altijd per lijn. Zo sluit je aan bij de controlelogica van Peppol en voorkom je afrondingsverschillen.
Wat als mijn klant een ander totaal ziet door afronding?
Voeg een PayableRoundingAmount toe zodat het verschil zichtbaar en boekhoudkundig correct is.
Hoe verwerk ik verlegde of vrijgestelde btw?
Gebruik code AE voor verlegd en E voor vrijgesteld, met btw-bedrag 0 en vermelding van de wettelijke reden.
Wat gebeurt er als btw-percentages niet goed gescheiden zijn?
De factuur wordt afgekeurd of komt in “rejected” status binnen Peppol. Splits dus altijd per tarief en per categorie.

Download onze gratis e-invoicing whitepaper!

Veel facturen, complexe systemen? Deze whitepaper is voor jou. In deze whitepaper lees je hoe je complexe e-invoicing-scenario’s slim aanpakt zonder alles om te gooien.

UITGELICHTE ARTIKELS

Hoe werkt korting contant in e-invoicing & Peppol
Hoe werkt korting contant in e-invoicing en peppol?
In klassieke facturen kom je ze vaak tegen: korting contant of snelle betalingskorting. Maar wat als...
Lees meer
UBL BIS 3
UBL BIS 3 uitgelegd: de standaard achter Peppol
Iedere organisatie in België krijgt er vroeg of laat mee te maken: e-invoicing en de bijbehorende regelgeving....
Lees meer
Self-billing in Peppol
Self-billing in Peppol
E-facturatie evolueert razendsnel. Waar het vroeger vooral ging om de overstap van papier naar digitaal,...
Lees meer