5 Sep 2016

ZUGFeRD mit CONZEPT 16

Autor: Michael (vectorsoft)
Kategorien: Neu vorgestellt, Programmierung

Elektronische Rechnung

Das Forum elektronische Rechnung Deutschland (FeRD) hat es sich zur Aufgabe gemacht, elektronische Rechnungen unter technischen, wirtschaftlichen und rechtlichen Gesichtspunkten aufzubereiten und zu koordinieren. Unter dem Name ZUGFeRD wurde ein einheitliches Format für den elektronischen Rechnungsaustausch geschaffen.

Einleitung

ZUGFeRD steht für "Zentraler User Guide des Forum elektronische Rechnung Deutschland" und eignet sich laut FeRD für alle Wirtschaftsbereiche und die öffentliche Verwaltung. Das Format beruht auf globalen Standards und europäischen Empfehlungen und soll in Zukunft bundesweit die bestehenden EDI-Standards ergänzen und die Umstellung bisheriger papierbasierter Prozesse ermöglichen. Ein ehrgeiziges Ziel, denn noch immer werden in Europa rund 30 Millionen Rechnungen pro Jahr postalisch versandt.

Das Format aus technischer Sicht

Technisch betrachtet handelt es sich beim ZUGFeRD-Format um ein PDF/A3-konformes Dokument, dem als Anhang eine standardisierte Rechnung im XML-Format beigefügt ist. Dabei gilt die Regel ein PDF = eine Rechnung. Das PDF-Dokument präsentiert die visuelle Darstellung der Rechnung (wie die Papierform). Das XML-Dokument enthält die maschinenlesbare Darstellung der Rechnung. Zwar kann das PDF mehrere Anhangdateien besitzen, der Rechnungsanhang muss jedoch ZUGFeRD-invoice.xml lauten. Die Struktur der XML-Datei basiert auf den Regeln des von UN/CEFACT entwickelten Standards zur Cross Industry Invoice (CII).

Profile

Bei der Konzeption des Formats wurde berücksichtigt, dass es universell und für ein breites Spektrum verschiedener Unternehmensbereiche einsetzbar ist. Deshalb definiert das Format drei verschiedene Profile - die je nach Unternehmensart - den Umfang des XML-Dokumentes bestimmen:

  • BASIC

    Dieses Profil reduziert die Anforderungen an die Übermittlung
    strukturierter Daten, um vom Aufbau einfachste Rechnungen abbilden zu
    können. Es ist für die automatische elektronische Archivierung
    ausreichend, ebenso für die meisten Anwendungsfälle der automatisierten
    Belegverteilung (Workflow). Eine automatisierte Rechnungsprüfung ist
    nicht immer möglich, da je nach Geschäftsfall, nicht alle
    erforderlichen Informationen computerlesbar übermittelt werden.

  • COMFORT

    In diesem Profil ist die Übermittlung aller Daten in strukturierter
    Form möglich, die für eine überwiegende Zahl versendeter Rechnungen
    eine automatisierte, systemgestützte Rechnungsbearbeitung auf
    Empfängerseite ermöglichen.

  • EXTENDED

    In diesem Profil werden alle im ZUGFeRD-Datenmodell abgebildeten Daten
    in strukturierter Form bzw. als qualifiziertes Textfeld abgebildet. Die
    Auswahl der tatsächlich verwendeten Datenfelder hängt vom jeweiligen
    Geschäftsprozess ab. Damit deckt das Profil die brachenübergreifenden
    Anforderungen an den strukturierten Rechnungsdatenaustausch möglichst
    vollständig ab.
Weiterführende Informationen

Für alle, die sich mit dem ZUGFeRD-Format beschäftigen möchten, bietet das Onlineportal von FeRD ausführliche Informationen. Dort wird auch ein Infopaket zum Download bereitgestellt, welches Beispieldateien und eine sehr ausführliche Dokumentation enthält. Zum Validieren von ZUGFeRD-Dokumenten sei hier die Internetseite eInvoice Validation.Portal genannt. Nach einmaliger, kostenloser Registrierung können PDF-Dokumente hochgeladen und validiert werden.

Einsatz mit CONZEPT 16

Damit auch in CONZEPT 16 ZUGFeRD konforme PDF-Dokumente erstellt werden können, haben wir für das kommende CONZEPT 16 Release die PDF-API erweitert. Nachfolgende Funktion CreateZUGFeRDInvoicePDF wandelt ein bestehendes Dokument in ein ZUGFeRD-konformes PDF um.

sub CreateZUGFeRDInvoicePDF
(
  var aFileName    : alpha;  // Ausgangs-PDF.
  var aInvoiceXML  : alpha;  // XML-Datei ZUGFeRD-invoice.xml.
  var aOutFileName : alpha;  // Name für das ZUGFeRD-Dokument.
  aDescription     : alpha;  // Beschreibung zur angehängten Rechnung.
  aCompress        : logic;  // Anhang komprimieren j/n.
)
  : int;

  local
  {
    tPdf           : handle;
    tResult        : int;
  }

{
  tPdf # PdfOpen(aFileName,_PdfOpenDefault,'',_PdfImportAll);

  if (tPdf > 0)
  {
    tResult # tPdf->PdfAttachFile(aInvoiceXML,
                _PdfAttachAssociateZUGFeRD,aDescription,aCompress);

    if (tResult = _ErrOK)
      tResult # tPdf->PdfClose(aOutFileName,_PdfModePdfZUGFeRDBasic);
    else
      tPdf->PdfClose('',_PdfModeCancel);
  }
  else
    tResult # tPdf;

  return(tResult);
}

Die Funktion nimmt in den Argumenten aFileName und aInvoiceXML ein bereits existierendes PDF-Dokument sowie das XML-Dokument mit den Rechnungsdaten entgegen. Daraus erstellt sie das ZUGFeRD-PDF (aOutFileName).

Der Code öffnet das Quell-PDF mit der Funktion PdfOpen(). Anschließend wird mit dem neuen Befehl PdfAttachFile() das XML-Dokument in das PDF eingebettet. Wichtig ist hierbei die Angabe von _PdfAttachAssociateZUGFeRD. Jeder Anhang eines ZUGFeRD-PDF muss mit dieser Option eingefügt werden.

Dem Befehl kann eine optionale Beschreibung zum Anhang mitgegeben werden, und ob dieser komprimiert werden soll. Eine Komprimierung ist nicht immer zu empfehlen. Gut komprimieren lassen sich Text-Dokumente, wohingegen bereits komprimierte Dateien, wie zum Beispiel ZIPs beim Komprimieren eher größer werden.

Zum Schluss wird das ZUGFeRD-PDF mit PdfClose() generiert. Hierbei wird auch das zu generierende Rechnungs-Profil übergeben. Im vorliegenden Fall wird ein Basic-Profil generiert.

Verwandte Artikel:
Erstellen PDF/A-konformer Dokumente
PDF-Verarbeitung in CONZEPT 16

Gefällt mir!
Weitere Artikel

Kommentare

9 Kommentare zu “ZUGFeRD mit CONZEPT 16”

  1. Ab wann können wir damit rechnen das wir Rechnung von euch via ZugFerd einlesen können?

     

    R. Krichbaum

  2. Meinen Sie damit, wann es möglich sein wird, ZUGFeRD-Rechnungen über die PDF-API einzulesen?

     

    Michael (vectorsoft)

  3. Das mitliefern des XML-Dokuments incl. dem Dokument im PDF/A3 Format bei ihren Rechnungen aus der Buchhaltung. Wir bekommen ihre Rechnungen aktuell im PDF-Format, ohne weitere Anhänge. In diesem Zusammenhang könnten wir dies bei uns automatisieren;)

     

    R. Krichbaum

  4. Rechnungen als ZUGFeRD-PDF zu vesenden ist bei uns in Planung. Einen Termin können wir Ihnen aber noch nicht nennen.

     

    Michael (vectorsoft)

  5. wird es denn auch eine Möglichkeit geben, aus einer ZUGFeRD- Rechnung eines Vorlieferanten, die Daten auszulesen ?

     

    teichele

  6. In der kommenden Version nocht nicht. Dies ist aber geplant. Hierzu wird die Möglichkeit benötigt, PDF-Anhänge aus dem PDF zu extrahieren.

     

    Michael (vectorsoft)

  7. PDF-Anhänge zu extrahieren wäre für uns eine sehr nützliche und hilfreiche Funktion! Hoffendlich liegt die Planung hierzu nicht zu weit in der Zukunft!

     

    alco

  8. Wann ist mit der Umsetzung dieses Features zu rechnen? Kommt in 2016 noch ein Update? Ist ja schon länger her...

     

    wu1003

  9. @wu1003 Wir werden noch diesen Monat eine neue Version releasen.

     

    Andreas (vectorsoft)

Kommentar abgeben

Sie müssen angemeldet sein, um Kommentare abgeben zu können.

  • Navigation

    oder
  • Kategorien

  • Anmelden

    Registrieren

  • Links