Fälligen Betrag korrekt berechnen

Fehler BR-FXEXT-CO-16 Factur-X

Fälliger Zahlungsbetrag (BT-115) = Rechnungsgesamtbetrag einschließlich Umsatzsteuer (BT-112) - Vorauszahlungsbetrag (BT-113) + Rundungsbetrag (BT-114) + Der Betrag der Fremdforderung (BT-179).

Pflichtregel: Solange sie verletzt ist, ist die Rechnung ungültig und wird von Validatoren abgewiesen.
Was nicht stimmt

DuePayableAmount entspricht nicht der Summe aus GrandTotalAmount abzüglich TotalPrepaidAmount, zuzüglich RoundingAmount und der Summe der ActualAmount-Werte aus SpecifiedFinancialAdjustment.

Was die Regel bedeutet

Der fällige Zahlbetrag ergibt sich aus dem Rechnungsbetrag inklusive Umsatzsteuer abzüglich bereits gezahlter Beträge. Rundung und für Dritte eingezogene Zuschläge werden anschließend berücksichtigt.

Betroffene Felder BT-115 BT-112 BT-113 BT-114 BT-179
Bitte berechnen Sie den fälligen Rechnungsbetrag korrekt

Der Betrag in DuePayableAmount stimmt nicht mit den übrigen Summen der Abrechnung überein. Mit den enthaltenen Beträgen lässt sich der fällige Betrag eindeutig nachvollziehen.

Was ist zu tun?
  1. Vergleichen Sie DuePayableAmount mit GrandTotalAmount abzüglich TotalPrepaidAmount.
  2. Berücksichtigen Sie zusätzlich RoundingAmount und die ActualAmount-Werte von FinancialAdjustment.
  3. Prüfen Sie die Werte in DuePayableAmount, GrandTotalAmount, TotalPrepaidAmount, RoundingAmount und FinancialAdjustment.ActualAmount.
  4. Erzeugen Sie die Rechnung neu und prüfen Sie sie erneut.
So sieht es aus
✗ Führt zur Meldung
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
  <ram:GrandTotalAmount>100</ram:GrandTotalAmount>
  <ram:TotalPrepaidAmount>20</ram:TotalPrepaidAmount>
  <ram:RoundingAmount>1</ram:RoundingAmount>
  <ram:DuePayableAmount>80</ram:DuePayableAmount>
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
✓ In Ordnung
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
  <ram:GrandTotalAmount>100</ram:GrandTotalAmount>
  <ram:TotalPrepaidAmount>20</ram:TotalPrepaidAmount>
  <ram:RoundingAmount>1</ram:RoundingAmount>
  <ram:DuePayableAmount>81</ram:DuePayableAmount>
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
In FactoorSharp prüfen
  • FacturXInvoice.DuePayableAmount (BT-115)
  • FacturXInvoice.GrandTotalAmount (BT-112)
  • FacturXInvoice.RoundingAmount (BT-114)
  • FacturXInvoice.TotalPrepaidAmount (BT-113)
  • FinancialAdjustment.ActualAmount (SpecifiedFinancialAdjustment: BT-179)
Technische Details

Der XPath vergleicht DuePayableAmount mit einem Dezimalausdruck aus den Summen der genannten Beträge; fehlende Werte in den Summen gehen als null ein.

Wo die Regel greift

Die Regel gilt für die Beträge in SpecifiedTradeSettlementHeaderMonetarySummation und für SpecifiedFinancialAdjustment im übergeordneten Abrechnungskontext.

Originalmeldung aus dem Schematron
Amount due for payment (BT-115) = Invoice total amount with VAT (BT-112) -Paid amount (BT-113) + Rounding amount (BT-114) + Sum of Charge amount collected on behalf of a third party (BT-179).
Kontext (rule/@context)
//ram:SpecifiedTradeSettlementHeaderMonetarySummation
Prüfausdruck (assert/@test)
xs:decimal(ram:DuePayableAmount) = xs:decimal(sum(ram:GrandTotalAmount/xs:decimal(.))) - xs:decimal(sum(ram:TotalPrepaidAmount/ xs:decimal(.))) + xs:decimal(sum(ram:RoundingAmount/xs:decimal(.))) + xs:decimal(sum(../ ram:SpecifiedFinancialAdjustment/ram:ActualAmount/xs:decimal(.)))