Steuerbemessungsgrundlage der Kategorie O abstimmen

Warnung BR-FXEXT-O-08rev Factur-X

[BR-FXEXT-O-08rev] - In einer Umsatzsteueraufschlüsselung (BG-23), in der der Code der Umsatzsteuerkategorie (BT-118) gleich „O“ („Nicht der Umsatzsteuer unterliegend“) ist, gilt: Absolutwert von (Kategoriespezifischer Steuerbasisbetrag (BT-116) - ∑ Nettobeträge der Rechnungsposition (BT-131) + Σ Beträge des Abschlags auf Dokumentenebene (BT-92) - Σ Beträge des Zuschlags auf Dokumentenebene (BT-99) - Σ Beträge der Servicegebühr (BT-x-272)) <= 0,01 * ((Anzahl der Nettobeträge der Rechnungsposition (BT-131) + Anzahl der Beträge des Abschlags auf Dokumentenebene (BT-92) + Anzahl der Beträge des Zuschlags auf Dokumentenebene (BT-99) + Anzahl der Beträge der Servicegebühr (BT-X-272)), wobei der Code der Umsatzsteuerkategorie (BT-151, BT-95, BT-102, BT-X-273) „Nicht der Umsatzsteuer unterliegend“ (O) ist und, soweit zutreffend, der Umsatzsteuerbefreiungsgrund- und Spezifikationscode (BT-195, BT-174 und BT-176 und BT-X-592) sowie der Umsatzsteuerbefreiungsgrundtext (BT-194, BT-173 und BT-175 und BT-X-591) mit dem Umsatzsteuerbefreiungsgrund- und Spezifikationscode (BT-121) und dem Umsatzsteuerbefreiungsgrundtext (BT-120) der Umsatzsteuerkategorie identisch sind, jedoch nur für Rechnungspositionen, bei denen der „Untertyp der Rechnungsposition“ (BT-X-8) den Wert „DETAIL“ hat oder nicht angegeben ist.

Empfehlung: Die Rechnung bleibt gültig, sollte aber korrigiert werden, damit sie automatisch verarbeitet werden kann.
Was nicht stimmt

Der Betrag in ram:BasisAmount weicht zu stark von den Rechnungspositionsbeträgen, Abschlägen, Zuschlägen und Logistikbeträgen mit übereinstimmenden Befreiungsangaben ab. Einbezogen werden Kategorie O und passende Befreiungscodes und -texte; Rechnungspositionen werden nur berücksichtigt, wenn ram:LineStatusReasonCode fehlt oder DETAIL lautet.

Was die Regel bedeutet

Die Beträge der Kategorie O tragen nur dann gemeinsam zur Bemessungsgrundlage bei, wenn ihre Befreiungsangaben mit der Umsatzsteueraufschlüsselung übereinstimmen. Die zulässige Abweichung beträgt 0,01 je einbezogenem Betrag.

Bitte stimmen Sie die Bemessungsgrundlage der Kategorie `O` ab

Die Bemessungsgrundlage der Umsatzsteueraufschlüsselung O passt nicht ausreichend zu den Beträgen mit denselben Befreiungsangaben. Stimmen Sie die entsprechenden Rechnungspositionen und Dokumentenbeträge ab.

Was ist zu tun?
  1. Vergleichen Sie ram:BasisAmount mit den Rechnungspositionsbeträgen, Abschlägen, Zuschlägen und Logistikbeträgen der Kategorie O.
  2. Prüfen Sie TaxCategoryCodes, TradeLineItem.LineTotalAmount und AbstractTradeAllowanceCharge.ActualAmount.
  3. Stellen Sie sicher, dass Befreiungscode und Befreiungstext übereinstimmen und AssociatedDocument.LineStatusReasonCode beziehungsweise LineStatusReasonCodes DETAIL oder keinen Wert enthält.
  4. Erzeugen Sie die Rechnung neu und prüfen Sie sie erneut.
In FactoorSharp prüfen
  • TaxCategoryCodes (BT-151; BT-95; BT-102; BT-118)
  • AbstractTradeAllowanceCharge.ActualAmount (Document level allowance: BT-92; Document level charge: BT-99)
  • AssociatedDocument.LineStatusReasonCode (BT-X-8)
  • LineStatusReasonCodes (BT-X-8)
  • TradeLineItem.LineTotalAmount (BT-131)
Technische Details

Summiert die Beträge nach Kategorie O und normalisiertem Befreiungscode und -text; die Rechnungspositionen sind zusätzlich auf den Untertyp DETAIL oder einen fehlenden ram:LineStatusReasonCode beschränkt. Verglichen wird mit ram:BasisAmount mit 0,01 Toleranz je Betrag.

Wo die Regel greift

Die Regel gilt für die Kategorie-O-Umsatzsteueraufschlüsselung ram:ApplicableTradeTax in ram:ApplicableHeaderTradeSettlement.

Originalmeldung aus dem Schematron
[BR-FXEXT-O-08rev] - In a VAT breakdown (BG-23) where VAT category code (BT-118) is equal to “O” ("Not subject to VAT"), Absolute Value of (VAT category taxable amount (BT-116) - ∑ Invoice line net amounts (BT-131) + Σ Document level allowance amounts (BT-92) - Σ Document level charge amounts (BT-99) - Σ Logistics Service fee amounts (BT-x-272)) <= 0,01 * ((Number of line net amounts (BT-131) + Number of Document level allowance amounts (BT-92) + Number of Document level charge amounts (BT-99) + Number of Logistics Service fee amounts (BT-X-272)), where the VAT category code (BT-151, BT-95, BT-102, BT-X-273) is "Not subject to VAT" (O) and where applicable the VAT exemption reason and specification code (BT-195, BT-174 and BT-176 and BT-X-592) and the Exemption reason text (BT-194, BT-173 and BT-175 and BT-X-591) are identical with the VAT category VAT exemption reason and specification code (BT-121) and VAT exemption reason text (BT-120), but only for lines where the "Subtype of invoice item" (BT-X-8) has the value "DETAIL" or is not specified.
Kontext (rule/@context)
//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode='O'][upper-case(ram:TypeCode) = 'VAT']
Prüfausdruck (assert/@test)
( for $exempReasonText in normalize-space(ram:ExemptionReason), $exempReasonCode in normalize-space(ram:ExemptionReasonCode), $basisAmount in xs:decimal(ram:BasisAmount), $calculatedAmountBT131 in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/ rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem[ not(ram:AssociatedDocumentLineDocument/ram:LineStatusReasonCode) or ram:AssociatedDocumentLineDocument/ram:LineStatusReasonCode = 'DETAIL' ]/ram:SpecifiedLineTradeSettlement[ ram:ApplicableTradeTax/ram:CategoryCode = 'O' and normalize-space(ram:ApplicableTradeTax/ram:ExemptionReasonCode) = $exempReasonCode and normalize-space(ram:ApplicableTradeTax/ram:ExemptionReason) = $exempReasonText ]/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 100) div 100), $allowancesAmountBT92 in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/ rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ ram:SpecifiedTradeAllowanceCharge[ ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='O' and normalize-space(ram:CategoryTradeTax/ram:ExemptionReasonCode) = $exempReasonCode and normalize-space(ram:CategoryTradeTax/ram:ExemptionReason) = $exempReasonText ]/xs:decimal(ram:ActualAmount)) * 100) div 100), $chargesAmountBT99 in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/ rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ ram:SpecifiedTradeAllowanceCharge[ ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='O' and normalize-space(ram:CategoryTradeTax/ram:ExemptionReasonCode) = $exempReasonCode and normalize-space(ram:CategoryTradeTax/ram:ExemptionReason) = $exempReasonText ]/xs:decimal(ram:ActualAmount)) * 100) div 100), $nbLineItems in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ ram:IncludedSupplyChainTradeLineItem[ ( not(ram:AssociatedDocumentLineDocument/ram:LineStatusReasonCode) or ram:AssociatedDocumentLineDocument/ram:LineStatusReasonCode = 'DETAIL' ) and ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode = 'O' and normalize-space(ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ ram:ExemptionReasonCode) = $exempReasonCode and normalize-space(ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ ram:ExemptionReason) = $exempReasonText ])), $nbAllowancesOrCharges in xs:decimal(count(/rsm:CrossIndustryInvoice/ rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ ram:SpecifiedTradeAllowanceCharge[ ram:CategoryTradeTax/ram:CategoryCode='O' and normalize-space(ram:CategoryTradeTax/ram:ExemptionReasonCode) = $exempReasonCode and normalize-space(ram:CategoryTradeTax/ram:ExemptionReason) = $exempReasonText ])), $logisticChargeAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/ rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ ram:SpecifiedLogisticsServiceCharge[ ram:AppliedTradeTax/ram:CategoryCode='O' and normalize-space(ram:AppliedTradeTax/ram:ExemptionReasonCode) = $exempReasonCode and normalize-space(ram:AppliedTradeTax/ram:ExemptionReason) = $exempReasonText ]/xs:decimal(ram:AppliedAmount)) * 100) div 100), $nblogisticCharge in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ ram:AppliedTradeTax/ram:CategoryCode='O' and normalize-space(ram:AppliedTradeTax/ram:ExemptionReasonCode) = $exempReasonCode and normalize-space(ram:AppliedTradeTax/ram:ExemptionReason) = $exempReasonText ])) return abs($basisAmount - $calculatedAmountBT131 + $allowancesAmountBT92 - $chargesAmountBT99 - $logisticChargeAmount) le 0.01 * ($nbLineItems + $nbAllowancesOrCharges + $nblogisticCharge) )