ZUGFeRD in der Praxis Dr. Bernd Wild intarsys consulting GmbH 2015
Zentraler User Guide des Forums elektronische Rechnung Deutschland 2
Die PDF-Rechnung in Deutschland 2001 2010 07/2011 07/2012 heute EDI Papier PDF+QES PDF unsigniert andere Formate Übertragung von Nettodaten nur als Insel- Lösungen leichte Zunahme starke Zunahme Stagnation leichter Rückgang starker Rückgang 2001 Signaturgesetz 2010 EU MwStSysRL 2011 StVereinfG 2012 Verfahrensanweisung UStG 8 3
Die PDF-Rechnung in Deutschland Seit 2012 starke Zunahme von PDF-Rechnungen Wegfall der Signaturpflicht ( der dritte Weg ) löst nur Sender-Problem (Portokosten, Papier-Handling) Empfänger profitiert nur sehr eingeschränkt + elektronische Archivierungspflicht Motivation von FeRD war KMUs branchenneutral elektronische Rechnungen ermöglichen sanfter Übergang aus Papierwelt Empfängerproblem lösen Mehrwert für Empfänger schaffen Ergebnis ist Hybrid-Rechnung (PDF+XML), aufbauend auf offenen internationalen Standards Juni 2014: Veröffentlichung ZUGFeRD 1.0 4
2 Seiten einer Medaille Eine elektronische Rechnung soll sowohl visualisierbar als auch maschinenlesbar sein Nettodaten XML-Rechnungsdaten Visualisierung PDF/A-3 Datei
Stammbaum der Rechnungsdatenformate 6
UN/CEFACT: Intersectoral and International Approach In 2004 CEN initiated an European expert group for the development of an intersectoral solution for electronic invoices, the so-called Cross Industry Invoice (CII) 2008 release of version 2.0 Participants in the development: EUROFER, GS1, CIDX, EDIFICE, AIAG/ODETTE/JAME, GHX, UK e- Government, UK HM Customs & Excise, UBL, US Department of Defense, EDS and others Definition of consistent invoicing processes for global supply chains 8 7
UNECE Standards Process for Invoices Design rules UN/CEFACT Modeling Methodology (UMM) Requirements Core Component Technical Specification (CCTS) Core Component Data Type Catalogue (CCDTC) V 2.01 Semantics Core Component Library (CCL) UN/EDIFACT Codelists (CL) V 12A Syntax rules XML Naming and Design Rules (NDR) V 2.0 Syntax XML Schemata V 5.0 7 8
ZUGFeRD XML MUG (subset) Core Component Library (CCL) Semantics ZUGFeRD (subset) ZUGFeRD Code lists (CL, subset) UN/EDIFACT Code lists (CL) Transformation to explicite data types V 0.11 Syntax rules XML Naming and Design Rules (NDR) V 2.0 Syntax XML Schema ZUGFeRD 1.0 9
Das ZUGFeRD Rechnungsschema 17 10
Das ZUGFeRD Rechnungsschema (2) 19 11
Semantische Profile EXTENDED Möglichst vollständige Abdeckung branchenübergreifender Prozesse Core Component Library (CII Profil) Branche ZUGFeRD Extended ~ MUG ZUGFeRD Comfort ZUGFeRD Basic COMFORT Vollautomatisierte Buchung, Rechnungsprüfung und Abwicklung des Zahlungs-verkehrs der meisten Rechnungen Branchen- Erweiterung Abdeckung branchenspezifischer Prozesse außerhalb von ZUGFeRD BASIC Buchung und Zahlungsverkehr einfacher Rechnungen Grafikquelle: AWV e.v. 2013
Semantische Profile BASIC COMFORT EXTENDED 13
Grundlagen für Implementierung Spezifikation Das ZUGFeRD-Format_1p0_c1p0_Codelisten.pdf Das ZUGFeRD-Format_1p0_technische_Dokumentation.pdf Das ZUGFeRD-Format_1p0.pdf Das_ZUGFeRD-Format_1p0_Corrigendum_1_0_vom_29.09.2014.pdf auf www.ferd-net.de als Infopaket 1.0 frei verfügbar XML-Schemadateien ZUGFeRD1p0_urn_un_unece_uncefact_data_standard_QualifiedDataType_12.xsd ZUGFeRD1p0_urn_un_unece_uncefact_data_standard_ReusableAggregateBusinessInformationEntity_12.xsd ZUGFeRD1p0_urn_un_unece_uncefact_data_standard_UnqualifiedDataType_15.xsd ZUGFeRD1p0.xsd 12 Beispieldateien (PDF) Stylesheet ZUGFeRD_1p0_c1p0_s1p0.xslt Schematron-Datei ZUGFeRD_1p0.scmt 14
PDF und die Standards PDF/A-1 ISO 19005-1 PDF/A-2 ISO 19005-2 PDF/E-1 ISO 24517 PDF/A-3 ISO 19005-3 PDF/X-5 ISO 15930 PDF/VT-1/2 ISO 16612-1/2 PDF ISO 32000-1 (ISO 32000-2) PDF/H Gesundheitswesen KEIN ISO-Standard!!!! PDF/UA (ISO 14289-1)
PDF/A - das bessere und archivierbare PDF Probleme bei freiem PDF externe Referenzen (Fonts, Bilder, Farben, etc...) Schutzmechanismen (Kopier/Druck/Speicher-Schutz) behindern die Verwendung stillschweigend tolerierte Fehler durch Viewer zusätzlicher Interpreter für eingelagerte Objekte dynamische Inhalte (Felder, 3D, JavaScript) Spezifikationen bietet Interpretationsspielraum unterschiedliche Darstellung in Viewern offen aber unter der Kontrolle von Adobe keine uneingeschränkte, unveränderte Verfügbarkeit keine Validierung auf korrektes PDF nach ISO32000-1 Deshalb 2005: PDF/A-1 ISO 19005-1 2010: PDF/A-2 ISO 19005-2 2012: PDF/A-3 ISO 19005-3 PDF/A ist Elektronisches Papier 16
Von PDF zu PDF/A-3 PDF/A-1 = PDF Aktive_Inhalte XFA Dateianhänge JPEG2000 Transparenzen Ebenen + Fonts + Farbraumdefinitionen PDF/A-2 = PDF/A-1 + PDF/A-Dateianhänge + JPEG2000 + Transparenzen + Ebenen + OpenType-Fonts PDF/A-3 = PDF/A-2 + Dateianhänge 17
Das kann ein PDF-Dokument ab PDF 1.4 Verschlüsselung Benutzerrechte DRM Ebenen (optional content) 3D JPEG2000 DocInfo Metadaten Kompression referenzierter Farbraum HP ColorLaserJet Filme/Animationen Tonaufzeichnungen Dateianhänge referenzierte Fonts Digitale Signatur Formularfelder JavaScripts OK Transparenz
... und das nun ein PDF/A-3-Dokument! Verschlüsselung Benutzerrechte DRM Ebenen (optional content) 3D JPEG2000 eingebettete referenzierte Fonts DocInfo Metadaten XMP Metadaten Kompression eingebetteter referenzierter Farbraum HP ColorLaserJet geräteunabhängig Filme/Animationen Tonaufzeichnungen Dateianhänge (beliebig, gültiger MIME-Type) Digitale Signatur Formularfelder JavaScripts OK Transparenz
Wozu setzt man PDF/A ein? Scan2PDFA opt. mit OCR Kompressionsverfahren JPEG + JBIG/FaxG4 opt. mit OCR /3 Kompressionsverfahren JPEG2000 + JBIG2
Wozu setzt man PDF/A ein? Scan2PDFA-Folder /3 opt. mit OCR Mappenbildung opt. mit seitenbasierter Signatur
Wozu setzt man PDF/A ein? DigitalBorn Documents via Export, Konverter, Druckertreiber /2/3 opt. mit Tagging- Struktur (a-level) via Konverter /3 Attachment kann auch PDF/A-2 sein
Wozu setzt man PDF/A ein? Hybrid Documents via Konverter, Druckertreiber Attachment kann beliebig sein
PDF/A-3 mehr als Verpackung Hybrid Documents via Konverter, Druckertreiber Attachment kann beliebig sein Druckbild ( elektronisches Papier ) + Dokumenten-Container ( ZIP-Archiv )
Übersicht ZUGFeRD Tools Stationen einer ZUGFeRD Rechnung Quellsystem ZUGFeRD XML erstellen Transport ZUGFeRD PDF/A erstellen optional: ZUGFeRD prüfen optional: ZUGFeRD prüfen Zielsystem ZUGFeRD XML extrahieren ZUGFeRD XML konvertieren 25
Übersicht ZUGFeRD Tools Daten-Konverter Format-Konverter Validator Validator Extraktor Daten-Konverter 26
Übersicht ZUGFeRD Tools 27
Beispiel ZUGFeRD-Erstellung CRM/ERP SQL Extraktion Aufbereitung XML-Erzeugung XML-Rendering XHTML2PDFA Einbettung + Metadaten XSL-Skript 28
Empfang von ZUGFeRD PDF/A-3 Rechnungen Extraktion + Visualisierung Wird von PDF/A Live! unterstützt! Original (PDF/A-3) Visualisierung XML (PDF/A-1) ZUGFeRD XML (XML)
intarsys ZUGFeRD intarsys ZUGFeRD Toolkit Command Line Stand-Alone Programe Einbetten, Extrahieren, Information Konvertierung von PDF/A-1 nach PDF/A-3 Freeware (bis 100 Rechnungen pro Tag) mit Wasserzeichen Windows, Linux, Mac OS X OEM Lizenz für Produkthäuser verfügbar (ohne WZ) Unlimited Lizenz für Endkunden verfügbar (ohne WZ) intarsys ZUGFeRD Toolkit Produktbestandteil von PDF/A Live! Konvertierung, Einbetten, Extrahieren, Information Konvertierung verschiedener Dokumenttypen nach PDF/A-3 Server-APIs (Webservices, HTTP, MQ, Netprinter, ) Erweiterbar um ZUGFeRD-Validierung 30
intarsys ZUGFeRD Toolkit intarsys ZUGFeRD Validator Zusatzoption für PDF/A Live! Syntaktische, fachliche und steuerrechtliche Validierung von ZUGFeRD-Dateien Basiert auf dem ZUGFeRD Validator von ferdmc Vollständige Validierung (PDF/A-3 und ZUGFeRD-XML) 31
intarsys ZUGFeRD Toolkit Command Line Kommando Beschreibung cli_zugferd -command embed Einbettung einer XML-Rechnungsdatei in ein PDF/A- Dokument und Konvertierung in eine ZUGFeRD PDF/A-3 Rechnung cli_zugferd -command extract cli_zugferd -command info Extraktion der XML-Rechnungsdatei aus einer ZUGFeRD PDF/A-3 Rechnung Ermittlung von Metadaten aus einer ZUGFeRD PDF/A-3 Rechnung # info java -jar lib/cli_zugferd.jar -command info -inpdf examples/invoice_valid_zugferd.pdf java -jar lib/cli_zugferd.jar -command info -inpdf examples/invoice_pdfa.pdf # extraction java -jar lib/cli_zugferd.jar -command extract -inpdf examples/invoice_valid_zugferd.pdf -outxml i.xml # embedding java -jar lib/cli_zugferd.jar -command embed -inpdf examples/invoice_pdfa.pdf -inxml examples/zugferd-invoice.xml -outpdf zf.pdf 32