Beim Cross Industustry Invoice Format (CII) habe ich bislang immer die Summe der Nettozeilen bei Rundungsdifferenzen in 0,01 Cent Schritten angepasst, wenn es mal Rundungsdifferenzen gab. Jetzt habe ich noch gemerkt, dass es auch
das Feld
ram:SpecifiedTradeSettlementHeaderMonetarySummatio n/
ram:RoundingAmount, gibt, wo man den Differenzbetrag (also die Rundungsabweichung) angeben kann.
In Svens Implementation wäre das "PayableRoundingAmount : Currency; //BT-114"
in den Demos (XRechnungUnit2estCases) gibt es allerdings kein Beispiel (da steht momentan noch ein TODO)
Anpassung der Summe der Nettozeilen geht aber im UBL-Format nicht, da man dann dort (anders wohl als beim CII) die Fehlermeldung "PEPPOL-EN16931-R120" erhält, wo der Validator dann noch mal rückrechnet, ob sich aus der Summe einer Nettozeile wieder der gleiche Netto-Einzelbetrag ergibt, wenn man den GesamtNettobetrag durch die Anzahl teilt (mit dem Ergebnis, dass gleiche von mir erzeigte Beträge im CII-Format vom Validator akzeptiert werden, im UBL-Format aber nicht).
Ich werde also jetzt mal mein Glück versuchen, indem ich im UBL-Format keine Rundungsanpassung auf Netto-Zeilen-Ebene vornehme, sondern am Ende den Betrag der Rundungsabweichung auf Rechnungsebene angebe.
Aber prinzipiell sieht es so aus, als ob ich für UBL (oder X-Rechnung) möglicherweise nur die Nettoberechnungsmethode verwenden kann. Das wirft aber wie erwähnt verschiedene Probleme auf, da ich alle meine EinzelPreise in Brutto ausweise und je nachdem, ob ein Privatkunde kauft oder ein Unternehmer unterschiedliche Berechnungsmethoden anwenden müsste.
Insgesamt alles echt nicht einfach, die unterschiedlichen Anforderungen unter einen Hut zu bekommen...