Ga naar de hoofdinhoud

Referentie

Markdown-export

BR-CO-12 De som van de toeslagen op documentniveau (BT-108) moet kloppen

De som van de toeslagen op documentniveau (BT-108) moet gelijk zijn aan de som van alle toeslagbedragen op documentniveau (BT-99): BT-108 = Σ BT-99.

Probleembeschrijving

FOUT

Reken- en consistentieregel van EN 16931 (BR-CO)

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-CO-12 rekenregel 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-CO-12: rekenregel 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

BT-108 (UBL: cac:LegalMonetaryTotal/cbc:ChargeTotalAmount) telt mee in het totaal exclusief btw (BR-CO-13). De validator vergelijkt BT-108 exact met de som van de toeslagen op documentniveau. Een verschil ontstaat meestal wanneer verzendkosten worden toegevoegd zonder BT-108 bij te werken, wanneer BT-108 is gevuld zonder toeslag op documentniveau, of wanneer regeltoeslagen (BG-28) in BT-108 worden meegeteld terwijl ze al in de nettoregelbedragen zitten.

Oplossing

Herbereken BT-108 als de exacte som van alle toeslagbedragen op documentniveau (BT-99) en zet die waarde in cbc:ChargeTotalAmount (UBL) of ram:ChargeTotalAmount (CII). Zijn er geen toeslagen op documentniveau, laat BT-108 dan weg of vul 0,00 in.

Snelle acties

Geldige voorbeelden

  • Twee toeslagen BT-99 = 20,00 en 10,00 → BT-108 = 30,00
  • Geen toeslag op documentniveau en BT-108 ontbreekt

Ongeldige voorbeelden

  • Twee toeslagen BT-99 = 20,00 en 10,00, maar BT-108 = 25,00
  • BT-108 = 3,00 terwijl de enige toeslag van 3,00 een regeltoeslag (BG-28) is

Codevoorbeelden

Geldig XML
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>FC</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Freight charge</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="EUR">20.00</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>19</cbc:Percent>
    <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>ABL</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Additional packaging</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="EUR">10.00</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>19</cbc:Percent>
    <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>
<cac:LegalMonetaryTotal>
  <cbc:ChargeTotalAmount currencyID="EUR">30.00</cbc:ChargeTotalAmount>
</cac:LegalMonetaryTotal>
Ongeldig XML
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>FC</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Freight charge</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="EUR">20.00</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>19</cbc:Percent>
    <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>ABL</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Additional packaging</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="EUR">10.00</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>19</cbc:Percent>
    <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>
<cac:LegalMonetaryTotal>
  <cbc:ChargeTotalAmount currencyID="EUR">25.00</cbc:ChargeTotalAmount>
</cac:LegalMonetaryTotal>

Betrokken velden

Validatietools