# 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)

## 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.

- [XML valideren](/nl/xrechnung-validator?source=resource&rule=BR-28)
- [Factuur converteren](/nl/pdf-to-xrechnung?source=resource&rule=BR-28)

## 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

- [BT-148 Brutoprijs artikel](/resources/xrechnung/bt-148-item-gross-price)

## Gerelateerde regels

- [BR-27](/resources/kosit-validator-errors/br-27-item-net-price-not-negative)

## Validatietools

- [Officiële KoSIT-validator](https://github.com/itplr-kosit/validator): Draai de officiële KoSIT-validator met de XRechnung-configuratie om EN 16931- en XRechnung-regels te controleren.
- [PDF naar XRechnung converteren](/pdf-to-xrechnung): Vind validatiefouten tijdens de conversie en controleer elke correctie.

## Gerelateerde bronnen

- [Officiële specificatie](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/)
- [Testsuite](https://github.com/itplr-kosit/xrechnung-testsuite)
- [Alle validatiefouten](/resources/kosit-validator-errors): Overzicht van de hier uitgelegde validatieregels uit EN 16931, XRechnung en Peppol.
