Account
Nederlands

BR-DE-18: Regels voor betalingskorting (Skonto) in betalingsvoorwaarden onjuist

XRechnung-regel · Fout · UBL, CII

StandaardXRechnung 3.0.2 (KoSIT, Duitse CIUS van EN 16931)ErnstFout: de factuur wordt geweigerdSyntaxUBL, CIIBedrijfstermen
  • BT-20 Payment terms
  • BT-115 Amount due for payment
Geldt voorXRechnung in UBL- of CII-syntax, inclusief ZUGFeRD / Factur-X-PDF's met het profiel XRECHNUNG. Facturen aan Duitse overheden moeten eraan voldoen.

Officiële regeltekst

[BR-DE-18] Cash discount (Skonto) lines in … must match this regular expression: … . The information on the granting of a cash discount must be transmitted in the element "Payment terms" (BT-20) as follows: the first segment must state "SKONTO", the second "TAGE=n", the third "PROZENT=n". Percentages must be given without a sign and with two decimal places separated by a point. If the amount to be calculated is not based on BT-115, "Amount due for payment", but only on a part of the amount due of the invoice, the base value for calculating the cash discount must be given as a fourth segment "BASISBETRAG=n" in accordance with the semantic data type Amount. Each entry begins with a #, the segments are separated by a # and a line ends with a #. A complete cash discount statement must be followed by an XML-conformant line break. All information on the granting of a cash discount must be given in upper case. Additional whitespace (spaces, tabs or line breaks) is not permitted. Characters or text other than those specified above are not permitted.

De normatieve tekst is Engels en wordt ongewijzigd geciteerd.

Waarom deze fout optreedt

XRechnung definieert een machineleesbaar formaat voor betalingskorting (Skonto) in de tekst van de betalingsvoorwaarden (BT-20): elke korting is één regel in de vorm #SKONTO#TAGE=n#PROZENT=n.nn# met een optioneel vierde segment #BASISBETRAG=n.nn#, afgesloten met een regeleinde. De regel splitst cac:PaymentTerms/cbc:Note (UBL) of ram:SpecifiedTradePaymentTerms/ram:Description (CII) op in regels, toetst elke regel die met # begint aan de officiële reguliere expressie en eist een regeleinde na de laatste volledige Skonto-regel. Hij slaat aan bij kleine letters, ontbrekende decimalen (PROZENT=2), komma als decimaalteken, spaties rond het =-teken of een ontbrekend laatste regeleinde; dit ontstaat vaak bij handmatig getypte voorwaarden of sjablonen die Skonto in lopende tekst beginnend met # afdrukken.

Zo lost u het op

Schrijf elke korting op een eigen regel, exact als #SKONTO#TAGE=14#PROZENT=2.00# gevolgd door een regeleinde (CRLF wordt geaccepteerd); voeg #BASISBETRAG=1000.00# alleen als vierde segment toe als de korting op een deel van het te betalen bedrag van toepassing is. Gebruik hoofdletters, een punt met precies twee decimalen voor het percentage, geen spaties of tabs, en niets anders op die regels. Vrije tekst over voorwaarden mag in dezelfde notitie staan op regels die niet met # beginnen. Zorg dat de notitie eindigt met een regeleinde na de laatste Skonto-regel, niet direct met de sluitende tag.

Voorbeeld (geldig)

<cac:PaymentTerms>
  <cbc:Note>Zahlbar innerhalb von 30 Tagen.
#SKONTO#TAGE=14#PROZENT=2.00#
#SKONTO#TAGE=7#PROZENT=3.00#
</cbc:Note>
</cac:PaymentTerms>

Wat de validator controleert

Gecontroleerd element (context):

UBL

/ubl:Invoice | /cn:CreditNote

Test (XPath):

every $line in             cac:PaymentTerms/cbc:Note[1]/tokenize(. , '(\r?\n)')[starts-with( normalize-space(.) , '#')]              satisfies matches ( normalize-space ($line), $XR-SKONTO-REGEX)                                  and                                 matches( cac:PaymentTerms/cbc:Note[1]/tokenize(. ,  '#.+#')[last()], '^\s*\n' )

CII

/rsm:CrossIndustryInvoice

Test (XPath):

every $line                        in rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:Description[1]/tokenize(. , '(\r?\n)')[starts-with( normalize-space(.) , '#')]                        satisfies matches ( normalize-space ($line), $XR-SKONTO-REGEX ) and                     matches( rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:Description[1]/tokenize(. ,  '#.+#')[last()], '^\s*\n' )

Controleer uw factuur

Sleep uw XML of PDF naar de validator; elke overtreden regel linkt naar zijn pagina hier. Gratis, zonder account, het bestand wordt niet opgeslagen.

Controleer uw factuur →

Dezelfde controle via API:

curl -F file=@invoice.xml https://einvoicechecker.com/v1/validate

Gerelateerde regels

Veelgestelde vragen

Wat betekent BR-DE-18?

BR-DE-18 is een xrechnung-regel: Cash discount (Skonto) lines in … must match this regular expression: … . The information on the granting of a cash discount must be transmitted in the element "Payment terms" (BT-20) as follows: the first segment must state "SKONTO", the second "TAGE=n", the third "PROZENT=n". Percentages must be given without a sign and with two decimal places separated by a point. If the amount to be calculated is not based on BT-115, "Amount due for payment", but only on a part of the amount due of the invoice, the base value for calculating the cash discount must be given as a fourth segment "BASISBETRAG=n" in accordance with the semantic data type Amount. Each entry begins with a #, the segments are separated by a # and a line ends with a #. A complete cash discount statement must be followed by an XML-conformant line break. All information on the granting of a cash discount must be given in upper case. Additional whitespace (spaces, tabs or line breaks) is not permitted. Characters or text other than those specified above are not permitted.

Wordt mijn factuur geweigerd vanwege BR-DE-18?

Ja. BR-DE-18 is "fataal"; validators (Peppol-accesspoints, KoSIT, KSeF) weigeren de factuur totdat de fout is opgelost.

Voor welke formaten geldt BR-DE-18?

XRechnung in UBL- of CII-syntax, inclusief ZUGFeRD / Factur-X-PDF's met het profiel XRECHNUNG. Facturen aan Duitse overheden moeten eraan voldoen. Syntax: UBL en CII.

Bron: XRechnung 3.0.2, schematron 2.6.0 (KoSIT, September 2026). Catalogus gegenereerd uit de officiële regelsets op 2026-10-15.