Account
Nederlands

PEPPOL-EN16931-R040: Bedrag van korting of toeslag is niet basisbedrag maal percentage

Peppol BIS Billing 3.0-regel · Fout · UBL, CII

StandaardPeppol BIS Billing 3.0 (OpenPeppol)ErnstFout: de factuur wordt geweigerdSyntaxUBL, CIIGeldt voorFacturen en creditnota's via het Peppol-netwerk (UBL), inclusief NLCIUS, en elke XRechnung omdat die de Peppol-regels overneemt.

Officiële regeltekst

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

De normatieve tekst is Engels en wordt ongewijzigd geciteerd.

Waarom deze fout optreedt

Wanneer bij een korting of toeslag zowel een basisbedrag als een percentage is vermeld, moet het bedrag gelijk zijn aan basis x percentage / 100, met een tolerantie van 0,02. De regel controleert cbc:Amount tegen cbc:BaseAmount en cbc:MultiplierFactorNumeric in cac:AllowanceCharge op document- en regelniveau (UBL), of ram:ActualAmount tegen ram:BasisAmount en ram:CalculationPercent in ram:SpecifiedTradeAllowanceCharge (CII). De controle faalt wanneer het percentage als breuk is geschreven (0.10 in plaats van 10), wanneer het basisbedrag naar een andere basis verwijst dan die waarmee het bedrag is berekend, of wanneer het bedrag anders is afgerond.

Zo lost u het op

Formule: Amount = round(BaseAmount x MultiplierFactorNumeric / 100, 2). Schrijf het percentage als aantal procenten (10 voor 10 %). Stel BaseAmount in op het bedrag waarop de korting daadwerkelijk is toegepast (meestal de som van de betreffende regels) en bereken Amount daaruit. Kunt u geen consistente basis opgeven, laat dan zowel cbc:BaseAmount als cbc:MultiplierFactorNumeric weg en geef alleen cbc:Amount, wat altijd is toegestaan.

Voorbeeld (geldig)

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReason>Discount</cbc:AllowanceChargeReason>
  <cbc:MultiplierFactorNumeric>10</cbc:MultiplierFactorNumeric>
  <cbc:Amount currencyID="EUR">25.00</cbc:Amount>
  <cbc:BaseAmount currencyID="EUR">250.00</cbc:BaseAmount>
  <cac:TaxCategory><cbc:ID>S</cbc:ID><cbc:Percent>19</cbc:Percent><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:TaxCategory>
</cac:AllowanceCharge>

Wat de validator controleert

Gecontroleerd element (context):

UBL

ubl-invoice:Invoice/cac:AllowanceCharge | ubl-invoice:Invoice/cac:InvoiceLine/cac:AllowanceCharge | ubl-creditnote:CreditNote/cac:AllowanceCharge | ubl-creditnote:CreditNote/cac:CreditNoteLine/cac:AllowanceCharge

Test (XPath):

not(cbc:MultiplierFactorNumeric and cbc:BaseAmount) or u:slack(if (cbc:Amount) then
            cbc:Amount
          else
            0, (xs:decimal(cbc:BaseAmount) * xs:decimal(cbc:MultiplierFactorNumeric)) div 100, 0.02)

CII

ram:SpecifiedTradeAllowanceCharge

Test (XPath):

not(ram:CalculationPercent and ram:BasisAmount) or u:slack(if (ram:ActualAmount) then
                        ram:ActualAmount
                    else
                        0, (xs:decimal(ram:BasisAmount) * xs:decimal(ram:CalculationPercent)) div 100, 0.02)

Automatisch herstellen

Deze fout kan automatisch worden hersteld: na uw bevestiging herberekent de checker totalen en btw uit de regelbedragen.

Factuur herstellen →

Dezelfde controle via API:

curl -F file=@invoice.xml https://einvoicechecker.com/v1/validate

Gerelateerde regels

Veelgestelde vragen

Wat betekent PEPPOL-EN16931-R040?

PEPPOL-EN16931-R040 is een peppol bis billing 3.0-regel: Allowance/charge amount must equal base amount * percentage/100 if base amount and percentage exists

Wordt mijn factuur geweigerd vanwege PEPPOL-EN16931-R040?

Ja. PEPPOL-EN16931-R040 is "fataal"; validators (Peppol-accesspoints, KoSIT, KSeF) weigeren de factuur totdat de fout is opgelost.

Voor welke formaten geldt PEPPOL-EN16931-R040?

Facturen en creditnota's via het Peppol-netwerk (UBL), inclusief NLCIUS, en elke XRechnung omdat die de Peppol-regels overneemt. Syntax: UBL en CII.

Bron: Peppol BIS Billing 3.0.20 (November 2025). Catalogus gegenereerd uit de officiële regelsets op 2026-10-15.