ZUGFeRD / Factur-X PDF-Rechnungen mit DocuGenerate Erstellen

Artikelbild
Autor Von DocuGenerate

8. März 2025

Was ist Elektronische Rechnungsstellung?

Elektronische Rechnungsstellung (E-Rechnungsstellung) ist der Austausch von Rechnungsdokumenten zwischen Lieferanten und Käufern in einem strukturierten elektronischen Format. Im Gegensatz zu herkömmlichen Papierrechnungen oder einfachen per E-Mail gesendeten PDF-Dateien enthalten E-Rechnungen strukturierte Daten, die von Buchhaltungssystemen automatisch verarbeitet werden können, wodurch manuelle Dateneingabe reduziert und die Genauigkeit verbessert wird.

Die Europäische Union treibt die Einführung der E-Rechnungsstellung durch verschiedene Richtlinien und Standards voran. In Deutschland wird die E-Rechnungsstellung für B2B-Transaktionen ab dem 1. Januar 2025 obligatorisch, während Frankreich dies bis September 2026 vorschreiben wird. Diese Regelungen sollen die Effizienz steigern, Kosten senken und die Steuerkonformität im europäischen Markt verbessern.

E-Rechnungen kommen in verschiedenen Formaten vor, aber einer der beliebtesten Ansätze ist das Hybridformat, das sowohl menschenlesbare als auch maschinenlesbare Elemente in einem einzigen Dokument kombiniert. Dieser Ansatz gewährleistet die Kompatibilität mit bestehenden Workflows und ermöglicht gleichzeitig die automatisierte Verarbeitung. E-Rechnungsgenerierung kann in verschiedene Geschäfts-Workflows integriert werden:

  • ERP-Integration: E-Rechnung generieren, wenn Rechnungen im ERP-System genehmigt werden
  • E-Commerce-Plattformen: Automatisch E-Rechnungen für Online-Bestellungen erstellen
  • Abonnement-Systeme: Wiederkehrende E-Rechnungen für abonnementbasierte Dienste erstellen
  • Projektmanagement: E-Rechnungen basierend auf abgeschlossenen Projektmeilensteinen generieren

Hybride E-Rechnungsformate Verstehen

Hybride E-Rechnungsformate bieten das Beste beider Welten: Sie erhalten die gewohnte PDF-Darstellung, die Menschen lesen und verstehen können, und betten strukturierte XML-Daten ein, die Maschinen automatisch verarbeiten können. Die bekanntesten Beispiele sind ZUGFeRD (in Deutschland entwickelt) und Factur-X (in Frankreich entwickelt), die harmonisiert wurden und nun im Wesentlichen denselben Standard darstellen.

Schlüsselkomponenten Hybrider E-Rechnungen

Eine hybride E-Rechnung besteht aus mehreren wesentlichen Komponenten:

  • PDF/A-3-Dokument: Die visuelle Darstellung der Rechnung, die wie eine herkömmliche Rechnung aussieht. PDF/A-3 wird speziell gewählt, weil es eingebettete Dateianhänge unterstützt und gleichzeitig langfristige Archivierungsfähigkeiten beibehält.

  • Eingebettete XML-Datei: Maschinenlesbare strukturierte Daten, die alle Rechnungsinformationen in einem standardisierten Format enthalten. Dieses XML folgt internationalen Standards wie dem UN/CEFACT Cross Industry Invoice (CII).

  • Metadaten: Spezielle Metadaten, die im PDF eingebettet sind und das Dokument als E-Rechnung identifizieren sowie Informationen über die eingebettete XML-Struktur bereitstellen.

  • Digitale Signaturen: Optionale kryptografische Signaturen zur Sicherstellung der Dokumentintegrität und -authentizität.

Standards und Namenskonventionen

Verschiedene E-Rechnungsstandards erfordern spezifische Namenskonventionen für die eingebetteten XML-Dateien:

  • ZUGFeRD 1.0: Die XML-Datei muss ZUGFeRD-invoice.xml heißen
  • ZUGFeRD 2.0: Die XML-Datei muss zugferd-invoice.xml heißen
  • ZUGFeRD 2.1 und Factur-X: Die XML-Datei muss factur-x.xml heißen
  • Italienisches FatturaPA: Muss der Rechnungs-ID entsprechen, z. B. IT01234567890_00001.xml

Für die meisten europäischen Implementierungen bietet die Einhaltung des Factur-X-Standards mit dem Dateinamen factur-x.xml die breiteste Kompatibilität.

Der DocuGenerate-Ansatz für E-Rechnungsstellung

DocuGenerate bietet eine praktische Lösung zur Generierung von E-Rechnungen, indem es sich auf die PDF-Generierung konzentriert und gleichzeitig XML-Anhänge über seine API unterstützt. Dieser Ansatz berücksichtigt, dass die PDF-Komponente zwar dynamisch aus Vorlagen generiert werden kann, die XML-Struktur jedoch häufig eine spezialisierte Validierung und Konformitätsprüfung erfordert, die am besten von dedizierten Systemen übernommen wird.

Zweistufiger Prozess

Die Erstellung konformer E-Rechnungen mit DocuGenerate umfasst einen zweistufigen Prozess:

1. XML-Struktur generieren: Verwenden Sie spezialisierte E-Rechnungsbibliotheken oder -dienste, um konforme XML-Daten zu erstellen, die den erforderlichen Standards (ZUGFeRD, Factur-X usw.) entsprechen.

2. PDF mit eingebettetem XML generieren: Verwenden Sie DocuGenerate, um die PDF-Rechnung zu erstellen und die vorgenerierte XML-Datei anzufügen.

Diese Trennung der Verantwortlichkeiten stellt sicher, dass beide Komponenten ihren jeweiligen Anforderungen gerecht werden: Das XML wahrt die strikte Konformität mit den E-Rechnungsstandards, während das PDF professionelle Präsentation und Markierungsflexibilität bietet.

Überlegungen zur XML-Generierung

Die XML-Komponente einer E-Rechnung muss sorgfältig erstellt werden, um die Konformität mit dem gewählten Standard zu gewährleisten. Wichtige Überlegungen sind:

  • Datengenauigkeit: Alle Werte im XML müssen genau mit denen im PDF übereinstimmen.
  • Validierung: Das XML sollte gegen das entsprechende XSD-Schema und Schematron-Regeln validiert werden.
  • Profilauswahl: Wählen Sie das entsprechende Profil (Minimum, Basic, EN16931, Extended) basierend auf Ihren Anforderungen.
  • Codelisten: Verwenden Sie die korrekten Codelisten für Länder, Währungen, Steuerkategorien und andere standardisierte Werte.

Implementierung der E-Rechnungsgenerierung

Lassen Sie uns eine praktische Implementierung der E-Rechnungsgenerierung mit DocuGenerates API und PDF-Anhängen durchgehen.

Schritt 1: Rechnungsvorlage Vorbereiten

Erstellen Sie eine professionelle Rechnungsvorlage in Microsoft Word oder einem anderen unterstützten Format. Die Vorlage sollte Zusammenführungs-Tags für alle dynamischen Inhalte enthalten, die aus Ihrer Datenquelle befüllt werden. Wie in der untenstehenden Vorlage zu sehen ist, müssen Sie Zusammenführungs-Tags strategisch im gesamten Dokument platzieren, um alle notwendigen Rechnungsinformationen zu erfassen.

Word-Vorlage der Rechnung

Die in diesem Tutorial verwendete Rechnungsvorlage enthält folgende Zusammenführungs-Tags:

Kundeninformationen:

  • [Company Name] – Name des Unternehmens des Kunden
  • [Street Address] – Straßenadresse des Kunden
  • [City] – Stadt des Kunden
  • [State] – Bundesland oder Region des Kunden
  • [Zip Code] – Postleitzahl des Kunden

Rechnungsdetails:

  • [Invoice No] – Eindeutiger Rechnungsidentifikator
  • [Invoice Date] – Ausstellungsdatum der Rechnung

Positionen (mit Listen-Syntax):

  • [#Items]...[/] – Schleifenstruktur für mehrere Rechnungspositionen
  • [Description] – Produkt- oder Dienstleistungsbeschreibung
  • [Quantity] – Anzahl der Artikel
  • [Price] – Stückpreis pro Artikel
  • [Amount] – Gesamtbetrag für die Position

Summen:

  • [Sub Total] – Summe aller Positionen vor Steuer
  • [Tax Rate] – Steuerprozentsatz
  • [Tax Total] – Gesamtsteuerbetrag
  • [Total] – Gesamtrechnungsbetrag inklusive Steuer

Schritt 2: Rechnungsdaten Vorbereiten

Vor der Erstellung der Rechnung müssen Sie Ihre Daten im JSON-Format vorbereiten. Die JSON-Schlüssel müssen genau mit den Zusammenführungs-Tags in Ihrer Vorlage übereinstimmen, damit die Substitution korrekt funktioniert. Jeder Schlüssel entspricht einem Zusammenführungs-Tag in der Vorlage – zum Beispiel ersetzt der JSON-Schlüssel "Company Name" das Tag [Company Name] im Dokument.

Hier sind die JSON-Beispieldaten, die unserer Rechnungsvorlage entsprechen:

[
  {
    "Company Name": "TechGear Solutions",
    "Invoice No": "INV-2025-001",
    "Street Address": "82 Bashford Avenue",
    "City": "Chicago",
    "State": "IL",
    "Zip Code": "60652",
    "Invoice Date": "March 8, 2025",
    "Items": [
      {
        "Description": "Wireless Mouse",
        "Quantity": "5",
        "Price": "$29.99",
        "Amount": "$149.95"
      },
      {
        "Description": "USB-C Cable (2m)",
        "Quantity": "10",
        "Price": "$12.50",
        "Amount": "$125.00"
      },
      {
        "Description": "Laptop Stand",
        "Quantity": "3",
        "Price": "$45.00",
        "Amount": "$135.00"
      }
    ],
    "Sub Total": "$409.95",
    "Tax Rate": "20",
    "Tax Total": "$81.99",
    "Total": "$491.94"
  }
]

Beachten Sie, dass das Items-Array mehrere Objekte enthält, von denen jedes eine Position auf der Rechnung darstellt. Diese Struktur arbeitet mit der [#Items]...[/]-Schleifensyntax in der Vorlage zusammen, um mehrere Zeilen in der Rechnungstabelle zu generieren.

Schritt 3: Konformes XML Generieren

Vor der Erstellung des PDFs müssen Sie die XML-Struktur generieren, die in das PDF eingebettet wird. Alle Werte in der XML-Datei müssen mit den entsprechenden Werten in Ihrem JSON-Datensatz übereinstimmen, der das PDF befüllt, wie Rechnungsnummern, Beträge, Daten, Positionen und Summen. Jede Abweichung zwischen den PDF- und XML-Daten kann zu Validierungsfehlern oder Verarbeitungsproblemen bei Empfängersystemen führen.

Hier ist ein vereinfachtes Beispiel einer Factur-X XML-Struktur:

<?xml version="1.0" encoding="UTF-8"?>
<rsm:CrossIndustryInvoice xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
                          xmlns:a="urn:un:unece:uncefact:data:standard:QualifiedDataType:100"
                          xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:10"
                          xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100"
                          xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100"
                          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <rsm:ExchangedDocumentContext>
        <ram:GuidelineSpecifiedDocumentContextParameter>
            <ram:ID>urn:cen.eu:en16931:2017</ram:ID>
        </ram:GuidelineSpecifiedDocumentContextParameter>
    </rsm:ExchangedDocumentContext>
    <rsm:ExchangedDocument>
        <ram:ID>INV-2025-001</ram:ID>
        <ram:TypeCode>380</ram:TypeCode>
        <ram:IssueDateTime>
            <udt:DateTimeString format="102">20250308</udt:DateTimeString>
        </ram:IssueDateTime>
    </rsm:ExchangedDocument>
    <rsm:SupplyChainTradeTransaction>
        <ram:IncludedSupplyChainTradeLineItem>
            <ram:AssociatedDocumentLineDocument>
                <ram:LineID>1</ram:LineID>
            </ram:AssociatedDocumentLineDocument>
            <ram:SpecifiedTradeProduct>
                <ram:Name>Wireless Mouse</ram:Name>
            </ram:SpecifiedTradeProduct>
            <ram:SpecifiedLineTradeAgreement>
                <ram:NetPriceProductTradePrice>
                    <ram:ChargeAmount>29.99</ram:ChargeAmount>
                </ram:NetPriceProductTradePrice>
            </ram:SpecifiedLineTradeAgreement>
            <ram:SpecifiedLineTradeDelivery>
                <ram:BilledQuantity unitCode="C62">5.0000</ram:BilledQuantity>
            </ram:SpecifiedLineTradeDelivery>
            <ram:SpecifiedLineTradeSettlement>
                <ram:ApplicableTradeTax>
                    <ram:TypeCode>VAT</ram:TypeCode>
                    <ram:CategoryCode>S</ram:CategoryCode>
                    <ram:RateApplicablePercent>20</ram:RateApplicablePercent>
                </ram:ApplicableTradeTax>
                <ram:SpecifiedTradeSettlementLineMonetarySummation>
                    <ram:LineTotalAmount>149.95</ram:LineTotalAmount>
                </ram:SpecifiedTradeSettlementLineMonetarySummation>
            </ram:SpecifiedLineTradeSettlement>
        </ram:IncludedSupplyChainTradeLineItem>
        <ram:IncludedSupplyChainTradeLineItem>
            <ram:AssociatedDocumentLineDocument>
                <ram:LineID>2</ram:LineID>
            </ram:AssociatedDocumentLineDocument>
            <ram:SpecifiedTradeProduct>
                <ram:Name>USB-C Cable (2m)</ram:Name>
            </ram:SpecifiedTradeProduct>
            <ram:SpecifiedLineTradeAgreement>
                <ram:NetPriceProductTradePrice>
                    <ram:ChargeAmount>12.50</ram:ChargeAmount>
                </ram:NetPriceProductTradePrice>
            </ram:SpecifiedLineTradeAgreement>
            <ram:SpecifiedLineTradeDelivery>
                <ram:BilledQuantity unitCode="C62">10.0000</ram:BilledQuantity>
            </ram:SpecifiedLineTradeDelivery>
            <ram:SpecifiedLineTradeSettlement>
                <ram:ApplicableTradeTax>
                    <ram:TypeCode>VAT</ram:TypeCode>
                    <ram:CategoryCode>S</ram:CategoryCode>
                    <ram:RateApplicablePercent>20</ram:RateApplicablePercent>
                </ram:ApplicableTradeTax>
                <ram:SpecifiedTradeSettlementLineMonetarySummation>
                    <ram:LineTotalAmount>125.00</ram:LineTotalAmount>
                </ram:SpecifiedTradeSettlementLineMonetarySummation>
            </ram:SpecifiedLineTradeSettlement>
        </ram:IncludedSupplyChainTradeLineItem>
        <ram:IncludedSupplyChainTradeLineItem>
            <ram:AssociatedDocumentLineDocument>
                <ram:LineID>3</ram:LineID>
            </ram:AssociatedDocumentLineDocument>
            <ram:SpecifiedTradeProduct>
                <ram:Name>Laptop Stand</ram:Name>
            </ram:SpecifiedTradeProduct>
            <ram:SpecifiedLineTradeAgreement>
                <ram:NetPriceProductTradePrice>
                    <ram:ChargeAmount>45.00</ram:ChargeAmount>
                </ram:NetPriceProductTradePrice>
            </ram:SpecifiedLineTradeAgreement>
            <ram:SpecifiedLineTradeDelivery>
                <ram:BilledQuantity unitCode="C62">3.0000</ram:BilledQuantity>
            </ram:SpecifiedLineTradeDelivery>
            <ram:SpecifiedLineTradeSettlement>
                <ram:ApplicableTradeTax>
                    <ram:TypeCode>VAT</ram:TypeCode>
                    <ram:CategoryCode>S</ram:CategoryCode>
                    <ram:RateApplicablePercent>20</ram:RateApplicablePercent>
                </ram:ApplicableTradeTax>
                <ram:SpecifiedTradeSettlementLineMonetarySummation>
                    <ram:LineTotalAmount>135.00</ram:LineTotalAmount>
                </ram:SpecifiedTradeSettlementLineMonetarySummation>
            </ram:SpecifiedLineTradeSettlement>
        </ram:IncludedSupplyChainTradeLineItem>
        <ram:ApplicableHeaderTradeAgreement>
            <ram:SellerTradeParty>
                <ram:Name>DocuGenerate</ram:Name>
                <ram:PostalTradeAddress>
                    <ram:PostcodeCode>90013</ram:PostcodeCode>
                    <ram:LineOne>93 East Lassen Street</ram:LineOne>
                    <ram:CityName>Los Angeles</ram:CityName>
                    <ram:CountryID>US</ram:CountryID>
                </ram:PostalTradeAddress>
                <ram:SpecifiedTaxRegistration>
                    <ram:ID schemeID="VA">US12367623</ram:ID>
                </ram:SpecifiedTaxRegistration>
            </ram:SellerTradeParty>
            <ram:BuyerTradeParty>
                <ram:Name>TechGear Solutions</ram:Name>
                <ram:PostalTradeAddress>
                    <ram:PostcodeCode>60652</ram:PostcodeCode>
                    <ram:LineOne>82 Bashford Avenue</ram:LineOne>
                    <ram:CityName>Chicago</ram:CityName>
                    <ram:CountryID>US</ram:CountryID>
                </ram:PostalTradeAddress>
            </ram:BuyerTradeParty>
        </ram:ApplicableHeaderTradeAgreement>
        <ram:ApplicableHeaderTradeDelivery>
            <ram:ActualDeliverySupplyChainEvent>
                <ram:OccurrenceDateTime>
                    <udt:DateTimeString format="102">20250308</udt:DateTimeString>
                </ram:OccurrenceDateTime>
            </ram:ActualDeliverySupplyChainEvent>
        </ram:ApplicableHeaderTradeDelivery>
        <ram:ApplicableHeaderTradeSettlement>
            <ram:InvoiceCurrencyCode>USD</ram:InvoiceCurrencyCode>
            <ram:ApplicableTradeTax>
                <ram:CalculatedAmount>81.99</ram:CalculatedAmount>
                <ram:TypeCode>VAT</ram:TypeCode>
                <ram:BasisAmount>409.95</ram:BasisAmount>
                <ram:CategoryCode>S</ram:CategoryCode>
                <ram:RateApplicablePercent>20</ram:RateApplicablePercent>
            </ram:ApplicableTradeTax>
            <ram:SpecifiedTradePaymentTerms>
                <ram:DueDateDateTime>
                    <udt:DateTimeString format="102">20250308</udt:DateTimeString>
                </ram:DueDateDateTime>
            </ram:SpecifiedTradePaymentTerms>
            <ram:SpecifiedTradeSettlementHeaderMonetarySummation>
                <ram:LineTotalAmount>409.95</ram:LineTotalAmount>
                <ram:TaxBasisTotalAmount>409.95</ram:TaxBasisTotalAmount>
                <ram:TaxTotalAmount currencyID="USD">81.99</ram:TaxTotalAmount>
                <ram:GrandTotalAmount>491.94</ram:GrandTotalAmount>
                <ram:DuePayableAmount>491.94</ram:DuePayableAmount>
            </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
        </ram:ApplicableHeaderTradeSettlement>
    </rsm:SupplyChainTradeTransaction>
</rsm:CrossIndustryInvoice>

Sie können sowohl Ihre Vorlage als auch das XML mit zusätzlichen Geschäftsinformationen erweitern, wie zum Beispiel:

  • Zahlungsinformationen: IBAN-Kontodetails, ACH-Routing-Nummern, Zahlungsbedingungen
  • Kontaktdaten: Ansprechpartner für Käufer- und Verkäuferseite
  • Referenznummern: Bestellnummern, Lieferscheinreferenzen, Vertragsnummern
  • Zusätzliche Adressen: Lieferadressen, von der Unternehmensadresse abweichende Rechnungsadressen
  • Steuerdetails: Mehrere Steuersätze, Steuerbefreiungen, Reverse-Charge-Indikatoren

Schritt 4: PDF mit Eingebettetem XML Erstellen

Sobald Ihre XML-Datei fertig ist, können Sie sie über die PDF-Anhänge-Funktion von DocuGenerate an das PDF anhängen. Die API unterstützt zwei Methoden für die Bereitstellung der XML-Datei:

  1. Direkte URL: Wenn Ihre XML-Datei online gehostet ist, können Sie die direkte URL angeben.
  2. Base64-Daten-URI: Für lokale Dateien oder wenn Sie den Inhalt direkt einbetten möchten.

Für den Base64-Ansatz sollte das Daten-URI-Format data:text/xml;name=factur-x.xml;base64,{BASE64_KODIERTES_XML} sein. Sie können verschiedene Online-Tools oder Befehlszeilenprogramme verwenden, um Ihre XML-Datei in Base64 umzuwandeln. Für das obige XML-Beispiel können Sie die vorab kodierte Base64-XML-Datei verwenden.

So verwenden Sie die API von DocuGenerate, um die PDF-Rechnung mit dem angehängten XML zu generieren:

curl -X 'POST' \
  'https://api.docugenerate.com/v1/document' \
  -H 'accept: application/json' \
  -H 'Authorization: 491c000c5fad32ed7787005b0723ad55' \
  -H 'Content-Type: application/json' \
  -d '{
  "template_id": "7VYocxLnIupLU3YT4iLr",
  "data": [{
    "Company Name": "TechGear Solutions",
    "Invoice No": "INV-2025-001",
    "Street Address": "82 Bashford Avenue",
    "City": "Chicago",
    "State": "IL",
    "Zip Code": "60652",
    "Invoice Date": "March 8, 2025",
    "Items": [
      {
        "Description": "Wireless Mouse",
        "Quantity": "5",
        "Price": "$29.99",
        "Amount": "$149.95"
      },
      {
        "Description": "USB-C Cable (2m)",
        "Quantity": "10",
        "Price": "$12.50",
        "Amount": "$125.00"
      },
      {
        "Description": "Laptop Stand",
        "Quantity": "3",
        "Price": "$45.00",
        "Amount": "$135.00"
      }
    ],
    "Sub Total": "$409.95",
    "Tax Rate": "20",
    "Tax Total": "$81.99",
    "Total": "$491.94"
  }],
  "output_format": ".pdf/a-3b",
  "attach": "data:text/xml;name=factur-x.xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJzbTpDcm9zc0luZHVzdHJ5SW52b2ljZSB4bWxuczpyc209InVybjp1bjp1bmVjZTp1bmNlZmFjdDpkYXRhOnN0YW5kYXJkOkNyb3NzSW5kdXN0cnlJbnZvaWNlOjEwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxuczphPSJ1cm46dW46dW5lY2U6dW5jZWZhY3Q6ZGF0YTpzdGFuZGFyZDpRdWFsaWZpZWREYXRhVHlwZToxMDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM6cWR0PSJ1cm46dW46dW5lY2U6dW5jZWZhY3Q6ZGF0YTpzdGFuZGFyZDpRdWFsaWZpZWREYXRhVHlwZToxMCIKICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxuczpyYW09InVybjp1bjp1bmVjZTp1bmNlZmFjdDpkYXRhOnN0YW5kYXJkOlJldXNhYmxlQWdncmVnYXRlQnVzaW5lc3NJbmZvcm1hdGlvbkVudGl0eToxMDAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM6dWR0PSJ1cm46dW46dW5lY2U6dW5jZWZhY3Q6ZGF0YTpzdGFuZGFyZDpVbnF1YWxpZmllZERhdGFUeXBlOjEwMCIKICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4KICAgIDxyc206RXhjaGFuZ2VkRG9jdW1lbnRDb250ZXh0PgogICAgICAgIDxyYW06R3VpZGVsaW5lU3BlY2lmaWVkRG9jdW1lbnRDb250ZXh0UGFyYW1ldGVyPgogICAgICAgICAgICA8cmFtOklEPnVybjpjZW4uZXU6ZW4xNjkzMToyMDE3PC9yYW06SUQ+CiAgICAgICAgPC9yYW06R3VpZGVsaW5lU3BlY2lmaWVkRG9jdW1lbnRDb250ZXh0UGFyYW1ldGVyPgogICAgPC9yc206RXhjaGFuZ2VkRG9jdW1lbnRDb250ZXh0PgogICAgPHJzbTpFeGNoYW5nZWREb2N1bWVudD4KICAgICAgICA8cmFtOklEPklOVi0yMDI1LTAwMTwvcmFtOklEPgogICAgICAgIDxyYW06VHlwZUNvZGU+MzgwPC9yYW06VHlwZUNvZGU+CiAgICAgICAgPHJhbTpJc3N1ZURhdGVUaW1lPgogICAgICAgICAgICA8dWR0OkRhdGVUaW1lU3RyaW5nIGZvcm1hdD0iMTAyIj4yMDI1MDMwODwvdWR0OkRhdGVUaW1lU3RyaW5nPgogICAgICAgIDwvcmFtOklzc3VlRGF0ZVRpbWU+CiAgICA8L3JzbTpFeGNoYW5nZWREb2N1bWVudD4KICAgIDxyc206U3VwcGx5Q2hhaW5UcmFkZVRyYW5zYWN0aW9uPgogICAgICAgIDxyYW06SW5jbHVkZWRTdXBwbHlDaGFpblRyYWRlTGluZUl0ZW0+CiAgICAgICAgICAgIDxyYW06QXNzb2NpYXRlZERvY3VtZW50TGluZURvY3VtZW50PgogICAgICAgICAgICAgICAgPHJhbTpMaW5lSUQ+MTwvcmFtOkxpbmVJRD4KICAgICAgICAgICAgPC9yYW06QXNzb2NpYXRlZERvY3VtZW50TGluZURvY3VtZW50PgogICAgICAgICAgICA8cmFtOlNwZWNpZmllZFRyYWRlUHJvZHVjdD4KICAgICAgICAgICAgICAgIDxyYW06TmFtZT5XaXJlbGVzcyBNb3VzZTwvcmFtOk5hbWU+CiAgICAgICAgICAgIDwvcmFtOlNwZWNpZmllZFRyYWRlUHJvZHVjdD4KICAgICAgICAgICAgPHJhbTpTcGVjaWZpZWRMaW5lVHJhZGVBZ3JlZW1lbnQ+CiAgICAgICAgICAgICAgICA8cmFtOk5ldFByaWNlUHJvZHVjdFRyYWRlUHJpY2U+CiAgICAgICAgICAgICAgICAgICAgPHJhbTpDaGFyZ2VBbW91bnQ+MjkuOTk8L3JhbTpDaGFyZ2VBbW91bnQ+CiAgICAgICAgICAgICAgICA8L3JhbTpOZXRQcmljZVByb2R1Y3RUcmFkZVByaWNlPgogICAgICAgICAgICA8L3JhbTpTcGVjaWZpZWRMaW5lVHJhZGVBZ3JlZW1lbnQ+CiAgICAgICAgICAgIDxyYW06U3BlY2lmaWVkTGluZVRyYWRlRGVsaXZlcnk+CiAgICAgICAgICAgICAgICA8cmFtOkJpbGxlZFF1YW50aXR5IHVuaXRDb2RlPSJDNjIiPjUuMDAwMDwvcmFtOkJpbGxlZFF1YW50aXR5PgogICAgICAgICAgICA8L3JhbTpTcGVjaWZpZWRMaW5lVHJhZGVEZWxpdmVyeT4KICAgICAgICAgICAgPHJhbTpTcGVjaWZpZWRMaW5lVHJhZGVTZXR0bGVtZW50PgogICAgICAgICAgICAgICAgPHJhbTpBcHBsaWNhYmxlVHJhZGVUYXg+CiAgICAgICAgICAgICAgICAgICAgPHJhbTpUeXBlQ29kZT5WQVQ8L3JhbTpUeXBlQ29kZT4KICAgICAgICAgICAgICAgICAgICA8cmFtOkNhdGVnb3J5Q29kZT5TPC9yYW06Q2F0ZWdvcnlDb2RlPgogICAgICAgICAgICAgICAgICAgIDxyYW06UmF0ZUFwcGxpY2FibGVQZXJjZW50PjIwPC9yYW06UmF0ZUFwcGxpY2FibGVQZXJjZW50PgogICAgICAgICAgICAgICAgPC9yYW06QXBwbGljYWJsZVRyYWRlVGF4PgogICAgICAgICAgICAgICAgPHJhbTpTcGVjaWZpZWRUcmFkZVNldHRsZW1lbnRMaW5lTW9uZXRhcnlTdW1tYXRpb24+CiAgICAgICAgICAgICAgICAgICAgPHJhbTpMaW5lVG90YWxBbW91bnQ+MTQ5Ljk1PC9yYW06TGluZVRvdGFsQW1vdW50PgogICAgICAgICAgICAgICAgPC9yYW06U3BlY2lmaWVkVHJhZGVTZXR0bGVtZW50TGluZU1vbmV0YXJ5U3VtbWF0aW9uPgogICAgICAgICAgICA8L3JhbTpTcGVjaWZpZWRMaW5lVHJhZGVTZXR0bGVtZW50PgogICAgICAgIDwvcmFtOkluY2x1ZGVkU3VwcGx5Q2hhaW5UcmFkZUxpbmVJdGVtPgogICAgICAgIDxyYW06SW5jbHVkZWRTdXBwbHlDaGFpblRyYWRlTGluZUl0ZW0+CiAgICAgICAgICAgIDxyYW06QXNzb2NpYXRlZERvY3VtZW50TGluZURvY3VtZW50PgogICAgICAgICAgICAgICAgPHJhbTpMaW5lSUQ+MjwvcmFtOkxpbmVJRD4KICAgICAgICAgICAgPC9yYW06QXNzb2NpYXRlZERvY3VtZW50TGluZURvY3VtZW50PgogICAgICAgICAgICA8cmFtOlNwZWNpZmllZFRyYWRlUHJvZHVjdD4KICAgICAgICAgICAgICAgIDxyYW06TmFtZT5VU0ItQyBDYWJsZSAoMm0pPC9yYW06TmFtZT4KICAgICAgICAgICAgPC9yYW06U3BlY2lmaWVkVHJhZGVQcm9kdWN0PgogICAgICAgICAgICA8cmFtOlNwZWNpZmllZExpbmVUcmFkZUFncmVlbWVudD4KICAgICAgICAgICAgICAgIDxyYW06TmV0UHJpY2VQcm9kdWN0VHJhZGVQcmljZT4KICAgICAgICAgICAgICAgICAgICA8cmFtOkNoYXJnZUFtb3VudD4xMi41MDwvcmFtOkNoYXJnZUFtb3VudD4KICAgICAgICAgICAgICAgIDwvcmFtOk5ldFByaWNlUHJvZHVjdFRyYWRlUHJpY2U+CiAgICAgICAgICAgIDwvcmFtOlNwZWNpZmllZExpbmVUcmFkZUFncmVlbWVudD4KICAgICAgICAgICAgPHJhbTpTcGVjaWZpZWRMaW5lVHJhZGVEZWxpdmVyeT4KICAgICAgICAgICAgICAgIDxyYW06QmlsbGVkUXVhbnRpdHkgdW5pdENvZGU9IkM2MiI+MTAuMDAwMDwvcmFtOkJpbGxlZFF1YW50aXR5PgogICAgICAgICAgICA8L3JhbTpTcGVjaWZpZWRMaW5lVHJhZGVEZWxpdmVyeT4KICAgICAgICAgICAgPHJhbTpTcGVjaWZpZWRMaW5lVHJhZGVTZXR0bGVtZW50PgogICAgICAgICAgICAgICAgPHJhbTpBcHBsaWNhYmxlVHJhZGVUYXg+CiAgICAgICAgICAgICAgICAgICAgPHJhbTpUeXBlQ29kZT5WQVQ8L3JhbTpUeXBlQ29kZT4KICAgICAgICAgICAgICAgICAgICA8cmFtOkNhdGVnb3J5Q29kZT5TPC9yYW06Q2F0ZWdvcnlDb2RlPgogICAgICAgICAgICAgICAgICAgIDxyYW06UmF0ZUFwcGxpY2FibGVQZXJjZW50PjIwPC9yYW06UmF0ZUFwcGxpY2FibGVQZXJjZW50PgogICAgICAgICAgICAgICAgPC9yYW06QXBwbGljYWJsZVRyYWRlVGF4PgogICAgICAgICAgICAgICAgPHJhbTpTcGVjaWZpZWRUcmFkZVNldHRsZW1lbnRMaW5lTW9uZXRhcnlTdW1tYXRpb24+CiAgICAgICAgICAgICAgICAgICAgPHJhbTpMaW5lVG90YWxBbW91bnQ+MTI1LjAwPC9yYW06TGluZVRvdGFsQW1vdW50PgogICAgICAgICAgICAgICAgPC9yYW06U3BlY2lmaWVkVHJhZGVTZXR0bGVtZW50TGluZU1vbmV0YXJ5U3VtbWF0aW9uPgogICAgICAgICAgICA8L3JhbTpTcGVjaWZpZWRMaW5lVHJhZGVTZXR0bGVtZW50PgogICAgICAgIDwvcmFtOkluY2x1ZGVkU3VwcGx5Q2hhaW5UcmFkZUxpbmVJdGVtPgogICAgICAgIDxyYW06SW5jbHVkZWRTdXBwbHlDaGFpblRyYWRlTGluZUl0ZW0+CiAgICAgICAgICAgIDxyYW06QXNzb2NpYXRlZERvY3VtZW50TGluZURvY3VtZW50PgogICAgICAgICAgICAgICAgPHJhbTpMaW5lSUQ+MzwvcmFtOkxpbmVJRD4KICAgICAgICAgICAgPC9yYW06QXNzb2NpYXRlZERvY3VtZW50TGluZURvY3VtZW50PgogICAgICAgICAgICA8cmFtOlNwZWNpZmllZFRyYWRlUHJvZHVjdD4KICAgICAgICAgICAgICAgIDxyYW06TmFtZT5MYXB0b3AgU3RhbmQ8L3JhbTpOYW1lPgogICAgICAgICAgICA8L3JhbTpTcGVjaWZpZWRUcmFkZVByb2R1Y3Q+CiAgICAgICAgICAgIDxyYW06U3BlY2lmaWVkTGluZVRyYWRlQWdyZWVtZW50PgogICAgICAgICAgICAgICAgPHJhbTpOZXRQcmljZVByb2R1Y3RUcmFkZVByaWNlPgogICAgICAgICAgICAgICAgICAgIDxyYW06Q2hhcmdlQW1vdW50PjQ1LjAwPC9yYW06Q2hhcmdlQW1vdW50PgogICAgICAgICAgICAgICAgPC9yYW06TmV0UHJpY2VQcm9kdWN0VHJhZGVQcmljZT4KICAgICAgICAgICAgPC9yYW06U3BlY2lmaWVkTGluZVRyYWRlQWdyZWVtZW50PgogICAgICAgICAgICA8cmFtOlNwZWNpZmllZExpbmVUcmFkZURlbGl2ZXJ5PgogICAgICAgICAgICAgICAgPHJhbTpCaWxsZWRRdWFudGl0eSB1bml0Q29kZT0iQzYyIj4zLjAwMDA8L3JhbTpCaWxsZWRRdWFudGl0eT4KICAgICAgICAgICAgPC9yYW06U3BlY2lmaWVkTGluZVRyYWRlRGVsaXZlcnk+CiAgICAgICAgICAgIDxyYW06U3BlY2lmaWVkTGluZVRyYWRlU2V0dGxlbWVudD4KICAgICAgICAgICAgICAgIDxyYW06QXBwbGljYWJsZVRyYWRlVGF4PgogICAgICAgICAgICAgICAgICAgIDxyYW06VHlwZUNvZGU+VkFUPC9yYW06VHlwZUNvZGU+CiAgICAgICAgICAgICAgICAgICAgPHJhbTpDYXRlZ29yeUNvZGU+UzwvcmFtOkNhdGVnb3J5Q29kZT4KICAgICAgICAgICAgICAgICAgICA8cmFtOlJhdGVBcHBsaWNhYmxlUGVyY2VudD4yMDwvcmFtOlJhdGVBcHBsaWNhYmxlUGVyY2VudD4KICAgICAgICAgICAgICAgIDwvcmFtOkFwcGxpY2FibGVUcmFkZVRheD4KICAgICAgICAgICAgICAgIDxyYW06U3BlY2lmaWVkVHJhZGVTZXR0bGVtZW50TGluZU1vbmV0YXJ5U3VtbWF0aW9uPgogICAgICAgICAgICAgICAgICAgIDxyYW06TGluZVRvdGFsQW1vdW50PjEzNS4wMDwvcmFtOkxpbmVUb3RhbEFtb3VudD4KICAgICAgICAgICAgICAgIDwvcmFtOlNwZWNpZmllZFRyYWRlU2V0dGxlbWVudExpbmVNb25ldGFyeVN1bW1hdGlvbj4KICAgICAgICAgICAgPC9yYW06U3BlY2lmaWVkTGluZVRyYWRlU2V0dGxlbWVudD4KICAgICAgICA8L3JhbTpJbmNsdWRlZFN1cHBseUNoYWluVHJhZGVMaW5lSXRlbT4KICAgICAgICA8cmFtOkFwcGxpY2FibGVIZWFkZXJUcmFkZUFncmVlbWVudD4KICAgICAgICAgICAgPHJhbTpTZWxsZXJUcmFkZVBhcnR5PgogICAgICAgICAgICAgICAgPHJhbTpOYW1lPkRvY3VHZW5lcmF0ZTwvcmFtOk5hbWU+CiAgICAgICAgICAgICAgICA8cmFtOlBvc3RhbFRyYWRlQWRkcmVzcz4KICAgICAgICAgICAgICAgICAgICA8cmFtOlBvc3Rjb2RlQ29kZT45MDAxMzwvcmFtOlBvc3Rjb2RlQ29kZT4KICAgICAgICAgICAgICAgICAgICA8cmFtOkxpbmVPbmU+OTMgRWFzdCBMYXNzZW4gU3RyZWV0PC9yYW06TGluZU9uZT4KICAgICAgICAgICAgICAgICAgICA8cmFtOkNpdHlOYW1lPkxvcyBBbmdlbGVzPC9yYW06Q2l0eU5hbWU+CiAgICAgICAgICAgICAgICAgICAgPHJhbTpDb3VudHJ5SUQ+VVM8L3JhbTpDb3VudHJ5SUQ+CiAgICAgICAgICAgICAgICA8L3JhbTpQb3N0YWxUcmFkZUFkZHJlc3M+CiAgICAgICAgICAgICAgICA8cmFtOlNwZWNpZmllZFRheFJlZ2lzdHJhdGlvbj4KICAgICAgICAgICAgICAgICAgICA8cmFtOklEIHNjaGVtZUlEPSJWQSI+VVMxMjM2NzYyMzwvcmFtOklEPgogICAgICAgICAgICAgICAgPC9yYW06U3BlY2lmaWVkVGF4UmVnaXN0cmF0aW9uPgogICAgICAgICAgICA8L3JhbTpTZWxsZXJUcmFkZVBhcnR5PgogICAgICAgICAgICA8cmFtOkJ1eWVyVHJhZGVQYXJ0eT4KICAgICAgICAgICAgICAgIDxyYW06TmFtZT5UZWNoR2VhciBTb2x1dGlvbnM8L3JhbTpOYW1lPgogICAgICAgICAgICAgICAgPHJhbTpQb3N0YWxUcmFkZUFkZHJlc3M+CiAgICAgICAgICAgICAgICAgICAgPHJhbTpQb3N0Y29kZUNvZGU+NjA2NTI8L3JhbTpQb3N0Y29kZUNvZGU+CiAgICAgICAgICAgICAgICAgICAgPHJhbTpMaW5lT25lPjgyIEJhc2hmb3JkIEF2ZW51ZTwvcmFtOkxpbmVPbmU+CiAgICAgICAgICAgICAgICAgICAgPHJhbTpDaXR5TmFtZT5DaGljYWdvPC9yYW06Q2l0eU5hbWU+CiAgICAgICAgICAgICAgICAgICAgPHJhbTpDb3VudHJ5SUQ+VVM8L3JhbTpDb3VudHJ5SUQ+CiAgICAgICAgICAgICAgICA8L3JhbTpQb3N0YWxUcmFkZUFkZHJlc3M+CiAgICAgICAgICAgIDwvcmFtOkJ1eWVyVHJhZGVQYXJ0eT4KICAgICAgICA8L3JhbTpBcHBsaWNhYmxlSGVhZGVyVHJhZGVBZ3JlZW1lbnQ+CiAgICAgICAgPHJhbTpBcHBsaWNhYmxlSGVhZGVyVHJhZGVEZWxpdmVyeT4KICAgICAgICAgICAgPHJhbTpBY3R1YWxEZWxpdmVyeVN1cHBseUNoYWluRXZlbnQ+CiAgICAgICAgICAgICAgICA8cmFtOk9jY3VycmVuY2VEYXRlVGltZT4KICAgICAgICAgICAgICAgICAgICA8dWR0OkRhdGVUaW1lU3RyaW5nIGZvcm1hdD0iMTAyIj4yMDI1MDMwODwvdWR0OkRhdGVUaW1lU3RyaW5nPgogICAgICAgICAgICAgICAgPC9yYW06T2NjdXJyZW5jZURhdGVUaW1lPgogICAgICAgICAgICA8L3JhbTpBY3R1YWxEZWxpdmVyeVN1cHBseUNoYWluRXZlbnQ+CiAgICAgICAgPC9yYW06QXBwbGljYWJsZUhlYWRlclRyYWRlRGVsaXZlcnk+CiAgICAgICAgPHJhbTpBcHBsaWNhYmxlSGVhZGVyVHJhZGVTZXR0bGVtZW50PgogICAgICAgICAgICA8cmFtOkludm9pY2VDdXJyZW5jeUNvZGU+VVNEPC9yYW06SW52b2ljZUN1cnJlbmN5Q29kZT4KICAgICAgICAgICAgPHJhbTpBcHBsaWNhYmxlVHJhZGVUYXg+CiAgICAgICAgICAgICAgICA8cmFtOkNhbGN1bGF0ZWRBbW91bnQ+ODEuOTk8L3JhbTpDYWxjdWxhdGVkQW1vdW50PgogICAgICAgICAgICAgICAgPHJhbTpUeXBlQ29kZT5WQVQ8L3JhbTpUeXBlQ29kZT4KICAgICAgICAgICAgICAgIDxyYW06QmFzaXNBbW91bnQ+NDA5Ljk1PC9yYW06QmFzaXNBbW91bnQ+CiAgICAgICAgICAgICAgICA8cmFtOkNhdGVnb3J5Q29kZT5TPC9yYW06Q2F0ZWdvcnlDb2RlPgogICAgICAgICAgICAgICAgPHJhbTpSYXRlQXBwbGljYWJsZVBlcmNlbnQ+MjA8L3JhbTpSYXRlQXBwbGljYWJsZVBlcmNlbnQ+CiAgICAgICAgICAgIDwvcmFtOkFwcGxpY2FibGVUcmFkZVRheD4KICAgICAgICAgICAgPHJhbTpTcGVjaWZpZWRUcmFkZVBheW1lbnRUZXJtcz4KICAgICAgICAgICAgICAgIDxyYW06RHVlRGF0ZURhdGVUaW1lPgogICAgICAgICAgICAgICAgICAgIDx1ZHQ6RGF0ZVRpbWVTdHJpbmcgZm9ybWF0PSIxMDIiPjIwMjUwMzA4PC91ZHQ6RGF0ZVRpbWVTdHJpbmc+CiAgICAgICAgICAgICAgICA8L3JhbTpEdWVEYXRlRGF0ZVRpbWU+CiAgICAgICAgICAgIDwvcmFtOlNwZWNpZmllZFRyYWRlUGF5bWVudFRlcm1zPgogICAgICAgICAgICA8cmFtOlNwZWNpZmllZFRyYWRlU2V0dGxlbWVudEhlYWRlck1vbmV0YXJ5U3VtbWF0aW9uPgogICAgICAgICAgICAgICAgPHJhbTpMaW5lVG90YWxBbW91bnQ+NDA5Ljk1PC9yYW06TGluZVRvdGFsQW1vdW50PgogICAgICAgICAgICAgICAgPHJhbTpUYXhCYXNpc1RvdGFsQW1vdW50PjQwOS45NTwvcmFtOlRheEJhc2lzVG90YWxBbW91bnQ+CiAgICAgICAgICAgICAgICA8cmFtOlRheFRvdGFsQW1vdW50IGN1cnJlbmN5SUQ9IlVTRCI+ODEuOTk8L3JhbTpUYXhUb3RhbEFtb3VudD4KICAgICAgICAgICAgICAgIDxyYW06R3JhbmRUb3RhbEFtb3VudD40OTEuOTQ8L3JhbTpHcmFuZFRvdGFsQW1vdW50PgogICAgICAgICAgICAgICAgPHJhbTpEdWVQYXlhYmxlQW1vdW50PjQ5MS45NDwvcmFtOkR1ZVBheWFibGVBbW91bnQ+CiAgICAgICAgICAgIDwvcmFtOlNwZWNpZmllZFRyYWRlU2V0dGxlbWVudEhlYWRlck1vbmV0YXJ5U3VtbWF0aW9uPgogICAgICAgIDwvcmFtOkFwcGxpY2FibGVIZWFkZXJUcmFkZVNldHRsZW1lbnQ+CiAgICA8L3JzbTpTdXBwbHlDaGFpblRyYWRlVHJhbnNhY3Rpb24+CjwvcnNtOkNyb3NzSW5kdXN0cnlJbnZvaWNlPg=="
}'

Der name=factur-x.xml-Wert ist ein wichtiger Teil des attach-Parameters, da er den Dateinamen des Anhangs angibt, um dem Factur-X-Namensschema zu entsprechen, das der Standard vorschreibt. Darüber hinaus ist die Verwendung des .pdf/a-3b-Ausgabeformats notwendig, um ein PDF/A-3-konformes Dokument zu erstellen, das für E-Rechnungsstandards erforderlich ist, da es eingebettete Dateianhänge unterstützt und gleichzeitig langfristige Archivierungsfähigkeiten beibehält.

Schritt 5: Ergebnis Validieren

Nach der Generierung enthält die resultierende PDF eine professionelle Rechnung entsprechend Ihrer Vorlage sowie die eingebettete XML-Datei. Sie können den Anhang prüfen, indem Sie die PDF in einem Viewer öffnen, der Anhänge unterstützt, wie z. B. Adobe Acrobat Reader, wo die factur-x.xml-Datei im Attachments-Panel aufgelistet wird.

Generierte PDF mit sichtbarem XML-Anhang

Best Practices für die E-Rechnungsimplementierung

Datenkonsistenz

Die perfekte Synchronisation zwischen Ihrer PDF-Darstellung und den eingebetteten XML-Daten aufrechtzuerhalten ist einer der kritischsten Aspekte der E-Rechnungsimplementierung. Da Empfänger entweder das visuelle PDF oder das strukturierte XML zur Verarbeitung verwenden können, können Inkonsistenzen zu Zahlungsverzögerungen, Konformitätsproblemen oder der direkten Ablehnung durch automatisierte Systeme führen.

Stellen Sie sicher, dass alle Beträge, Daten und andere kritische Informationen zwischen der PDF-Darstellung und dem eingebetteten XML identisch sind. Schenken Sie Berechnungen, Steuerbeträgen und Summen besondere Aufmerksamkeit, da diese häufig die ersten Elemente sind, die von Empfängersystemen validiert werden. Jede Abweichung kann zu Validierungsfehlern oder Verarbeitungsproblemen führen.

Fehlerbehandlung

Eine robuste Fehlerbehandlung ist unerlässlich für die Aufrechterhaltung der Systemzuverlässigkeit und reibungslose Abläufe bei der Verarbeitung hoher Rechnungsvolumina. E-Rechnungssysteme stehen vor besonderen Herausforderungen, da sie mehrere Komponenten (XML-Generierung, PDF-Erstellung und Anhangsprozesse) koordinieren müssen und dabei strenge Konformitätsanforderungen einhalten müssen. Implementieren Sie eine umfassende Fehlerbehandlung für die XML-Generierung und PDF-Erstellung mit entsprechender Protokollierung und Wiederherstellungsmechanismen. Häufige Probleme sind:

  • Ungültige XML-Struktur oder fehlende Pflichtfelder
  • Berechnungsfehler zwischen PDF- und XML-Beträgen
  • Falsche Dateibenennung oder Anhangparameter
  • Fehler beim Rendern von Vorlagen

Tests und Validierung

Gründliches Testen ist für E-Rechnungssysteme entscheidend, da Konformitätsfehler zu rechtlichen Problemen, Zahlungsverzögerungen und geschädigten Geschäftsbeziehungen führen können. Im Gegensatz zur herkömmlichen Dokumentengenerierung müssen E-Rechnungen mehrere Validierungsebenen durchlaufen, darunter technische XML-Validierung, Geschäftsregelprüfung und Überprüfung der regulatorischen Konformität. Bevor Sie Ihr E-Rechnungssystem in Betrieb nehmen, etablieren Sie eine umfassende Teststrategie, die sowohl technische als auch geschäftliche Szenarien abdeckt:

  • XML-Dateien gegen offizielle XSD-Schemata und Schematron-Regeln validieren
  • Verschiedene Rechnungsszenarien testen (unterschiedliche Währungen, Steuersätze, Positionen)
  • PDF/A-3b-Konformität mit Validierungstools prüfen
  • Mit Empfängersystemen testen, um eine korrekte Verarbeitung sicherzustellen

Zukunftssicherheit Ihres E-Rechnungssystems

Standardentwicklung

E-Rechnungsstandards entwickeln sich rasch weiter, da Regierungen und internationale Organisationen ihre Anforderungen verfeinern. Regelmäßige Aktualisierungen von Codelisten und Validierungsregeln finden in vielen Ländern halbjährlich statt, während neue Profilanforderungen und optionale Funktionen eingeführt werden, um Branchenbedürfnisse und grenzüberschreitende Interoperabilität zu unterstützen. Digitale Signatur- und Sicherheitsverbesserungen werden ebenfalls entwickelt, um Cybersicherheitsbedrohungen zu begegnen und die Dokumentauthentizität zu gewährleisten.

Regulatorische Änderungen

Regierungen weltweit führen E-Rechnungsmandate mit unterschiedlichem Tempo ein: In Deutschland gilt die B2B-Anforderung ab 2025, Frankreich folgt 2026. Änderungen der Steuermeldeanforderungen begleiten diese Mandate häufig und erfordern die Echtzeit-Übermittlung von Rechnungsdaten an Steuerbehörden. Neue Konformitäts- und Archivierungspflichten werden eingeführt, während Maßnahmen zur Erleichterung des grenzüberschreitenden Handels erfordern, dass Systeme mehrere Standards gleichzeitig unterstützen.

Technologische Fortschritte

Neue Technologien gestalten die E-Rechnungslandschaft mit neuen Automatisierungs-, Sicherheits- und Effizienzchancen um. Blockchain-basierte Verifizierungssysteme bieten unveränderliche Prüfpfade, während KI-gestützte Datenextraktionswerkzeuge die Verarbeitungsgenauigkeit verbessern und manuelle Eingriffe reduzieren. Echtzeit-Steuerberechnungsfähigkeiten ermöglichen die automatische Konformität über mehrere Rechtsgebiete hinweg, und verbesserte mobile Lösungen bieten flexiblere Rechnungsstellungsoptionen. Ein erweiterungsorientiertes Systemdesign erleichtert die spätere Integration dieser Fortschritte, sobald sie ausgereift sind.

Fazit

Der Aufbau eines robusten E-Rechnungssystems mit DocuGenerate bietet einen praktischen Weg zur Einhaltung europäischer und globaler E-Rechnungsanforderungen. Durch die Trennung der XML-Erstellung von der PDF-Generierung können Sie sowohl technische Konformität als auch Darstellungsflexibilität gewährleisten. Dieser hybride Ansatz, der strukturierte XML-Daten mit professioneller PDF-Darstellung kombiniert, bietet die beste Benutzererfahrung und erfüllt gleichzeitig die regulatorischen Anforderungen.

Ob Sie E-Rechnungsstellung für ein kleines Unternehmen oder einen großen Konzern implementieren – die in diesem Leitfaden beschriebenen Prinzipien und Muster bieten eine solide Grundlage für den Erfolg. Da die E-Rechnungsstellung in immer mehr Märkten obligatorisch wird, verschafft ein skalierbares und konformes System erhebliche Wettbewerbsvorteile. Denken Sie daran, mit den sich entwickelnden Standards Schritt zu halten, Ihre Implementierungen gründlich zu validieren und von Anfang an auf Skalierbarkeit zu setzen.

Ressourcen

Diesen Beitrag teilen