XRechnung Fehler

hteufl

Newbie
Registriert
Mai 2013
Beiträge
7
Hallo,

Wir müssen in unserem ERP System eine XRechnung implementieren! Leider zickt die Ausgabe bei der Validierung eine wenig herum!
Daher stelle ich die Frage wo die <cac:InvoiceLine> stehen darf. Wir haben zuerst die Anschriftsdaten ausgebeben, dann die Rechnungspositionen mit <cac:InvoiceLine> und am Schluss die Rechnungs- und Steuersummen!
Da ich vom Syntax keine Fehler sehe vermute ich einmal, dass ev. die Reihenfolge der XRechnungsdaten auch fix vorgegeben sind!
Hier ein Ausschnitt der XML Datei mit der <cac:InvoiceLine>
....
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc :InvoicedQuantity unitCode="C62">1.00</cbc :InvoicedQuantity>
<cbc :LineExtensionAmount currencyID="EUR">1111.11</cbc :LineExtensionAmount>
<cac:Item>
<cbc: Description>Raum 0.43 Erdgeschoss Kleinobjekte MfK</cbc: Description>
<cac:SellersItemIdentification>
<cbc:ID>REGPOS</cbc:ID>
</cac:SellersItemIdentification>
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc: Percent>19.00</cbc: Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<cac: Price>
<cbc: PriceAmount currencyID="EUR">1111.11</cbc: PriceAmount>
</cac: Price>

</cac:InvoiceLine>
.....

Die zusätzlichen Leerzeichen musste ich wegen der automatisch generierten Emojis einfügen, sind aber in der XML Datei korrekt eingetragen!
Vielleicht sieht jemand noch einen Fehler den ich schon seit Stunden suche!
Nachtrag: ein XRechnungsvalidator aus dem Internet schreibt folgende Fehler:

Element '{urn: oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2}InvoiceLine': This element is not expected. Expected is one of ( {urn: oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2}Delivery, {urn: oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2}DeliveryTerms, {urn: oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2}PaymentMeans, {urn: oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2}PaymentTerms, {urn: oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2}PrepaidPayment, {urn: oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2}AllowanceCharge, {urn: oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2}TaxExchangeRate, {urn: oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2}PricingExchangeRate, {urn: oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2}PaymentExchangeRate, {urn: oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2}PaymentAlternativeExchangeRate ).

Vielen Dank im Voraus Hermann
 
Relevant wäre wohl noch das XML davor und danach. Sieht auf den ersten Blick danach aus, als wenn es in einem falschen (parent) XML-Element ist.
 
Nach welchem Profil geht eure XRechnung? Relativ weit oben im XML muss das Profil stehen. Zu diesen Profilen gibt es Spezifikationen, worin du siehst, welche Felder vorgesehen sind.

Bei XRechnung zB: urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0
Bei FacturX zB: urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:basic
 
hteufl schrieb:
Die zusätzlichen Leerzeichen musste ich wegen der automatisch generierten Emojis einfügen
Benutze Code-Tags, dann ist es auch lesbarer.
 
  • Gefällt mir
Reaktionen: Smily und M-X
Bei dieser Art von Fehlermeldung (This element is not expected. Expected is one of ...) würde ich vermuten, dass die InvoiceLine dem Validator "zu früh" kommt. Oder in anderen Worten, davor fehlen noch Pflichtelemente. Vielleicht ist auch etwas anderes in Sachen Hierarchie / Verschachtelung schief gelaufen. Würde den Fehler jedenfalls außerhalb deines InvoiceLine-Ausschnitts suchen / vermuten.
 
Vielen Dank für Eure Antworten!
Durch verschiedene Experimente habe ich herausgefunden, dass tatsächlich die <cac:InvoiceLine> am Ende der XRechnung stehen muss. Ich habe kurzerhand mit einem Editor die Daten modifiziert und die Fehlermeldungen wurden wesentlich weniger. Ich muss mir jetzt überlegen wie ich den Programmablauf insofern ändere damit die Gesamtsumme bereits am Anfange der Rechnung vorliegt oder irgend eine andere Lösung (2. XML Datei, Tabelle, etc.). Aber ich denke, dass ich schon relativ weit mit der Programmlogik der XRechung bin.

Der Header der XML Datei sieht wie folgt aus:

XML:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:Invoice xmlns:ns0="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2">
<cbc:CustomizationID>urn:cen.eu:en16921:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</cbc:CustomizationID>[/I]
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
[I]

Den Header habe ich aus einem Onlinegenerator abgekupfert und hoffe dass dieser richtig ist!

Danke
Hermann
 
hteufl schrieb:
Ich muss mir jetzt überlegen wie ich den Programmablauf insofern ändere damit die Gesamtsumme bereits am Anfange der Rechnung vorliegt oder irgend eine andere Lösung
Darf man hier nach dem Sinn fragen? XRechnung ist ja nicht zum "Betrachten" da, sondern, dass sie eben maschinell eingelesen werden kann. Willst du eben auch was zum Betrachten, brauchst du zB ZUGFeRD, was PDF + XML kombiniert, um eben beides zu haben.
 
Hallo dominic.e,
Natürlich will ich die Rechnung per se nicht betrachten, aber die XRechnungslogik verlangt doch dass nach den Adressdate die Summen der Steuerangaben gemacht werden und erst am Ende der XRechnung die Einzelpositionen angeführt werden dürfen (InvoiceLine)!
Bei uns im ERP System werden normalerweise die einzelnen Positionen angeführt die Werte aufsummiert und am Ende der Rechnung werden die Summenzeilen schließlich ausgegeben.
Daher wurde das Programm mit einer Tabelle ergänzt um die Positionen zu erfassen und am Ende ausgeben zu können. Ein Test des Formates ist noch ausständig!
Danke
Hermann
 
hteufl schrieb:
urn:cen.eu:en16921:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0
Versuch es mal mit 16931 anstatt 16921
 
  • Gefällt mir
Reaktionen: dominic.e und Leranis
Vielen Dank für Eure Antworten!
Tatsächlich hat die Normänderung auf en16931 etwas bewirkt! Ich konnte eine XRechnung auf verschiedenen Plattformen validieren nachdem auch ein Fehler im Bereich
XML:
<cbc:ChargeTotalAmount currencyID="EUR">
behoben wurde!
Hat jemand Informationen über ChargeTotalAmount? Was soll mit diesem Feld eigentlich dargestellt werden (Komunalrabatt, Abschläge, ...)?


Danke
Hermann
 
Aus der ZUGFeRD Spezifikation:
ChargeTotalAmount
Anwendung:
Summe aller in der Rechnung enthaltenen Zuschläge der Dokumentenebene
Hinweis:
Zuschläge der Positionsebene sind in den Nettobeträgen der Rechnungspositionen enthalten, die addiert
werden, um den Gesamtnettobetrag der Positionen zu erhalten.

zB Versandkosten sind eigentlich als Charge aufzunehmen

AllowanceTotalAmount
Anwendung:
Summe aller in der Rechnung enthaltenen Abschläge der Dokumentenebene
Hinweis:
Abschläge auf der Positionsebene sind in den Nettobeträgen der Rechnungspositionen enthalten, die addiert
werden, um den Gesamtnettobetrag der Positionen zu erhalten.

zB (Sonder)Nachlässe sind als Allowance aufzunehmen
 
Zuletzt bearbeitet:
Hallo dominic.e!
Ich habe z.B. eine Positionsgutschrift (Indexanpassung Stahlpreis) negativ als Position erfasst! Würde diese Position z.B. als Allowance Nachlass aufzunehmen sein?

Code:
   <cac:InvoiceLine>
        <cbc:ID>108</cbc:ID>
        <cbc:InvoicedQuantity unitCode="C62">-1.00</cbc:InvoicedQuantity>
    <cbc:LineExtensionAmount currencyID="EUR">-18.29</cbc:LineExtensionAmount>
        <cac:Item>
            <cbc:Description>Gutschrift zu Stahlpreisindexvereinbarung</cbc:Description>
            <cbc:Name>Gutschrift zu Stahlpreisindexvereinbarung </cbc:Name>
            <cac:SellersItemIdentification>
                <cbc:ID>INDEX</cbc:ID>
            </cac:SellersItemIdentification>
            <cac:ClassifiedTaxCategory>
                <cbc:ID>S</cbc:ID>
                <cbc:Percent>19.00</cbc:Percent>
                <cac:TaxScheme>
                    <cbc:ID>VAT</cbc:ID>
                </cac:TaxScheme>
            </cac:ClassifiedTaxCategory>
        </cac:Item>
        <cac:Price>
            <cbc:PriceAmount currencyID="EUR">18.29</cbc:PriceAmount>
        </cac:Price>
    </cac:InvoiceLine>
</Invoice>

Danke
Hermann
 
Ich hab meine Nachricht nochmal editiert.

AllowanceTotalAmount und ChargeTotalAmount sind für Zu- und Abschläge auf Dokumentenebene gedacht. Also Versandkosten generell oder aber ein genereller Rabatt über alle Artikel hinweg.

Was du hast ist ja ein positionsspezifischer Rabatt. Der wird afaik einfach nur entsprechend verrechnet und muss nirgends gesondert nochmal summiert aufgeführt werden.
 
Vielen Dank für die Antwort!

In bisherigen Rechnungen die testweise validiert wurden, habe ich das auch so gehandhabt. Daher ist die Validierung auch ohne Probleme durchgelaufen!
Zu guter Letzt hätte ich noch eine Frage zu Abschlags- und Schlussrechnungen für Bauleistungen! Hat jemand eine Webseite mit näheren Informationen hierzu! Stichwort: Ausstellung Abschlagsrechnungen, Teilzahlungen, Schlussrechnung und anweisbaren Beträgen)

Vielen Dank im Voraus
Hermann
 
Zurück
Oben