BT-112Invoice total amount with VATBT-113Paid amountBT-114Rounding amountBT-115Amount due for payment
Officiële regeltekst
[BR-CO-16] Amount due for payment (BT-115) = Invoice total amount with VAT (BT-112) -Paid amount (BT-113) +Rounding amount (BT-114).
De normatieve tekst is Engels en wordt ongewijzigd geciteerd.
Waarom deze fout optreedt
Het te betalen bedrag (BT-115) moet gelijk zijn aan het totaal inclusief btw (BT-112) min het reeds betaalde bedrag (BT-113) plus het afrondingsbedrag (BT-114). De regel controleert cac:LegalMonetaryTotal/cbc:PayableAmount tegen cbc:TaxInclusiveAmount, cbc:PrepaidAmount en cbc:PayableRoundingAmount (UBL), of ram:DuePayableAmount tegen ram:GrandTotalAmount, ram:TotalPrepaidAmount en ram:RoundingAmount (CII). Meestal faalt hij wanneer software na een deelbetaling het openstaande saldo schrijft zonder ook het vooruitbetaalde bedrag op te nemen, of het verkeerde teken voor het afrondingsbedrag gebruikt.
Zo lost u het op
Formule: BT-115 = BT-112 - BT-113 + BT-114, afgerond op 2 decimalen; een ontbrekend BT-113 of BT-114 telt als 0. Is er een vooruitbetaling ontvangen, schrijf die dan als positieve waarde in cbc:PrepaidAmount / ram:TotalPrepaidAmount en verlaag cbc:PayableAmount / ram:DuePayableAmount dienovereenkomstig. Gebruik cbc:PayableRoundingAmount / ram:RoundingAmount alleen voor contante afronding, met het teken van de correctie (bijv. -0.02 of 0.03). Bij een volledig betaalde factuur is PrepaidAmount gelijk aan TaxInclusiveAmount en is PayableAmount 0.00.
Voorbeeld (geldig)
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="EUR">200.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="EUR">200.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="EUR">238.00</cbc:TaxInclusiveAmount>
<cbc:PrepaidAmount currencyID="EUR">100.00</cbc:PrepaidAmount>
<cbc:PayableAmount currencyID="EUR">138.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
Wat de validator controleert
Gecontroleerd element (context):
UBL
cac:LegalMonetaryTotalTest (XPath):
(exists(cbc:PrepaidAmount) and not(exists(cbc:PayableRoundingAmount)) and (xs:decimal(cbc:PayableAmount) = (round((xs:decimal(cbc:TaxInclusiveAmount) - xs:decimal(cbc:PrepaidAmount)) * 10 * 10) div 100))) or (not(exists(cbc:PrepaidAmount)) and not(exists(cbc:PayableRoundingAmount)) and xs:decimal(cbc:PayableAmount) = xs:decimal(cbc:TaxInclusiveAmount)) or (exists(cbc:PrepaidAmount) and exists(cbc:PayableRoundingAmount) and ((round((xs:decimal(cbc:PayableAmount) - xs:decimal(cbc:PayableRoundingAmount)) * 10 * 10) div 100) = (round((xs:decimal(cbc:TaxInclusiveAmount) - xs:decimal(cbc:PrepaidAmount)) * 10 * 10) div 100))) or (not(exists(cbc:PrepaidAmount)) and exists(cbc:PayableRoundingAmount) and ((round((xs:decimal(cbc:PayableAmount) - xs:decimal(cbc:PayableRoundingAmount)) * 10 * 10) div 100) = xs:decimal(cbc:TaxInclusiveAmount)))CII
//ram:SpecifiedTradeSettlementHeaderMonetarySummationTest (XPath):
(xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) - xs:decimal(ram:TotalPrepaidAmount) + xs:decimal(ram:RoundingAmount)) or ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) + xs:decimal(ram:RoundingAmount)) and not (xs:decimal(ram:TotalPrepaidAmount))) or ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) - xs:decimal(ram:TotalPrepaidAmount)) and not (xs:decimal(ram:RoundingAmount))) or ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount)) and not (xs:decimal(ram:TotalPrepaidAmount)) and not (xs:decimal(ram:RoundingAmount)))
Automatisch herstellen
Deze fout kan automatisch worden hersteld: na uw bevestiging herberekent de checker totalen en btw uit de regelbedragen.
Dezelfde controle via API:
curl -F file=@invoice.xml https://einvoicechecker.com/v1/validateGerelateerde regels
BR-CO-15Totaal inclusief btw (BT-112) is niet netto plus btwBR-CO-25Bedrag te betalen, maar geen vervaldatum of betalingsvoorwaardenBR-14Een factuur moet het totaalbedrag inclusief btw bevattenBR-15Een factuur moet het te betalen bedrag bevattenBR-DEC-14Maximaal aantal decimalen voor het totaalbedrag inclusief btw is 2BR-DEC-16Maximaal aantal decimalen voor het betaalde bedrag is 2BR-DEC-17Maximaal aantal decimalen voor het afrondingsbedrag is 2BR-DEC-18Maximaal aantal decimalen voor het te betalen bedrag is 2
Veelgestelde vragen
Wat betekent BR-CO-16?
BR-CO-16 is een en 16931-kernregel: Amount due for payment (BT-115) = Invoice total amount with VAT (BT-112) -Paid amount (BT-113) +Rounding amount (BT-114).
Wordt mijn factuur geweigerd vanwege BR-CO-16?
Ja. BR-CO-16 is "fataal"; validators (Peppol-accesspoints, KoSIT, KSeF) weigeren de factuur totdat de fout is opgelost.
Voor welke formaten geldt BR-CO-16?
Elke EN 16931-factuur: Peppol BIS Billing 3.0, NLCIUS, XRechnung, ZUGFeRD 2.x / Factur-X (profielen EN 16931, EXTENDED, XRECHNUNG) en andere nationale CIUS. Syntax: UBL en CII.
Bron: EN 16931-1:2017 schematron (CEN TC434, via Peppol BIS 3.0.20). Catalogus gegenereerd uit de officiële regelsets op 2026-10-15.