# BR-CO-07 Reden en code van de regelkorting moeten overeenkomen

De redencode van de regelkorting (BT-140) en de reden van de regelkorting (BT-139) moeten hetzelfde soort kortingsreden aanduiden.

## Probleembeschrijving

> **FOUT**: Reken- en consistentieregel van EN 16931 (BR-CO)

## Context en betekenis

Deze regel is de tegenhanger van BR-CO-05 op regelniveau. De EN 16931-validatiebestanden voor UBL en CII die de KoSIT-validator gebruikt, bevatten voor BR-CO-07 alleen een lege controle die altijd slaagt; BR-CO-07 verschijnt dus nooit in een validatierapport. De eis blijft gelden: een regelkorting waarvan de redencode (BT-140) en de tekst (BT-139) elkaar tegenspreken, zoals code 95 (korting) met de tekst "Verpakkingstoeslag", leidt bij de koper tot handmatige controle. Een typische oorzaak is een toeslag die in het ERP als negatieve korting is ingevoerd.

## Oplossing

Zorg er binnen de regelkorting voor dat de reden in tekst (BT-139) en de redencode (BT-140) dezelfde korting beschrijven, bijv. code 95 (korting) met de tekst "Monsterkorting". Is het bedrag eigenlijk een toeslag, neem het dan op als regeltoeslag (BG-28).

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

## Geldige voorbeelden

- BT-140 = 95 (korting) met BT-139 = "Monsterkorting"

## Ongeldige voorbeelden

- BT-140 = 95 (korting) met BT-139 = "Verpakkingstoeslag"

## Codevoorbeelden

### Geldig XML
```
<cac:InvoiceLine>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
    <cbc:AllowanceChargeReason>Sample discount</cbc:AllowanceChargeReason>
    <cbc:Amount currencyID="EUR">2.00</cbc:Amount>
  </cac:AllowanceCharge>
</cac:InvoiceLine>
```

### Ongeldig XML
```
<cac:InvoiceLine>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
    <cbc:AllowanceChargeReason>Packaging surcharge</cbc:AllowanceChargeReason>
    <cbc:Amount currencyID="EUR">2.00</cbc:Amount>
  </cac:AllowanceCharge>
</cac:InvoiceLine>
```

## Betrokken velden

- [BT-139 Reden regelkorting](/resources/xrechnung/bt-139-invoice-line-allowance-reason)
- [BT-140 Redencode regelkorting](/resources/xrechnung/bt-140-invoice-line-allowance-reason-code)

## Gerelateerde regels

- [BR-CO-05](/resources/kosit-validator-errors/br-co-05-allowance-reason-code-match)
- [BR-CO-23](/resources/kosit-validator-errors/br-co-23-line-allowance-reason-required)

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