eInvoice Viewer for FatturaPA – Handbuch
1 · Überblick
Der eInvoice Viewer for FatturaPA zeigt italienische E-Rechnungen im Format FatturaPA lesbar an. FatturaPA ist das Rechnungsformat des italienischen Sistema di Interscambio (SdI). Eine solche Rechnung kommt als XML-Datei oder als signierte Datei mit der Endung .p7m an; wer sie im Editor öffnet, sieht italienische Elementnamen und Codes. Der Viewer liest die Datei im Browser und zeigt sie in ihrer eigenen Gliederung, mit deutschen oder englischen Feldnamen und mit Klartext zu den Codes. Er rechnet sie nicht in die europäische Norm EN 16931 um.
Es gibt ihn in zwei Formen, die ein Produkt sind: als WordPress-Plugin, das den Viewer auf einer Seite Ihrer Website zeigt, und als App, also als Ordner mit einer HTML-Datei, der ohne Server im Browser läuft. Beide zeigen eine Rechnung mit demselben Element auf dieselbe Weise und tragen dieselbe Fassungsnummer. Die Kapitel 1 bis 11 beschreiben beide gemeinsam; wo Plugin und App sich unterscheiden, verweist ein Satz auf Kapitel 12 „Als App“ oder Kapitel 13 „Als WordPress-Plugin“.
Der Viewer ist eigenständig und braucht kein anderes Paket der eInvoice-Familie, auch nicht den eInvoice Viewer for PEPPOL & EN16931. Er richtet sich an alle, die FatturaPA-Rechnungen erhalten oder prüfen und sie ohne italienische Fachsoftware lesen wollen: Buchhaltungen mit italienischen Lieferanten, Steuerberatungen, Integratoren und Softwarehäuser.
Was der Viewer kann
- Er liest FatturaPA-Rechnungen der Formatversion 1.2, sowohl an öffentliche Verwaltungen (FPA12) als auch an Private (FPR12).
- Er liest signierte Dateien mit der Endung
.p7m, auch Base64-kodiert, packt sie im Browser aus und zeigt sie wie eine XML-Datei. - Er trägt an jedem Feld eine deutsche oder englische Bezeichnung und, wo es hilft, eine kurze Erklärung. Codes wie Belegart, Steuerregelung, Grund ohne Steuer oder Zahlungsart stehen als Klartext da.
- Er zeigt den Kopf mit Belegart, Nummer, Datum, Währung und, wenn die Rechnung ihn angibt, Gesamtbetrag; Verkäufer, Käufer und, wo vorhanden, Steuervertreter und Dritte; die Positionen, die Steuerzusammenfassung und die Zahlungsangaben als Tabellen.
- Er zeigt jede Rechnung einer Datei. Eine FatturaPA-Datei kann mehrere Rechnungen desselben Verkäufers an denselben Käufer tragen; jede bekommt einen eigenen Abschnitt.
- Er listet eingebettete Anhänge mit ihrer Größe und bietet einen Knopf zum Speichern.
- Er zeigt jeden Wert der Datei. Ein Wert, den der Feldkatalog nicht kennt, steht mit seinem Pfad unter „Nicht im Katalog“.
- Ein Schalter blendet je Feld die italienische Originalbezeichnung und den Pfad ein.
- Die Oberfläche gibt es auf Deutsch, Englisch und Französisch, die Feldnamen auf Deutsch und Englisch.
Was der Viewer nicht kann
- Er prüft die Rechnung nicht gegen die Regeln des SdI. Er sagt nicht, ob eine Rechnung angenommen wird.
- Er prüft keine Signaturen. Bei einer
.p7m-Datei sagt er, dass die Datei signiert war und die Signatur nicht geprüft wurde. - Er erzeugt keine Rechnungen, schickt nichts an das SdI und speichert nichts.
- Er liest keine ZUGFeRD-, XRechnung- oder Peppol-Rechnungen. Diese folgen der EN 16931 und sind Sache des eInvoice Viewers for PEPPOL & EN16931.
- Er liest nicht die vereinfachte Rechnung (FatturaPA semplificata). Sie hat ein eigenes Schema; der Viewer meldet eine solche Datei als nicht unterstützt.
- Er liefert die italienischen Codetexte des Schemas nicht mit. Die deutschen und englischen Bezeichnungen und Klartexte sind eigene Übersetzungen.
In welcher Form er kommt
| Form | Bezug | Voraussetzung | So wird er benutzt |
|---|---|---|---|
| WordPress-Plugin | Kaufprodukt, ZIP-Datei aus dem Shop auf einvoicetools.de | WordPress 6.5 oder neuer (getestet bis 7.1), PHP 8.2 oder neuer | den Kurzbefehl [spfp_fatturapa_viewer] auf eine Seite setzen |
| App | Kaufprodukt, ZIP-Datei aus dem Shop auf einvoicetools.de | ein aktueller Browser mit eingeschaltetem JavaScript | den Ordner ablegen und einvoice-viewer-for-fatturapa.html öffnen |
screenshots/fp-ansicht.de.pngEine geladene FatturaPA-Rechnung: oben die Ablagefläche mit den beiden Schaltern und dem Knopf „Zurücksetzen“, darunter der Kopf mit Belegart, Nummer, Datum und Währung und die ersten Gruppen des italienischen Schemas2 · Installieren
Als WordPress-Plugin
Statt des Hochladens können Sie den entpackten Ordner einvoice-viewer-for-fatturapa auch nach wp-content/plugins/ legen und das Plugin danach unter Plugins aktivieren. Das Plugin hat keine eigene Einstellungsseite. Aktualisieren und Entfernen beschreibt Kapitel 13.
Als App
Die App wird nicht installiert, sondern nur abgelegt. Sie braucht keinen Server und kein PHP und lädt in der Voreinstellung nichts aus dem Internet. Den Inhalt des Ordners, die Einstellungen und das Aktualisieren beschreibt Kapitel 12.
3 · Erste Schritte
screenshots/fp-auswahlflaeche.de.pngDie leere Ablagefläche des Viewers mit dem Text „E-Rechnung hierher ziehen oder klicken, um eine Datei zu wählen“ und darunter dem Hinweis auf FatturaPA 1.2, XML oder .p7m4 · Arbeiten mit dem FatturaPA-Viewer
Eine Rechnung öffnen
Sie ziehen die Datei auf die Ablagefläche, klicken auf die Fläche und wählen die Datei, oder Sie springen mit der Tabulatortaste auf die Fläche und drücken die Eingabetaste oder die Leertaste. Ziehen Sie mehrere Dateien auf einmal hinein, liest der Viewer nur die erste. Er prüft zuerst, ob es eine FatturaPA-Rechnung der Fassung 1.2 ist, als XML oder als signierte .p7m-Datei. Jede andere Datei wird mit dem Satz „Nicht unterstützte Datei. Bitte laden Sie eine italienische FatturaPA-Rechnung der Fassung 1.2 hoch, als XML oder als signierte .p7m-Datei.“ abgewiesen. Die Datei verlässt den Browser dabei nicht.
Der Kopf der Rechnung
Oben steht der Kopf mit der Belegart im Klartext, der Rechnungsnummer, dem Rechnungsdatum und der Währung. Den Rechnungsbetrag zeigt er nur, wenn die Rechnung ihn angibt; das Schema stellt diese Angabe frei, und viele Rechnungen lassen sie weg. Enthält die Datei mehrere Rechnungen, nennt der Kopf die Zahl unter „Rechnungen in dieser Datei“ und sagt dazu, dass er die erste zeigt.
screenshots/fp-kopf.de.pngDer Kopf einer Datei mit mehreren Rechnungen: Belegart, Nummer, Datum, Währung und Betrag der ersten Rechnung und die Zeile „Rechnungen in dieser Datei“ mit der ZahlDie Rechnung in ihrer Gliederung
Unter dem Kopf folgen die Gruppen des italienischen Schemas als Abschnitte mit Überschrift, etwa Übertragungsdaten, Verkäufer, Käufer, Belegdaten, Positionen, Steuerzusammenfassung und Zahlungsangaben. Jedes Feld steht mit Bezeichnung und Wert; ein leeres Feld zeigt einen Strich. Trägt ein Feld eine Erklärung, steht hinter der Bezeichnung ein kleines „i“; mit der Maus darauf oder per Tabulatortaste erscheint sie als Tooltip. Codes werden aufgelöst: Statt TD01 lesen Sie die Bedeutung, und der Code steht in Klammern dahinter. Länder- und Währungsnamen nennt der Browser selbst. Beträge, Mengen, Prozentsätze und Daten erscheinen in der Schreibweise der eingestellten Sprache.
screenshots/fpa-tooltip.de.pngEin Feld mit aufgelöstem Code, Code in Klammern und geöffnetem Tooltip mit der ErklärungMehrere Rechnungen in einer Datei
Eine FatturaPA-Datei kann mehrere Rechnungen desselben Verkäufers an denselben Käufer tragen. Der Viewer zeigt jede Rechnung unter einer eigenen Überschrift („Rechnung 1“, „Rechnung 2“ und so weiter), jede mit ihren eigenen Belegdaten, Positionen, ihrer Steuerzusammenfassung und ihren Zahlungsangaben. Die Angaben zu Verkäufer und Käufer, die für alle Rechnungen der Datei gelten, stehen einmal.
Verkäufer, Käufer, Steuervertreter und Dritte
Die Beteiligten der Rechnung stehen in eigenen Gruppen: der Verkäufer (Cedente/Prestatore), der Käufer (Cessionario/Committente) und, wo die Datei sie enthält, der Steuervertreter und Dritte wie der Übermittler. Jede Gruppe zeigt ihre Felder mit deutscher oder englischer Bezeichnung, etwa Steuernummer, Umsatzsteuer-Identifikation, Anschrift und die Steuerregelung des Verkäufers als Klartext.
screenshots/fp-parteien.de.pngDie Gruppen Übertragung, Verkäufer und Käufer mit Namen, Anschrift, Steuerkennungen und der Steuerregelung des Verkäufers als KlartextPositionen, Steuerzusammenfassung und Zahlungsangaben
Die Positionen der Rechnung, die Zusammenfassung je Steuersatz und die Zahlungsangaben stehen als Tabellen, Beträge und Mengen rechtsbündig. In der Steuerzusammenfassung steht ein Grund ohne Steuer (Natura) als Klartext, in den Zahlungsangaben die Zahlungsart und die Zahlungsbedingung ebenso. Trägt eine Zeile mehr Angaben, als die Tabelle an Spalten hat, finden Sie sie unter dem Aufklapper Weitere Angaben in derselben Zeile.
screenshots/fp-tabellen.de.pngDie Tabellen der Positionen, der Steuerzusammenfassung und der Zahlungsangaben einer RechnungWichtig für diese Rechnungsart
Bei einer Gutschrift (Belegart TD04) trägt die Gruppe der verbundenen Rechnungen die Markierung „Wichtig für diese Rechnungsart“ und eine farbige Kante, denn dort steht, auf welche Rechnung sich die Gutschrift bezieht. Andere Belegarten heben keine Gruppe hervor. Kennzeichen, wie sie der KSeF-Viewer oben auf der Rechnung zeigt, gibt es bei FatturaPA nicht.
Nur gefüllte Felder
Der Schalter Nur gefüllte Felder in der Werkzeugleiste blendet leere Felder und leere Gruppen aus, sodass nur steht, was die Datei tatsächlich enthält. Ausgeschaltet sehen Sie alle Felder des Katalogs, die leeren mit einem Strich; so erkennen Sie, welche Angaben die Rechnung nicht macht.
Originalbezeichnung und Pfad
Der Schalter Originalbezeichnung und Pfad blendet unter jeder Bezeichnung den italienischen Originalnamen des Feldes aus dem Schema und den Pfad des Werts in der XML-Datei ein. Das hilft, wenn Sie mit einem italienischen Geschäftspartner oder mit dem Schema arbeiten und das Feld in der Datei wiederfinden wollen.
screenshots/fp-originalname.de.pngEine Feldgruppe mit eingeschaltetem Schalter „Originalbezeichnung und Pfad“: unter jeder deutschen Bezeichnung die italienische Originalbezeichnung und der PfadAnhänge
In die Rechnung eingebettete Anhänge (Allegati), etwa ein PDF, stehen in einer eigenen Gruppe mit Namen, Größe und dem Knopf Speichern. Ein Klick übergibt die Datei Ihrem Browser zum Herunterladen, Byte für Byte mit ihrem Namen aus der Rechnung. Der Viewer öffnet Anhänge nicht in der Seite. Lässt sich ein Anhang nicht entschlüsseln, steht an seiner Stelle „Der Anhang konnte nicht entschlüsselt werden.“
screenshots/fp-anhaenge.de.pngDie Gruppe der Anhänge mit Dateiname, Größe und dem Knopf „Speichern“Signierte Dateien
Eine signierte Rechnung mit der Endung .p7m packt der Viewer im Browser aus und zeigt sie genauso wie eine XML-Datei. In der Zeile über der Rechnung steht „signiert; Signatur nicht geprüft“. Enthält die signierte Datei keine lesbare Rechnung, meldet der Viewer „Die signierte Datei enthält keine lesbare Rechnung.“ Trägt die XML-Datei selbst eine eingebettete Signatur, zeigt der Viewer sie als vorhanden mit der Zahl ihrer Werte und dem Zusatz „nicht geprüft“.
Achtung: Der Viewer prüft keine Signatur. Ob die Signatur gültig ist, wer signiert hat und ob die Datei seither verändert wurde, sagt er nicht. Dafür bräuchte es die Zertifikatskette und Sperrlisten, die eine Seite ohne Netzverbindung nach außen nicht hat.
screenshots/fp-signiert.de.pngEine aus einer .p7m-Datei ausgepackte Rechnung mit der Zeile „signiert; Signatur nicht geprüft“Nicht im Katalog
Jeder Wert der Datei erscheint auf der Seite. Ein Wert, den der Feldkatalog nicht kennt, steht mit seinem Pfad unter „Nicht im Katalog“, mit dem Hinweis: „Diese Werte stehen in der Datei, aber nicht im Feldkatalog dieses Formats. Sie werden mit ihrem Pfad gezeigt, damit nichts verloren geht.“ Bei Rechnungen nach dem Schema 1.2 sollte dieser Abschnitt leer bleiben; der Katalog deckt alle 297 Pfade des Schemas ab.
screenshots/fp-nicht-im-katalog.de.pngDer Abschnitt „Nicht im Katalog“ mit einem Wert und seinem PfadDie Sprache
Die Bedienelemente und Meldungen gibt es auf Deutsch, Englisch und Französisch, die Feldnamen und Klartexte auf Deutsch und Englisch. Bei französischer Oberfläche stehen die Feldnamen deshalb auf Englisch, und der Viewer sagt dazu: „Die Feldnamen dieses Formats gibt es in dieser Sprache nicht. Sie stehen deshalb auf Englisch da.“ Im Plugin folgt die Sprache der Seite, und einen Sprachschalter gibt es nicht. Die App hat oben rechts eine Sprachwahl mit DE, EN und FR; ein Wechsel stellt Seitentexte, Werkzeugleiste und die geöffnete Rechnung um (Kapitel 12).
Zurücksetzen
Der Knopf Zurücksetzen leert die Anzeige, blendet Werkzeugleiste und Dateizeile aus und löscht die Dateiauswahl. Die Rechnung ist danach nirgends mehr vorhanden, weil der Viewer sie nicht speichert.
5 · Einstellungen
Der Viewer hat in der Ansicht selbst nur die beiden Schalter aus Kapitel 4. Im Übrigen unterscheiden sich die beiden Formen:
- In der App stehen die Einstellungen in der Datei
config.jsim Ordner der App. Sie legen dort die Startsprache fest und ob die Schriften aus dem Ordner oder von Google Fonts kommen (Kapitel 12). - Im Plugin gibt es keine eigene Einstellungsseite und keine eigenen Einstellungen. Der Kurzbefehl hat keine Attribute. Die Gestaltung folgt dem Design-Kit, das für alle eInvoice-Werkzeuge der Website gemeinsam gewählt wird (Kapitel 13).
6 · Besondere Fälle
Sie erhalten von einem italienischen Lieferanten eine Datei mit der Endung .p7m. Ziehen Sie sie unverändert auf die Ablagefläche. Der Viewer packt sie aus und zeigt die Rechnung. Beachten Sie die Zeile „signiert; Signatur nicht geprüft“: Die Gültigkeit der Signatur müssen Sie auf anderem Weg feststellen.
Sie müssen einem Lieferanten sagen, welches Feld Sie meinen. Schalten Sie Originalbezeichnung und Pfad ein. Unter jeder Bezeichnung stehen dann der italienische Elementname und der Pfad, also genau die Worte, die der Lieferant in seiner Software wiederfindet.
Eine Datei enthält mehrere Rechnungen. Der Kopf nennt die Zahl unter „Rechnungen in dieser Datei“ und zeigt die erste. Darunter steht jede Rechnung unter ihrer eigenen Überschrift. Scrollen Sie zur gesuchten Rechnung; die Angaben zu Verkäufer und Käufer stehen einmal für alle.
Sie wollen den Anhang einer Rechnung, etwa eine PDF-Datei, auf Ihrem Rechner haben. Klicken Sie beim gewünschten Anhang auf Speichern. Die Datei wird unverändert mit ihrem Namen gespeichert.
Sie wollen Besuchern Ihrer Website eine Anzeige für italienische Rechnungen anbieten. Setzen Sie im Plugin [spfp_fatturapa_viewer] auf eine öffentliche Seite. Besucher brauchen keine Anmeldung, und ihre Rechnungen kommen nie auf Ihren Server, weil der Browser sie liest.
Sie wollen jeden Abruf nach außen ausschließen. Nehmen Sie die App mit ihrer Voreinstellung; sie löst dann keinen einzigen Abruf aus (Kapitel 12). Das Plugin lädt ohnehin nur Dateien von Ihrer eigenen Website (Kapitel 9).
Sie wollen das Werkzeug weitergeben. Geben Sie den ganzen Ordner der App weiter, etwa als ZIP. Der Empfänger entpackt ihn und öffnet die Startdatei; er braucht nichts zu installieren.
7 · Zusammenspiel mit anderen Paketen
Der Viewer arbeitet allein und braucht kein anderes Paket. Zusätze zum eInvoice Viewer for PEPPOL & EN16931 wie „Extended Profiles“ wirken nicht auf diesen Viewer.
| Paket | Was im Zusammenspiel dazukommt |
|---|---|
| eInvoice Viewer for PEPPOL & EN16931 | Nichts im Viewer selbst. Beide können auf derselben Website laufen; dieser Viewer zeigt FatturaPA, jener die Formate der EN 16931. Ist das Plugin des EN-16931-Viewers aktiv, steht auf seiner Einstellungsseite die Auswahl des Design-Kits, der auch das FatturaPA-Plugin folgt. |
| eInvoice Viewer for KSeF | Das Gegenstück für polnische KSeF-Rechnungen, nach demselben Muster gebaut. |
| Andere eInvoice-Werkzeuge mit eigener Einstellungsseite (Plugin) | Die dort gewählte gemeinsame Einstellung „Design-Kit“ gilt auch für das FatturaPA-Plugin. |
8 · Wenn etwas nicht geht
Meldungen, die nur in einer der beiden Formen vorkommen, sind mit „(Plugin)“ oder „(App)“ gekennzeichnet.
| Anzeichen | Ursache | Abhilfe |
|---|---|---|
| „Nicht unterstützte Datei. Bitte laden Sie eine italienische FatturaPA-Rechnung der Fassung 1.2 hoch, als XML oder als signierte .p7m-Datei.“ | Die Datei ist keine FatturaPA-Rechnung der Fassung 1.2, zum Beispiel eine ZUGFeRD-, XRechnung-, Peppol- oder KSeF-Rechnung, eine FatturaPA semplificata, eine ältere Formatversion oder gar kein XML. | Prüfen Sie Format und Fassung der Datei. Rechnungen nach EN 16931 zeigt der eInvoice Viewer for PEPPOL & EN16931. |
| „Die signierte Datei enthält keine lesbare Rechnung.“ | Die .p7m-Datei ließ sich auspacken, aber darin steckt keine FatturaPA-Rechnung, oder der Inhalt ist beschädigt. | Fordern Sie die Datei beim Absender neu an oder fragen Sie nach der unsignierten XML-Datei. |
| „Die Datei konnte nicht gelesen werden.“ | Der Browser konnte die Datei nicht lesen, etwa weil sie beschädigt ist oder der Zugriff verweigert wurde. | Versuchen Sie es mit einer frischen Kopie der Datei. |
| „Die Datei ist zu groß.“ (Plugin) | Die Datei überschreitet die Größe, die der Viewer im Plugin annimmt. Die App hat keine solche Grenze. | Prüfen Sie, ob es die richtige Datei ist; FatturaPA-Rechnungen sind in der Regel klein. |
| „Der Feldkatalog für … konnte nicht geladen werden.“ | Die Kataloge fehlen: im Plugin unter assets/data/fatturapa/, in der App im Ordner data/. Im Plugin kann auch ein Sicherheits-Plugin den Abruf aus dem Plugin-Ordner sperren. | Installieren Sie das Plugin vollständig neu, oder stellen Sie den Ordner der App vollständig aus dem ZIP wieder her. |
| „Der Anhang konnte nicht entschlüsselt werden.“ | Der eingebettete Anhang ist nicht als gültiges Base64 abgelegt. | Der Anhang ist in der Datei selbst beschädigt; die übrige Rechnung wird trotzdem gezeigt. Bitten Sie den Aussteller um den Anhang als Datei. |
| Feldnamen erscheinen englisch, obwohl die Oberfläche französisch ist. | Französische Feldnamen gibt es in dieser Fassung nicht. | Keine; der Viewer weist darauf hin. |
| Ein Code der Quellensteuer (Zahlungsgrund A bis ZO) hat keinen Klartext. | Das Schema nennt zu diesen Codes keinen Text; ihre Bedeutung steht in der Anleitung zum Modello 770. | Der Viewer zeigt den Code und verweist auf diese Anleitung. |
Die Seite zeigt den Kurzbefehl [spfp_fatturapa_viewer] als Text. (Plugin) | Das Plugin ist nicht aktiv. | Aktivieren Sie es unter Plugins. |
| Die Ablagefläche erscheint nicht, obwohl das Plugin aktiv ist. (Plugin) | Der Kurzbefehl steht an einer Stelle, die nicht zum Inhalt der Seite gehört, etwa in einem Widget oder einer Vorlage, und die Skriptdateien wurden nicht geladen. | Setzen Sie den Kurzbefehl in den Inhalt der Seite, oder lassen Sie die Dateien mit dem Filter spfp_force_enqueue laden (Kapitel 10). |
| Bedienelemente erscheinen englisch, obwohl die Seite deutsch ist. (Plugin) | Die Sprachtabelle i18n/de.json.js fehlt im Plugin-Ordner. | Installieren Sie das Plugin neu. |
| Die Seite steht in einer anderen Schrift als erwartet. (App) | assets/fonts/ fehlt, oder fontsLocal steht auf false und Google Fonts ist nicht erreichbar. | Stellen Sie den Ordner wieder her oder setzen Sie fontsLocal auf true. Die Funktion ist nicht berührt. |
| Nach dem Aktualisieren sind Einstellungen oder das Druck-Stylesheet weg. (App) | config.js und die Startseite wurden durch die frische Fassung ersetzt. | Tragen Sie Ihre Werte und die Zeile für das Druck-Stylesheet erneut ein. |
9 · Datenschutz und Sicherheit
Eine Rechnung enthält Namen, Anschriften, Steuernummern, Bankverbindungen und Beträge.
- Die Rechnung bleibt in beiden Formen im Browser. Die Datei wird vollständig im Browser gelesen, auch das Auspacken einer
.p7m-Datei und das Dekodieren eines Anhangs. Sie wird nicht auf Ihre Website hochgeladen und nirgendwohin geschickt. - Im Plugin kommen nur die Dateien des Plugins von Ihrer Website. Schriften, Stildateien und die Feldkataloge gehören zum Plugin. Es lädt nichts von anderen Servern.
- In der App geht in der Voreinstellung nichts nach außen. Schriften, Kataloge, Sprachtabellen und Stylesheets werden aus dem Ordner geladen. Nur wenn Sie in
config.jsden SchlüsselfontsLocalauffalsestellen, holt die Seite Schriften von Google Fonts (fonts.googleapis.com); die Rechnung wird auch dann nicht gesendet. Kataloge werden in dieser Fassung nie online geholt. - Gespeichert wird keine Rechnung. Das Plugin legt keine Einstellung und keine Rechnungsdaten in der Datenbank ab; es liest nur die gemeinsame Einstellung „Design-Kit“. Die App merkt sich im Browser nur die zuletzt per Klick gewählte Sprache unter dem Schlüssel
einvoice-viewer-lang. Ein gespeicherter Anhang landet dort, wo Ihr Browser Downloads ablegt. - Anhänge bleiben Dateien. Ein Anhang wird nur auf Wunsch gespeichert und nie in der Seite ausgeführt oder angezeigt.
- Signaturen werden nicht geprüft. Dass eine Rechnung signiert ankam, heißt deshalb nicht, dass sie unverändert oder vom genannten Aussteller ist.
Tipp: Öffnen Sie die Netzwerkanzeige Ihres Browsers (Taste F12) und laden Sie eine Rechnung. Im Plugin sehen Sie nur Abrufe von Ihrer eigenen Website, in der App mit der Voreinstellung gar keine, und keinen Abruf, der die Rechnung überträgt.
10 · Für Entwickler
Das Werkzeug ist in beiden Formen dasselbe HTML-Element <einvoice-group-viewer> mit abgeschirmter Gestaltung (Shadow DOM). Das FatturaPA-Format meldet sich beim Laden selbst an.
Gemeinsam
| Stelle | Art | Bedeutung |
|---|---|---|
data-lang | Attribut am Element | Feste Sprache: de, en oder fr. |
data-lang-switch="0" | Attribut am Element | Schaltet die eingebaute Sprachwahl ab. |
data-css | Attribut am Element | Die Stylesheets für das Shadow DOM, durch Leerzeichen getrennt. |
data-max-size | Attribut am Element | Größte Dateigröße in Byte; größere Dateien werden mit „Die Datei ist zu groß.“ abgewiesen. In der App nicht gesetzt, also keine Grenze. |
data-catalog-index | Attribut am Element | Adresse eines Katalogverzeichnisses, nur ohne catalogs. |
catalogs, model | Eigenschaften | Die Kataloge nach Profil und Sprache; das Modell der zuletzt gelesenen Rechnung oder null. |
showXml( text, { name } ), setLanguage( code ) | Methoden | Eine Rechnung als XML-Text ohne Ablagefläche übergeben (liefert ein Promise auf das Modell); die Sprache umstellen. |
einvoice-document-ready, einvoice-reset, einvoice-language-changed | Ereignisse (bubbles, composed) | Nach dem Lesen (detail trägt format, model, name), nach dem Zurücksetzen und nach einem Sprachwechsel (detail.language). |
globalThis.EInvoiceGroupViewer.addFormat( … ) | statische Methode | Meldet ein Format an. |
globalThis.einvoiceI18n | Sprachtabellen | Übersetzungen der Oberfläche; available nennt die vorhandenen Sprachen. Mehrere Pakete auf derselben Seite vereinigen ihre Tabellen. |
Im Plugin
| Art | Name | Bedeutung |
|---|---|---|
| Kurzbefehl | spfp_fatturapa_viewer | Gibt das Element in einem <div class="spfp-host"> aus, mit data-lang nach der Sprache der Seite, data-lang-switch="0", data-css und data-catalog-index (die Adresse von assets/data/fatturapa/index.json). Attribute werden nicht ausgewertet. |
| Filter | spfp_force_enqueue | Erhält true oder false und entscheidet, ob Stil- und Skriptdateien früh geladen werden. Standard: true auf einer einzelnen Seite oder einem Beitrag, deren Inhalt den Kurzbefehl enthält, sonst false. |
| Filter | einvoice_design_kit | Gemeinsamer Filter aller eInvoice-Werkzeuge. Erhält den gespeicherten Kennbuchstaben des Kits (etwa h) und erlaubt, das Kit im Code zu setzen. Ein Kit, das dieses Plugin nicht mitliefert, fällt auf h zurück. |
| Option (nur gelesen) | einvoice_design_kit | Die gemeinsame Einstellung der eInvoice-Werkzeuge, Standard h. Dieses Plugin registriert die Option nicht und zeigt kein Auswahlfeld. |
| Konstanten | SPFP_VERSION, SPFP_FILE, SPFP_DIR, SPFP_URL, SPFP_SHORTCODE | Fassung, Hauptdatei, Verzeichnis, Adresse des Plugins und der Name des Kurzbefehls. |
| Stil- und Skriptkennungen | spfp-kit, spfp-i18n-index, spfp-i18n, spfp-viewer-element | Die Marken des Design-Kits im Dokument, die Liste der Sprachen, die Sprachtabelle der Seitensprache und das Skriptbündel assets/js/einvoice-fatturapa-viewer.bundle.js, das als ES-Modul geladen wird. |
| Stildateien | assets/css/spev-viewer.css, spt-kit-<x>.tokens.css, spt-kit-<x>.css, assets/css/group-viewer.css | In dieser Reihenfolge an das Element übergeben. Nur die Token-Datei des Kits steht im Dokument; alles andere geht in den Shadow Root, damit das Theme unberührt bleibt. |
| Textdomäne | einvoice-viewer-for-fatturapa | Übersetzungen liegen im Ordner /languages des Plugins und werden auf init geladen. Die Sprachtabellen in i18n/ werden aus denselben .po-Dateien erzeugt. |
In der App
| Stelle | Art | Bedeutung |
|---|---|---|
window.einvoiceConfig | Objekt in config.js | Die Einstellungen aus Kapitel 12. Gelesen werden lang vom Seitenskript und fontsLocal vom Schriftlader im Kopf der Seite. |
globalThis.einvoiceData | Verzeichnis der Kataloge | Die Skriptdateien in data/ tragen sich hier unter ihrem Dateinamen ein, etwa fields-fatturapa-12-lite-de.json. Kataloge und Sprachtabellen sind Skriptdateien, weil eine von file:// geöffnete Seite den Nachbarordner nicht mit fetch() lesen darf. |
Startdatei, app.js, einvoice-viewer-for-fatturapa.js | erzeugte Dateien | Entstehen beim Bau des Pakets; ein Handeingriff geht mit der nächsten Fassung verloren. Die Reihenfolge der Skripte ist Teil des Vertrags: Kataloge, Sprachtabellen, Werkzeug, app.js. |
Beide Formen stehen unter der Lizenz GPL-2.0-or-later.
11 · Fassungen
Die vollständige Liste der Änderungen steht in der Datei CHANGELOG.md im Ordner der App und in der readme.txt des Plugins.
| Fassung | Änderung |
|---|---|
| 1.0.0 | Erste Fassung. Zeigt italienische FatturaPA-E-Rechnungen der Fassung 1.2 in ihrer eigenen Gliederung, auch signiert als .p7m, mit deutschen oder englischen Feldnamen, vollständig im Browser. |
12 · Als App
12.1 Ordner und Startdatei
Die App ist der Ordner einvoice-viewer-for-fatturapa. Er muss vollständig bleiben. Zu ihm gehören:
| Inhalt | Wozu |
|---|---|
einvoice-viewer-for-fatturapa.html | die Startseite |
einvoice-viewer-for-fatturapa.js, app.js | das Werkzeug mit dem FatturaPA-Format und das Skript der Seite |
config.js | die Einstellungen (Abschnitt 12.2) |
data/ | Feldkatalog und Codelisten auf Deutsch und Englisch; ohne sie meldet die Seite, dass der Feldkatalog nicht geladen werden konnte |
i18n/ | die Sprachtabellen der Oberfläche |
assets/ | Stylesheets, Druck-Stylesheet und Schriften |
manual/ | dieses Handbuch als Seite, deutsch und englisch |
CHANGELOG.md, LICENSE | die Änderungen und der Lizenztext |
Die Startseite läuft mit einem Doppelklick von der Festplatte, von einem USB-Stick, von einem Netzlaufwerk oder von einem Webserver. Auf einem Netzlaufwerk teilen Sie den Pfad zur Startdatei mit; auf den Arbeitsplätzen ist nichts einzurichten.
12.2 Die Datei config.js
Die App hat keine Einstellungsseite. Ihre Einstellungen stehen in config.js. Sie öffnen die Datei mit einem Texteditor, ändern einen Wert, speichern und laden die Seite neu. Die Datei ist in allen Apps von invoiceTools gleich aufgebaut und trägt sechs Schlüssel; dieser Viewer wertet zwei davon aus.
| Einstellung | Standard | Wirkung |
|---|---|---|
lang | '' | Startsprache der Seite: 'de', 'en' oder 'fr'; leer bedeutet die Sprache des Browsers. Eine an diesem Browser schon einmal per Klick gewählte Sprache geht vor. Fällt alles aus, startet die Seite auf Deutsch. |
fontsLocal | true | true heißt: die Schriften aus assets/fonts/, ohne Abruf nach außen. false heißt: Verweis auf Google Fonts, mit Rückfall auf Systemschriften. |
dataSource | 'local' | In dieser Fassung ohne Wirkung. Die Kataloge kommen immer aus data/, und die Seite geht nie online. |
onlineUpdates | false | In dieser Fassung ohne Wirkung. |
serviceUrl | '' | In dieser Fassung ohne Wirkung; die Seite prüft nichts außer Haus. |
allowedProfiles | [] | In dieser Fassung ohne Wirkung; die Seite zeigt jede FatturaPA-Rechnung der Fassung 1.2. |
Der Kommentar in config.js zum Zusatz „Extended Profiles“ und zum Ordner data/protected/ stammt aus der gemeinsamen Vorlage der Apps und betrifft die Viewer der EN 16931, nicht FatturaPA.
Für eine Seite, die auf Englisch startet, solange niemand am Browser eine andere Sprache gewählt hat, und Schriften von Google Fonts lädt, ändern Sie zwei Zeilen:
lang: 'en',
fontsLocal: false,Für den Betrieb hinter einer Firewall lassen Sie fontsLocal auf true. Die Seite löst dann keinen Abruf aus, auch keinen fehlschlagenden, der im Protokoll des Proxys wie ein Datenabfluss aussähe.
12.3 Die Sprachwahl
Oben rechts steht die Sprachwahl mit DE, EN und FR. Ein Wechsel stellt Seitentexte, Werkzeugleiste und die geöffnete Rechnung um. Zahlen und Datum folgen der Sprache: Deutsch mit Dezimalkomma und TT.MM.JJJJ, Englisch mit Dezimalpunkt und JJJJ-MM-TT, Französisch mit Dezimalkomma und TT/MM/JJJJ. Die Seite startet in der zuletzt per Klick gewählten Sprache, sonst nach lang aus config.js, sonst in der Sprache des Browsers.
screenshots/fpa-sprachwahl.de.pngSprachwahl oben rechts auf FR, darunter die Rechnung mit französischen Seitentexten, englischen Feldnamen und dem Hinweis dazu12.4 Drucken und Schriften
Im Ordner liegt assets/css/kit-print.css, bewusst nicht angemeldet. Sie richtet die Seite fürs Papier ein: weißer Grund, keine Werkzeugleiste, Signalkanten als Linie statt als Schatten. Ergänzen Sie im <head> der Startdatei hinter dem Kit diese Zeile:
<link rel="stylesheet" href="assets/css/kit-print.css" media="print">Die Reihenfolge zählt: Die Zeile muss nach dem Kit stehen, sonst setzen sich die Bildschirmregeln durch. Weil die Startseite bei jeder Fassung neu erzeugt wird, tragen Sie die Zeile nach einer Aktualisierung erneut ein.
Sie dürfen den Ordner assets/fonts/ löschen, wenn der Ordner kleiner werden soll. Die Ansicht bleibt vollständig gestaltet und steht dann in Systemschriften.
12.5 Aktualisieren und Entfernen
Achtung: Ein neues Paket bringt eine frische config.js mit. Wer sie blind überschreibt, verliert seine Einstellungen.
Zum Entfernen löschen Sie den Ordner. Die App legt keine Datenbank an und schreibt nichts außerhalb ihres Ordners auf den Datenträger.
13 · Als WordPress-Plugin
13.1 Der Kurzbefehl
Der Viewer erscheint auf jeder Seite und in jedem Beitrag, der den Kurzbefehl [spfp_fatturapa_viewer] trägt. Der Kurzbefehl wertet keine Attribute aus. Die Stil- und Skriptdateien lädt das Plugin nur auf Seiten, deren Inhalt den Kurzbefehl enthält.
[spfp_fatturapa_viewer]Die Sprache des Viewers folgt der Sprache der Seite: Deutsch, Englisch oder Französisch; bei jeder anderen Seitensprache ist er englisch. Einen Sprachschalter für Besucher gibt es im Plugin nicht.
13.2 Das Design-Kit
Das Plugin hat keine Einstellungsseite und legt keine eigene Einstellung an. Es folgt dem Design-Kit, das für alle eInvoice-Werkzeuge der Website gemeinsam gewählt wird, und bietet die Auswahl nicht selbst an.
| Einstellung | Standard | Wirkung |
|---|---|---|
| Design-Kit der eInvoice-Werkzeuge | Kit H | Bestimmt Farben, Schriften und Maße des Viewers. Die Auswahl steht auf der Einstellungsseite eines anderen eInvoice-Werkzeugs, etwa des eInvoice Viewers for PEPPOL & EN16931. Läuft dieser Viewer allein, gilt Kit H. Ein gewähltes Kit, das in diesem Plugin nicht mitgeliefert ist, ersetzt das Plugin stillschweigend durch Kit H. |
13.3 Aktualisieren und Entfernen
Eine neue Fassung laden Sie unter Plugins → Neues Plugin hinzufügen → Plugin hochladen hoch und lassen WordPress die vorhandene Fassung ersetzen, oder Sie ersetzen den Ordner auf dem Server. Der Kurzbefehl auf Ihren Seiten bleibt gültig. Das Plugin hängt an seine Stil- und Skriptdateien die Fassungsnummer an, sodass Browser nach einer Aktualisierung die neuen Dateien laden.
Sie deaktivieren und löschen das Plugin unter Plugins. Das Plugin legt keine eigene Einstellung in der Datenbank an und speichert keine Rechnungsdaten; nach dem Löschen bleibt von ihm nichts zurück. Seiten, auf denen der Kurzbefehl steht, zeigen ihn danach als Text. Die gemeinsame Einstellung „Design-Kit“ gehört zu den anderen eInvoice-Werkzeugen und bleibt erhalten.
14 · Bilderliste
Diese Liste zeigt, welche Bildschirmfotos dieses Handbuch erwartet und welche im Ordner screenshots/ des Pakets gefunden wurden. Ein Bild heißt immer Kennung.Sprache.png, zum Beispiel fp-ansicht.de.png. Fehlt die deutsche Fassung, zeigt das Handbuch die englische. Auf den Bildern sind nur Beispieldaten zu sehen.
| Stand | Datei | Was zu sehen ist |
|---|---|---|
| – | fp-ansicht.de.png | Eine geladene FatturaPA-Rechnung: oben die Ablagefläche mit den beiden Schaltern und dem Knopf „Zurücksetzen“, darunter der Kopf mit Belegart, Nummer, Datum und Währung und die ersten Gruppen des italienischen Schemas |
| – | fp-auswahlflaeche.de.png | Die leere Ablagefläche des Viewers mit dem Text „E-Rechnung hierher ziehen oder klicken, um eine Datei zu wählen“ und darunter dem Hinweis auf FatturaPA 1.2, XML oder .p7m |
| – | fp-kopf.de.png | Der Kopf einer Datei mit mehreren Rechnungen: Belegart, Nummer, Datum, Währung und Betrag der ersten Rechnung und die Zeile „Rechnungen in dieser Datei“ mit der Zahl |
| – | fpa-tooltip.de.png | Ein Feld mit aufgelöstem Code, Code in Klammern und geöffnetem Tooltip mit der Erklärung |
| – | fp-parteien.de.png | Die Gruppen Übertragung, Verkäufer und Käufer mit Namen, Anschrift, Steuerkennungen und der Steuerregelung des Verkäufers als Klartext |
| – | fp-tabellen.de.png | Die Tabellen der Positionen, der Steuerzusammenfassung und der Zahlungsangaben einer Rechnung |
| – | fp-originalname.de.png | Eine Feldgruppe mit eingeschaltetem Schalter „Originalbezeichnung und Pfad“: unter jeder deutschen Bezeichnung die italienische Originalbezeichnung und der Pfad |
| – | fp-anhaenge.de.png | Die Gruppe der Anhänge mit Dateiname, Größe und dem Knopf „Speichern“ |
| – | fp-signiert.de.png | Eine aus einer .p7m-Datei ausgepackte Rechnung mit der Zeile „signiert; Signatur nicht geprüft“ |
| – | fp-nicht-im-katalog.de.png | Der Abschnitt „Nicht im Katalog“ mit einem Wert und seinem Pfad |
| – | fpa-sprachwahl.de.png | Sprachwahl oben rechts auf FR, darunter die Rechnung mit französischen Seitentexten, englischen Feldnamen und dem Hinweis dazu |