Peppol-foutcodes

PEPPOL-EN16931-R040: korting of toeslag klopt niet met het percentage

Foutcode PEPPOL-EN16931-R040 betekent: het bedrag van een korting of toeslag is niet gelijk aan het basisbedrag maal het percentage.

Regelset: Peppol BIS Billing 3.0 · Ernst: fout (fatal): een Access Point weigert de factuur · Gecontroleerd met de officiële regels van mei 2026

Wat betekent PEPPOL-EN16931-R040?

De validator toont deze melding (in het Engels, zoals in de officiële regels):

[PEPPOL-EN16931-R040]-Allowance/charge amount must equal base amount * percentage/100 if base amount and percentage exists

Vermeld je bij een korting of toeslag op factuurniveau zowel een percentage (MultiplierFactorNumeric) als een basisbedrag (BaseAmount), dan moet het bedrag (Amount) daarmee kloppen: basisbedrag × percentage / 100. Voor een korting zijn dat BT-94, BT-93 en BT-92, voor een toeslag BT-101, BT-100 en BT-99.

Veelvoorkomende oorzaken

  • Het percentage werd na de berekening nog aangepast.
  • Het basisbedrag is het totaal met btw in plaats van zonder btw.
  • Een vast bedrag werd ingevuld, met daarnaast toch een percentage.

Zo los je het op als verzender

  1. Bereken het bedrag uit basisbedrag en percentage en rond af op twee decimalen.
  2. Gebruik je een vast bedrag, laat dan percentage en basisbedrag weg: die zijn optioneel.
  3. Controleer daarna BR-CO-13: het totaal zonder btw moet de korting of toeslag bevatten.

Je ontving een factuur met deze fout?

Een factuur met deze fout is niet conform. Vraag de leverancier om een gecorrigeerde factuur en pas de XML niet zelf aan.

Voorbeeld in de XML

❌ Fout

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReason>Korting</cbc:AllowanceChargeReason>
  <cbc:MultiplierFactorNumeric>10</cbc:MultiplierFactorNumeric>
  <cbc:Amount currencyID="EUR">20.00</cbc:Amount>
  <cbc:BaseAmount currencyID="EUR">300.00</cbc:BaseAmount>
  ...
</cac:AllowanceCharge>
<!-- 10 % van 300.00 is 30.00, niet 20.00 -->

✅ Juist

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReason>Korting</cbc:AllowanceChargeReason>
  <cbc:MultiplierFactorNumeric>10</cbc:MultiplierFactorNumeric>
  <cbc:Amount currencyID="EUR">30.00</cbc:Amount>
  <cbc:BaseAmount currencyID="EUR">300.00</cbc:BaseAmount>
  ...
</cac:AllowanceCharge>

Beide fragmenten komen uit een volledige testfactuur die we met onze validator hebben gecontroleerd: de foute versie geeft precies deze melding, de juiste versie geen enkele fout.

Goed om te weten

In onze test gaf een korting van 10 % op 300,00 met een bedrag van 20,00 precies deze fout. Met 30,00 was de factuur geldig.

Controleer je factuur

Plak of sleep je XML in de gratis validator. Je ziet meteen of deze fout (nog) voorkomt, met een link naar de uitleg bij elke melding.

Officiële regel

De volledige regel met de technische test (Schematron) staat in de officiële Peppol-documentatie:

Verwante foutcodes

  • PEPPOL-EN16931-R120: Het nettobedrag van een factuurlijn is niet gelijk aan hoeveelheid × eenheidsprijs, plus toeslagen en min kortingen op die lijn.
  • BR-CO-13: Het totaal zonder btw is niet gelijk aan de som van de lijnen min de kortingen plus de toeslagen op factuurniveau.

Veelgestelde vragen over PEPPOL-EN16931-R040

Moet ik percentage en basisbedrag vermelden?

Nee, ze zijn optioneel. Vermeld je ze wel, dan moet het bedrag ermee kloppen.

Geldt de regel ook voor kortingen op een factuurlijn?

Voor kortingen op lijnniveau bestaan vergelijkbare regels. Ook daar moet het bedrag passen bij basisbedrag en percentage.

← Alle Peppol-foutcodes