Ga naar de hoofdinhoud

Referentie

Markdown-export

BR-28 Brutoprijs van het artikel mag niet negatief zijn

De brutoprijs van het artikel (BT-148), de eenheidsprijs vóór een prijskorting, mag niet negatief zijn.

Probleembeschrijving

FOUT

Bedrijfsregel van EN 16931 (CEN)

Interactieve validatieketen

Klik op een stap om te zien wat die controleert, of typ een regel-ID om de stap te vinden die hem meldt.

Probeer:

BR-28 kernregel van EN 16931

Gemeld in stap 2: EN 16931-regels.

Niveau fout: het rapport adviseert de factuur af te wijzen.

Stap 2 · Wat wordt gecontroleerd

  • De kernbedrijfstermen zijn aanwezig (BR-01 tot BR-65).
  • Totalen kloppen en samenhangende velden passen bij elkaar (BR-CO); codes en decimalen zijn geldig (BR-CL, BR-DEC).
  • Elke btw-categorie is consistent: S, Z, E, AE, K, G, O, L, M (BR-S, BR-Z, BR-AE, BR-IC …).

Voorbeeldcodes

Typische correctie

Bereken totalen en btw opnieuw uit de regels en corrigeer de btw-categorie in de brongegevens.

Een validator controleert een e-factuur in stappen. Eerst moet het bestand goed gevormde XML zijn die past bij het UBL- of CII-schema (XSD). Dan volgen de bedrijfsregels van EN 16931: BR-kernregels, BR-CO-berekeningen, BR-CL-codelijsten, BR-DEC-decimalen en regels per btw-categorie zoals BR-S. Daarna komen de nationale of netwerkregels die BT-24 kiest: BR-DE voor XRechnung, PEPPOL-EN16931 voor Peppol BIS Billing. Het rapport noemt elke geschonden regel: één fout betekent afwijzen, alleen waarschuwingen betekenen nog steeds accepteren. BR-28: kernregel van EN 16931, gemeld in de stap “EN 16931-regels”. Regelsets: KoSIT-validator 1.6.3 met de XRechnung-configuratie van 31 aug 2026 (EN 16931-artefacten 1.3.16), Peppol BIS Billing 3.0.21.

Context en betekenis

Dit is een kernregel van EN 16931 die een waarde controleert. De brutoprijs (BT-148) is de prijs vóór prijskorting (BT-147); de nettoprijs is brutoprijs min prijskorting, wat Peppol controleert met PEPPOL-EN16931-R046. Een negatieve brutoprijs ontstaat meestal door een korting met het verkeerde teken of door een kortingsbedrag dat per ongeluk in cbc:BaseAmount staat.

Oplossing

Geef de brutoprijs op als cac:Price/cac:AllowanceCharge/cbc:BaseAmount (CII: ram:GrossPriceProductTradePrice/ram:ChargeAmount) met een waarde van nul of hoger, en vermeld de prijskorting (BT-147) in cbc:Amount van dezelfde groep.

Snelle acties

Geldige voorbeelden

  • BT-148 = 15,00 met een prijskorting van 2,50

Ongeldige voorbeelden

  • BT-148 = -3,00 — negatieve brutoprijs afgewezen

Codevoorbeelden

Geldig XML
<cac:Price>
  <cbc:PriceAmount currencyID="EUR">12.50</cbc:PriceAmount>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:Amount currencyID="EUR">2.50</cbc:Amount>
    <cbc:BaseAmount currencyID="EUR">15.00</cbc:BaseAmount>
  </cac:AllowanceCharge>
</cac:Price>
Ongeldig XML
<cac:Price>
  <cbc:PriceAmount currencyID="EUR">12.50</cbc:PriceAmount>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:Amount currencyID="EUR">2.50</cbc:Amount>
    <cbc:BaseAmount currencyID="EUR">-3.00</cbc:BaseAmount>
  </cac:AllowanceCharge>
</cac:Price>

Betrokken velden

Validatietools