Steuerbemessungsgrundlage der Reverse-Charge-Aufschlüsselung abstimmen

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

[BR-FXEXT-AE-08ini] - In einer Umsatzsteueraufschlüsselung (BG-23), in der der Code der Umsatzsteuerkategorie (BT-118) gleich „AE“ („Umkehrung der Steuerschuldnerschaft (Reverse Charge)“) ist, gilt: Absolutwert von (kategoriespezifischer Steuerbasisbetrag (BT-116) - ∑ Nettobeträge der Rechnungspositionen (BT-131) + Σ Beträge der Abschläge auf Dokumentenebene (BT-92) - Σ Beträge der Zuschläge auf Dokumentenebene (BT-99) - Σ Beträge der Servicegebühren (BT-x-272)) <= 0,01 * ((Anzahl der Nettobeträge der Rechnungspositionen (BT-131) + Anzahl der Beträge der Abschläge auf Dokumentenebene (BT-92) + Anzahl der Beträge der Zuschläge auf Dokumentenebene (BT-99) + Anzahl der Beträge der Servicegebühren (BT-X-272)), wenn der Code der Umsatzsteuerkategorie (BT-151, BT-95, BT-102, BT-X-273) „Umkehrung der Steuerschuldnerschaft (Reverse Charge)“ (AE) lautet, 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 stimmt nicht innerhalb der zulässigen Rundungstoleranz mit den zugehörigen Nettobeträgen der Rechnungspositionen, Abschlägen, Zuschlägen und Logistik-Servicegebühren überein. Berücksichtigt werden Rechnungspositionen mit ram:LineStatusReasonCode gleich DETAIL oder ohne dieses Element sowie die Beträge mit der Kategorie AE und dem passenden Steuersatz.

Was die Regel bedeutet

Die Steuerbemessungsgrundlage für die Kategorie AE muss die Summen der zugehörigen Rechnungspositionen sowie der Dokumentenabschläge, Dokumentenzuschläge und Logistik-Servicegebühren widerspiegeln. Eine begrenzte Rundungsabweichung wird anhand der Anzahl der berücksichtigten Beträge zugelassen.

Bitte gleichen Sie die Bemessungsgrundlage der Reverse-Charge-Umsatzsteuer ab

Die Bemessungsgrundlage der Umsatzsteueraufschlüsselung für AE passt nicht ausreichend zu den zugehörigen Beträgen der Rechnung. Stimmen Sie die verwendeten Beträge und ihre Steuerkategorie aufeinander ab.

Was ist zu tun?
  1. Prüfen Sie ram:BasisAmount in der Umsatzsteueraufschlüsselung mit ram:CategoryCode gleich AE.
  2. Gleichen Sie den Betrag mit den betreffenden Rechnungspositionen und den Abschlägen, Zuschlägen sowie Logistik-Servicegebühren ab.
  3. Prüfen Sie die Zuordnung über TaxCategoryCodes und die Positionsbeträge über TradeLineItem.LineTotalAmount.
  4. Prüfen Sie bei Dokumentenabschlägen und -zuschlägen die Beträge über AbstractTradeAllowanceCharge.ActualAmount.
  5. Erzeugen Sie die Rechnung erneut und prüfen Sie sie nochmals.
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 vergleicht ram:BasisAmount mit der Summe der berücksichtigten ram:LineTotalAmount und ram:ActualAmount abzüglich der Zuschläge und Logistikgebühren. Die zulässige Abweichung beträgt 0.01 multipliziert mit der Anzahl der berücksichtigten Einträge. Rechnungspositionen ohne ram:LineStatusReasonCode oder mit dem Wert DETAIL werden einbezogen.

Wo die Regel greift

Die Regel gilt für eine Umsatzsteueraufschlüsselung ram:ApplicableTradeTax auf Dokumentenebene mit ram:CategoryCode gleich AE und ram:TypeCode gleich VAT.

Originalmeldung aus dem Schematron
[BR-FXEXT-AE-08ini] - In a VAT breakdown (BG-23) where VAT category code (BT-118) is equal to “AE” ("Reverse charge"), 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 "Reverse charge" (AE), 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='AE'][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 = 'AE' 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='AE' 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='AE' 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 = 'AE' 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='AE' 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='AE' 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='AE' and ram:AppliedTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate ])) return abs($basisAmount - $calculatedAmountBT131ini + $allowancesAmountBT92ini - $chargesAmountBT99ini - $logisticChargeAmountini) le 0.01 * ($nbLineItemsini + $nbAllowancesOrChargesini + $nblogisticChargeini) )