Release 26.5.50 on 02.09.2026
· 2 min read
This release corrects the invoice-discount block (BG-20) in the XRechnung CII and UBL output: a zero-value VAT breakdown group is no longer kept next to a group with a real rate, the allowance block is only written when a document actually carries an invoice discount, and a filter left behind by the breakdown clean-up can no longer empty the document's line set.
Bugfix
- A VAT breakdown group with a zero taxable amount is now only kept when a surviving document line shares both its tax category and its VAT rate. Previously the category alone was compared, so a group such as standard rate with 0 % survived next to the real 19 % lines and fed an allowance block (BG-20) with a rate of 0 — rejected by the KoSIT validator with BR-S-06. This affects documents in which a line is removed from the line set but still contributes a group to the breakdown, for example a mseDoc2SITE service commission group line without a VAT product posting group (CHN-428)
- Documents are no longer written without any lines at all. The breakdown clean-up filtered the caller's line buffer by tax category and never reset it; the writer reads that buffer unfiltered, so as soon as the filtered category matched no line, the CII and UBL output contained no invoice or credit-memo lines (BR-16). The clean-up now works on its own copy of the buffer, and both writer line loops reset the buffer before reading it. The defect arrived in 26.5.46 and also affected the scenario of that release's own breakdown fix (CHN-428)
- The allowance block (BG-20) is now only written when the VAT breakdown row carries an invoice discount. The four block rows — CII and UBL, invoice and credit memo — gate their output on the decimal field Invoice Discount Amount but declared Data Type
TypeText, and Check to Process or Ignore only treats decimal, integer and boolean values as empty. The text0therefore passed the gate and an empty allowance block was written for every group, discount or not, since 26.5.37. The rows now carryTypeDecimal; because schema lines are tenant data, an upgrade corrects them on existing tenants — only rows gating on the discount amount are touched, so individual customer changes are preserved (CHN-428)