# PEPPOL-EN16931-R046 Netto-artikelprijs moet gelijk zijn aan de bruto-artikelprijs min de prijskorting

Volgens Peppol-regel PEPPOL-EN16931-R046 moet, wanneer een bruto-artikelprijs in BT-148 en een prijskorting in BT-147 zijn vermeld, de netto-artikelprijs in BT-146 exact voldoen aan: Netto-artikelprijs = Bruto-artikelprijs - Prijskorting.

## Probleembeschrijving

Volgens Peppol-regel PEPPOL-EN16931-R046 moet, wanneer een bruto-artikelprijs in BT-148 en een prijskorting in BT-147 zijn vermeld, de netto-artikelprijs in BT-146 exact voldoen aan: Netto-artikelprijs = Bruto-artikelprijs - Prijskorting.

> **FOUT**: XRechnung 3.0

## Context en betekenis

Afwijkingen tussen brutoprijs, prijskorting en nettoprijs activeren PEPPOL-EN16931-R046.

## Oplossing

Zorg dat in uw ERP de netto-eenheidsprijs exact wordt berekend als de bruto-catalogusprijs min de eenheidskorting. Zorg in UBL 2.1 binnen <cac:Price> dat <cbc:PriceAmount> gelijk is aan het brutobedrag min <cac:AllowanceCharge><cbc:Amount>. Pas in CII dezelfde aftrek toe.

- validate
- convert

## Geldige voorbeelden

- Brutoprijs BT-148 = 100.00 EUR, Prijskorting BT-147 = 20.00 EUR, Nettoprijs BT-146 = 80.00 EUR
- Brutoprijs BT-148 = 50.00 EUR, Prijskorting BT-147 = 5.00 EUR, Nettoprijs BT-146 = 45.00 EUR

## Ongeldige voorbeelden

- Brutoprijs 100.00 EUR min korting 20.00 EUR geëxporteerd met Nettoprijs = 85.00 EUR (Rekenverschil)
- Prijskorting vermeld als 10.00 EUR maar Nettoprijs is gelijk aan Brutoprijs zonder aftrek

## Codevoorbeelden

### Geldig XML
```
<cac:Price>
  <cbc:PriceAmount currencyID="EUR">80.00</cbc:PriceAmount>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:Amount currencyID="EUR">20.00</cbc:Amount>
    <cbc:BaseAmount currencyID="EUR">100.00</cbc:BaseAmount>
  </cac:AllowanceCharge>
</cac:Price>
```

### Ongeldig XML
```
<cac:Price>
  <!-- 100.00 - 20.00 must equal 80.00, not 85.00 -->
  <cbc:PriceAmount currencyID="EUR">85.00</cbc:PriceAmount>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:Amount currencyID="EUR">20.00</cbc:Amount>
    <cbc:BaseAmount currencyID="EUR">100.00</cbc:BaseAmount>
  </cac:AllowanceCharge>
</cac:Price>
```

## Betrokken velden

- [BT-146 Netto-artikelprijs](/resources/xrechnung/bt-146-item-net-price)
- [BT-148 Bruto-artikelprijs](/resources/xrechnung/bt-148-item-gross-price)
- [BT-147 Prijskorting op het artikel](/resources/xrechnung/bt-147-item-price-discount)
- [BG-29 Prijsdetails](/resources/xrechnung)

## Gerelateerde regels

- [BR-24](/resources/kosit-validator-errors/br-24-invoice-line-net-amount-must-be-present)
- [PEPPOL-EN16931-R120](/resources/kosit-validator-errors/peppol-en16931-r120-line-net-amount-formula)

## Validatietools

- [Officiële KoSIT-validator](https://erechnungsvalidator.service-bw.de/): Valideer je XRechnung-bestanden tegen alle BR-DE regels.
- [PDF naar XRechnung converteren](/pdf-to-xrechnung): Automatische fixes van validatiefouten tijdens het converteren.

## Gerelateerde bronnen

- [Officiële specificatie](https://xeinkauf.de/xrechnung/)
- [Testsuite](https://github.com/itplr-kosit/xrechnung-testsuite)
- [Volledige foutenlijst](/resources/kosit-validator-errors): Overzicht van alle Duitse XRechnung-validatieregels.
