e-Invoice REST API

Für Entwickler

Dieselben Werkzeuge, ohne Oberfläche.

Jedes invoicePress-Plugin bringt seine Funktion zusätzlich als REST-Route mit – auf Ihrer eigenen WordPress-Installation, unter dem gemeinsamen Namensraum einvoice/v1. Was der Besucher sonst per Drag & Drop auslöst, lässt sich damit ebenso aus einem Skript, einem Cronjob oder einem anderen System heraus aufrufen.

Die Routen

Vier Endpunkte, ein Namensraum.

POST /wp-json/einvoice/v1/render — liest eine Rechnung (ZUGFeRD-/Factur-X-PDF, CII- oder UBL-XML) und liefert die strukturierte Ansicht zurück.

POST /wp-json/einvoice/v1/explain — nimmt einen Prüfbericht (XML oder HTML) entgegen und liefert die aufbereitete, erklärte Fassung.

POST /wp-json/einvoice/v1/export — liefert die gelesene Rechnung als Excel-Datei; hier kommt die Datei selbst zurück, nicht eine JSON-Hülle darum.

POST /wp-json/einvoice/v1/convert — nimmt eine E-Rechnungs-XML entgegen und gibt sie in der jeweils anderen Syntax der UN/CEFACT-Familie zurück: UBL zu CII oder CII zu UBL. Liegt sie bereits richtig vor, kommt sie unverändert zurück.

Welche Route verfügbar ist, hängt davon ab, welches Plugin aktiv ist – die Routen kommen aus dem jeweiligen Plugin, nicht aus einem separaten Paket. Der Validator bringt zusätzlich /validate mit, sobald er installiert ist; er setzt eine lokale Java- und KoSIT-Installation voraus und läuft hier deshalb nicht.

Dieselbe Logik wie das Frontend

Die Routen rufen exakt dieselbe interne Methode auf wie der jeweilige AJAX-Endpunkt der Oberfläche – kein zweiter, parallel gepflegter Codepfad, der auseinanderlaufen kann.

Damit gelten auch dieselben Regeln: die Datei wird im Speicher verarbeitet und nicht gespeichert, es geht kein Aufruf an einen fremden Dienst, und dasselbe Tageslimit je Besucher greift.

Referenzdaten

Codelisten und Business Terms, nicht nur auf Englisch.

Der europäische Standard EN 16931-1 legt fest, welche Codelisten für jeden Geschäftsterm mit dem Datentyp „Code“ zulässig sind. Diese Tabellen – UN/EDIFACT-UNTDID, ISO 3166-1, ISO 4217, UN/ECE Rec. 20 und 21, ICD, EAS, MIME, VATEX und weitere – liegen aufbereitet vor: komplett oder einzeln abrufbar, und übersetzt in viele europäische Sprachen statt nur auf Englisch.

Die Übersicht über alle Tabellen steht auf der Seite Codelisten und Referenztabellen (EN 16931).

Direkt im PHP

Wer im selben WordPress sitzt, braucht keine Route.

Für Erweiterungen, die ohnehin auf derselben Installation laufen, gibt es den kürzeren Weg: SPEV_Renderer::model() liefert die gelesene Rechnung als verschachteltes Array – dieselbe Struktur, die auch die Ansicht erzeugt, nur ohne HTML darum.

Dazu kommen die Filter der einzelnen Plugins, mit denen sich Tooltips erweitern, ganze Abschnitte anhängen oder Sprache und Datumsformat unabhängig von der Seite setzen lassen.

Erst ansehen, dann automatisieren.

Die Routen tun dasselbe wie die Oberfläche. Am schnellsten bekommen Sie ein Gefühl dafür, indem Sie eine eigene Rechnung durch den Viewer schicken.