Schnittstellen
Alle für einen Rechnungsempfänger eingehenden e-Rechnungen werden von e-Rechnung.gv.at auf automatisierte Art und Weise an diesen übertragen. Diese Übetragung findet nur nach erfolgreicher technischer Prüfung der eingehenden e-Rechnung statt. Wird ein technischer Fehler gefunden so wird der Rechnungssteller direkt über diesen informiert und die Rechnung gilt als nicht eingebracht.
Grundsätzlich wird in synchrone und asynchrone Schnittstellen unterschieden. Bei synchronen Schnittstellen müssen die Referenzprüfungen auf Empfängerseite synchron (innerhalb von maximal 2 Sekunden) durchgeführt werden, das Ergebnis als Response zurückgegeben werden und der Rechnungssteller wird sofort über das Ergebnis informiert. Bei asynchronen Schnittstellen wird die Rechnung zum Rechnungssteller übertragen, dieser hat einen kurzen Zeitraum (maximal 10 Minuten) um die Rechnung zu überprüfen und muss dann das Prüfergebnis aktiv an e-Rechnung.gv.at per SOAP-Webservice übertragen. Von dort aus wird dann der ursprüngliche Rechnungsempfänger informiert.
Wir raten aus folgenden Gründen von der Verwendung eines synchronen Services ab:
- Bei Verwendung des synchronen Services muss der Rechnungseinbringer solange warten, bis die Antwort des synchronen Services verfügbar ist. Das kann vor allem bei Verwendung des Formulars und des Uploads zu spürbaren Verzögerungen führen und damit den Unmut des Rechnungseinbringers fördern.
- Sollten die automatischen Prüfungen beim Rechnungsempfänger in Zukunft erweitert werden können und sich die Dauer der Prüfungen erhöhen, so kann es notwendig sein nachträglich auf den asynchronen Service zu wechseln was mit Zeit und Kosten verbunden ist.
- Durch die Verwendung von asynchronen Prozessen kann die Trennung in Empfang und Validierung beim Rechnungsempfänger leichter in verschiedenen Komponenten durchgeführt werden.
Zur Übermittlung von e-Rechnung.gv.at an den finalen Rechnungempfänger stehen verschiedene standardisierte Schnittstellen zur Verfügung, von denen eine gewählt werden muss.
Asynchroner SOAP-basierter Webservice
Hierzu werden zwei Webservices benötigt, eines von e-Rechnung.gv.at zum Rechnungsempfänger und eines zurück. Die WSDLs sind unter Downloads zu finden. Der Ablauf ist wie folgt:
- Rechnungssteller liefert e-Rechnung bei e-Rechnung.gv.at ein
- e-Rechnung.gv.at führt Transformationen, Prüfungen und PDF-Erstellung durch.
- e-Rechnung.gv.at leitet die e-Rechnung per SOAP-Webservice an den Rechnungsempfänger weiter. Im Erfolgsfall bekommt der Rechnungssteller eine synchrone Bestätigung auf dem Kanal den er zur Einlieferung verwendet hat.
- Der Rechnungsempfänger führt zusätzliche Referenzprüfungen (z.B. Bestellnummer, Lieferantennummer etc.) durch und ruft das Status-SOAP-Webservice von e-Rechnung.gv.at mit dem Status (Erfolg oder Fehler) auf.
- e-Rechnung.gv.at informiert den Rechnungssteller per E-Mail oder Webservice-Callback über den Status der e-Rechnung.
Für den Status-SOAP-Webservice von e-Rechnung.gv.at sind folgende Endpunkte zu verwenden:
- Test-Version:
https://test.erechnung.gv.at/wsercasyncstatus100
- Produktive Version:
https://www.erechnung.gv.at/wsercasyncstatus100
Hinweis: für den Aufruf des Status-SOAP-Webservices bei e-Rechnung.gv.at müssen (nur noch auf der Test-Version) SNI-Zertifikate unterstützt werden.
Asynchroner REST-Service
Hierzu wird auf Seiten des Rechnungsempfängers ein REST-Service benötigt und auf Seiten von e-rechnung.gv.at muss das Standard-SOAP-Webservice aufgerufen werden. Das XML-Schema für den REST-Service ist ebenso unter Downloads zu finden wie auch das WSDL an e-rechnung.gv.at. Der Ablauf is wie folgt:
- Rechnungssteller liefert e-Rechnung bei e-Rechnung.gv.at ein
- e-Rechnung.gv.at führt Transformationen, Prüfungen und PDF-Erstellung durch.
- e-Rechnung.gv.at leitet die e-Rechnung per SOAP-Webservice an den Rechnungsempfänger weiter. Im Erfolgsfall bekommt der Rechnungssteller eine synchrone Bestätigung auf dem Kanal den er zur Einlieferung verwendet hat.
- Der Rechnungsempfänger führt zusätzliche Referenzprüfungen (z.B. Bestellnummer, Lieferantennummer etc.) durch und ruft das Status-SOAP-Webservice von e-Rechnung.gv.at mit dem Status (Erfolg oder Fehler) auf.
- e-Rechnung.gv.at informiert den Rechnungssteller per E-Mail oder Webservice-Callback über den Status der e-Rechnung.
Der einzige Unterschied zwischen der asynchronen Webservice-Schnittstelle und der asynchronen REST-Service-Schnittstelle ist die verwendete Technologie.
Für den Status-SOAP-Webservice von e-Rechnung.gv.at sind folgende Endpunkte zu verwenden:
- Test-Version:
https://test.erechnung.gv.at/wsercasyncstatus100
- Produktive Version:
https://www.erechnung.gv.at/wsercasyncstatus100
Hinweis: für den Aufruf des Status-SOAP-Webservices bei e-Rechnung.gv.at müssen (nur noch auf der Test-Version) SNI-Zertifikate unterstützt werden.
Synchroner SOAP-basierter Webservice (nicht empfohlen)
Hierzu wird ein SOAP-basierters Webservice benötigt, mit dem eine e-Rechnung von e-Rechnung.gv.at zum Rechnungsempfänger übertragen wird, und die Statusmeldung synchron zurückgesendet wird. Die WSDL-Datei ist unter Downloads zu finden. Der Ablauf ist wie folgt:
- Rechnungssteller liefert e-Rechnung bei e-Rechnung.gv.at ein
- e-Rechnung.gv.at führt Transformationen, Prüfungen und PDF-Erstellung durch.
- e-Rechnung.gv.at leitet die e-Rechnung per SOAP-Webservice an den Rechnungsempfänger weiter. Dieser führt zusätzliche Referenzprüfungen (z.B. Bestellnummer, Lieferantennummer etc.) durch und liefert das Ergebnis als synchrone Antwort auf den Webservice-Aufruf zurück.
- e-Rechnung.gv.at informiert den Rechnungssteller synchron auf dem Eingangskanal und gleichzeitig per E-Mail oder Webservice-Callback über den Status der e-Rechnung.
Im Dokument Sequenzdiagramme (asynchron) (PDF) werden die einzelnen Zustände die bei der Einbringung von e-Rechnungen unter verwendung des asynchronen Prozesses (sowohl SOAP-basiert als auch REST-basiert) auftreten können grafisch dragestellt:
- A1 - Technischer Fehler
In diesem Fall wird der Rechnungssteller sofort (synchron) über den Fehler informiert und der Rechnungsempfänger sieht diese Rechnung nie.
Die e-Rechnung gilt in diesem Fall als nicht eingebracht. - A2 – Empfänger nicht erreichbar
In diesem Fall wird der Rechnungsteller sofort (synchron) über den Fehler informiert und gebeten die Rechnung zu einem späteren Zeitpunkt einzubringen.
Die e-Rechnung gilt in diesem Fall als nicht eingebracht. - A3 – Technischer Fehler beim Rechnungsempfänger
Die Übermittlung an den Rechnungsempfänger war erfolgreich, jedoch wurden von diesem technische Fehler identifiziert (das ist eine optionale Prüfung auf Seiten des Empfängers). In diesem Fall wird der Rechnungssteller sofort (synchron) über den Fehler informiert.
Die e-Rechnung gilt in diesem Fall als nicht eingebracht. - A4 – Inhaltlicher Fehler beim Rechnungsempfänger
Die Übermittlung an den Rechnungsempfänger war erfolgreich, jedoch wurden von diesem inhaltliche Fehler identifiziert (z.B. Bestellnummer existiert nicht). In diesem Fall wird der Rechnungssteller asynchron (per E-Mail oder WebService) über den Fehler informiert.
Die e-Rechnung gilt in diesem Fall als nicht eingebracht. - A5 – Falscher API Aufruf
Die Übermittlung an den Rechnungsempfänger war erfolgreich, jedoch ist der Aufruf des Webservices von e-Rechnung.gv.at (technisch) fehlgeschlagen. In diesem Fall muss das Problem zwischen Rechnungsempfänger und e-Rechnung.gv.at gelöst werden und die Übertragung ein weiteres Mal gestartet werden. - A6 – Betriebsvorfall
Die Übermittlung an den Rechnungsempfänger war erfolgreich, jedoch konnte die Rechnung beim Rechnungsempfänger auf Grund eines internen Fehlers nicht verarbeitet werden. In diesem Fall muss das Problem beim Rechnungsempfänger gelöst werden und die Übertragung ein weiteres Mal gestartet werden. - A7 – Erfolgsfall
Die Übermittlung an den Rechnungsempfänger war erfolgreich, der Rechnungsempfänger hat die Rechnung positiv validiert und an e-Rechnung.gv.at zurück gemeldet. In diesem Fall wird der Rechnungssteller asynchron (per E-Mail oder WebService) über den Erfolg informiert.
Die e-Rechnung gilt nur in diesem Fall als eingebracht.