Steuerbemessungsgrundlage für Standardbesteuerung abstimmen

Warnung BR-FXEXT-S-08ini Factur-X

[BR-FXEXT-S-08ini] - In einer Umsatzsteueraufschlüsselung (BG-23) gilt für jeden unterschiedlichen Wert des Kategoriespezifischen Umsatzsteuersatzes (BT-119), bei dem der Code der Umsatzsteuerkategorie (BT-118) gleich „S“ („Normalsatz“) ist: 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) „Normalsatz“ (S) ist, 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 um mehr als die zulässige Rundungstoleranz von den zugehörigen Rechnungspositionsbeträgen, Abschlägen, Zuschlägen und Logistikgebühren ab. Für den Abgleich zählen Rechnungspositionen mit DETAIL oder ohne Statusgrund; die Summen werden nach Steuercode S und Steuersatz gebildet.

Was die Regel bedeutet

Der Steuerbemessungsbetrag muss die Nettowerte der zugehörigen Rechnungsbestandteile korrekt zusammenfassen. S kennzeichnet Standardbesteuerung; die Zuordnung zum gleichen Steuersatz stellt sicher, dass keine anders besteuerten Beträge in den Vergleich eingehen.

Bitte gleichen Sie die Bemessungsgrundlage für `S` ab

Der Steuerbemessungsbetrag für die Standardbesteuerung passt nicht ausreichend zu den zugehörigen Rechnungsbestandteilen. Für diesen Abgleich werden die Beträge nach Steuersatz und Kategorie zusammengefasst.

Was ist zu tun?
  1. Vergleichen Sie ram:BasisAmount mit den Nettobeträgen der passenden Rechnungspositionen, Abschläge, Zuschläge und Logistikgebühren.
  2. Prüfen Sie TradeLineItem.LineTotalAmount und AbstractTradeAllowanceCharge.ActualAmount für die Kategorie S und denselben Steuersatz.
  3. Berücksichtigen Sie nur Rechnungspositionen mit DETAIL oder ohne Statusgrund; die Summierung gruppiert nicht zusätzlich nach Befreiungsgrund.
  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

Der Test summiert Werte nach ram:RateApplicablePercent und Kategorie S, ohne die Befreiungsgründe als Gruppierungskriterium zu verwenden. Beträge werden auf zwei Dezimalstellen gerundet; die zulässige Abweichung beträgt 0,01 je einbezogener Rechnungsposition, Zu- oder Abschlag beziehungsweise Logistikgebühr.

Wo die Regel greift

Die Regel gilt für jede Umsatzsteueraufschlüsselung ram:ApplicableTradeTax auf Dokumentenebene mit dem Steuercode S und dem Steuertyp VAT. Verglichen werden der Bemessungsbetrag und die Rechnungsbestandteile desselben Steuersatzes.

Originalmeldung aus dem Schematron
[BR-FXEXT-S-08ini] - In a VAT breakdown (BG-23), for each different value of VAT rate (BT-119), where VAT category code (BT-118) is equal to “S” ("Standard Rated"), 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 "Standard Rated" (S), 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='S'][upper-case(ram:TypeCode) = 'VAT']
Prüfausdruck (assert/@test)
( for $rate in xs:decimal(ram:RateApplicablePercent), $exempReasonText in normalize-space(ram:ExemptionReason), $exempReasonCode in normalize-space(ram:ExemptionReasonCode), $basisAmount in xs:decimal(ram:BasisAmount), $calculatedAmountBT131ini 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 = 'S' and ram:ApplicableTradeTax/xs:decimal(ram:RateApplicablePercent) =$rate ]/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 100) div 100), $allowancesAmountBT92ini in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/ rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ ram:SpecifiedTradeAllowanceCharge[ ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode='S' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate ]/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='S' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate and normalize-space(ram:CategoryTradeTax/ram:ExemptionReasonCode) = $exempReasonCode and normalize-space(ram:CategoryTradeTax/ram:ExemptionReason) = $exempReasonText ]/xs:decimal(ram:ActualAmount)) * 100) div 100), $chargesAmountBT99ini in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/ rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ ram:SpecifiedTradeAllowanceCharge[ ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='S' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate ]/xs:decimal(ram:ActualAmount)) * 100) div 100), $nbLineItemsini 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 = 'S' and ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/xs:decimal(ram:RateApplicablePercent) =$rate ])), $nbAllowancesOrChargesini in xs:decimal(count(/rsm:CrossIndustryInvoice/ rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ ram:SpecifiedTradeAllowanceCharge[ ram:CategoryTradeTax/ram:CategoryCode='S' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate ])), $logisticChargeAmountini in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/ rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ ram:SpecifiedLogisticsServiceCharge[ ram:AppliedTradeTax/ram:CategoryCode='S' and ram:AppliedTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate ]/xs:decimal(ram:AppliedAmount)) * 100) div 100), $nblogisticChargeini in xs:decimal(count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge[ ram:AppliedTradeTax/ram:CategoryCode='S' and ram:AppliedTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate ])) return abs($basisAmount - $calculatedAmountBT131ini + $allowancesAmountBT92ini - $chargesAmountBT99ini - $logisticChargeAmountini) le 0.01 * ($nbLineItemsini + $nbAllowancesOrChargesini + $nblogisticChargeini) )