Account
Nederlands

PEPPOL-EN16931-R046: Netto artikelprijs is niet brutoprijs min prijskorting

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-R046] Item net price MUST equal (Gross price - Allowance amount) when gross price is provided.

De normatieve tekst is Engels en wordt ongewijzigd geciteerd.

Waarom deze fout optreedt

Wanneer een brutoprijs (BT-148) is opgegeven, moet de nettoprijs (BT-146) exact gelijk zijn aan de brutoprijs min de korting op de artikelprijs (BT-147); er is geen tolerantie. In UBL vergelijkt de regel cac:Price/cbc:PriceAmount met cac:Price/cac:AllowanceCharge/cbc:BaseAmount min cbc:Amount; in CII ram:NetPriceProductTradePrice/ram:ChargeAmount met ram:GrossPriceProductTradePrice/ram:ChargeAmount min ram:AppliedTradeAllowanceCharge/ram:ActualAmount. De controle faalt wanneer de korting uit een percentage wordt afgeleid en apart wordt afgerond, of wanneer netto- en brutoprijs een verschillend aantal decimalen hebben.

Zo lost u het op

Formule: PriceAmount = BaseAmount - Amount (UBL) / NetPrice ChargeAmount = GrossPrice ChargeAmount - ActualAmount (CII), vergeleken als exacte decimalen. Bereken eerst het kortingsbedrag en leid daaruit de nettoprijs af, met hetzelfde aantal decimalen voor alle drie de waarden (tot vier decimalen is gebruikelijk voor prijzen). Kunt u het paar bruto/korting niet exact reproduceren, laat dan de korting op prijsniveau en de brutoprijs weg en geef alleen de nettoprijs, wat altijd volstaat.

Voorbeeld (geldig)

<cac:Price>
  <cbc:PriceAmount currencyID="EUR">85.50</cbc:PriceAmount>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:Amount currencyID="EUR">4.50</cbc:Amount>
    <cbc:BaseAmount currencyID="EUR">90.00</cbc:BaseAmount>
  </cac:AllowanceCharge>
</cac:Price>

Wat de validator controleert

Gecontroleerd element (context):

UBL

cac:Price/cac:AllowanceCharge

Test (XPath):

not(cbc:BaseAmount) or xs:decimal(../cbc:PriceAmount) = xs:decimal(cbc:BaseAmount) - xs:decimal(cbc:Amount)

CII

rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice

Test (XPath):

not(ram:ChargeAmount) or xs:decimal(../ram:NetPriceProductTradePrice/ram:ChargeAmount) = xs:decimal(ram:ChargeAmount) - u:decimalOrZero(ram:AppliedTradeAllowanceCharge/ram:ActualAmount[1])

Controleer uw factuur

Sleep uw XML of PDF naar de validator; elke overtreden regel linkt naar zijn pagina hier. Gratis, zonder account, het bestand wordt niet opgeslagen.

Controleer uw factuur →

Dezelfde controle via API:

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

Gerelateerde regels

Veelgestelde vragen

Wat betekent PEPPOL-EN16931-R046?

PEPPOL-EN16931-R046 is een peppol bis billing 3.0-regel: Item net price MUST equal (Gross price - Allowance amount) when gross price is provided.

Wordt mijn factuur geweigerd vanwege PEPPOL-EN16931-R046?

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

Voor welke formaten geldt PEPPOL-EN16931-R046?

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.