Steuerbemessungsgrundlage der Kategorie L abstimmen

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

[BR-FXEXT-AF-08rev] - In einer Umsatzsteueraufschlüsselung (BG-23), in der der Code der Umsatzsteuerkategorie (BT-118) gleich „L“ („Steuer der Kanarischen Inseln“) 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)), wobei der Code der Umsatzsteuerkategorie (BT-151, BT-95, BT-102, BT-X-273) „Steuer der Kanarischen Inseln“ (L) ist und, soweit zutreffend, der Umsatzsteuerbefreiungsgrund und der Code für den Umsatzsteuerbefreiungsgrund (BT-195, BT-174 und BT-176 und BT-X-592) sowie der Text zum Befreiungsgrund (BT-194, BT-173 und BT-175 und BT-X-591) mit dem Code für den Umsatzsteuerbefreiungsgrund der Umsatzsteuerkategorie (BT-121) und dem Umsatzsteuerbefreiungsgrund (BT-120) 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 der Summe der passenden ram:LineTotalAmount-Beträge, vermindert um Abschläge und Zuschläge und um ram:AppliedAmount für Logistikleistungen, ab. Berücksichtigt werden nur Einträge mit Kategorie L, passendem Steuersatz und übereinstimmendem Befreiungsgrund; Rechnungspositionen mit einem anderen ram:LineStatusReasonCode als DETAIL werden ausgeschlossen.

Was die Regel bedeutet

Der Steuerbetrag der Kategorie L muss der Bemessungsgrundlage entsprechen, die sich aus den zugehörigen Rechnungspositionen, Abschlägen, Zuschlägen und Logistikleistungen ergibt. Die Regel erlaubt eine Rundungsabweichung von 0,01 je berücksichtigtem Betrag.

Bitte stimmen Sie die Bemessungsgrundlage der Kategorie `L` ab

Die Bemessungsgrundlage der Umsatzsteueraufschlüsselung L stimmt nicht ausreichend mit den zugehörigen Rechnungspositionen und Beträgen auf Dokumentenebene überein. Sie können den Fehler beheben, indem Sie diese Beträge und ihre Steuerangaben abstimmen.

Was ist zu tun?
  1. Vergleichen Sie ram:BasisAmount mit den zugehörigen ram:LineTotalAmount, Abschlägen, Zuschlägen und ram:AppliedAmount.
  2. Prüfen Sie für diese Einträge TaxCategoryCodes, TradeLineItem.LineTotalAmount und AbstractTradeAllowanceCharge.ActualAmount.
  3. Prüfen Sie, ob AssociatedDocument.LineStatusReasonCode beziehungsweise LineStatusReasonCodes den Wert DETAIL oder keinen Wert enthält und ob Kategorie, Steuersatz und Befreiungsgründe übereinstimmen.
  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

Vergleicht ram:BasisAmount mit einer auf zwei Dezimalstellen gerundeten Summe; Rate, Kategorie und normalisierte Befreiungsgründe müssen übereinstimmen. Die zulässige Differenz ist 0,01 multipliziert mit der Anzahl der einbezogenen Beträge.

Wo die Regel greift

Die Regel gilt für die ram:ApplicableTradeTax-Umsatzsteueraufschlüsselung der Kategorie L innerhalb von ram:ApplicableHeaderTradeSettlement.

Originalmeldung aus dem Schematron
[BR-FXEXT-AF-08rev] - In a VAT breakdown (BG-23) where VAT category code (BT-118) is equal to “L” ("Canary Islands tax"), 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 "Canary Islands tax" (L), 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='L'][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), $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 = 'L' and ram:ApplicableTradeTax/xs:decimal(ram:RateApplicablePercent) =$rate 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='L' 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), $chargesAmountBT99 in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/ rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ ram:SpecifiedTradeAllowanceCharge[ ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode='L' 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), $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 = 'L' and ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/xs:decimal(ram:RateApplicablePercent) =$rate 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='L' and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate 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='L' and ram:AppliedTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate 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='L' and ram:AppliedTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate 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) )