Webservice - e-Rechnung.gv.at (2024)

Voraussetzungen für die Einlieferung per Webservice

Der Aufruf des Webservices kann aus Programmen auf nahezu jeder Plattform (z.B. Java, .NET, PHP, Perl, Python, Ruby, ...) erfolgen. Es stehen zwei verschiedene Versionen des Webservice zur Verfügung, die beide die Einbringung einer Rechnung unterstützen. Webservice V2.0 ist die empfohlene Variante, da dort mehr Einstellungsmöglichkeiten als bei Webservice V1.2 vorhanden sind.

Hinweis: Die Beschreibung der Einrichtung eines Webservices richtet sich an Spezialisten. WSDL ist ein Standard für Webservices im Internet.

Es wird daher um Verständnis ersucht, dass das BMF und die Unternehmensservice Portal-Hotline für die Lösung von technischen Problemen im Zusammenhang mit der Einrichtung des Webservices nicht zur Verfügung stehen. Es wird empfohlen, derartige Fragen über das Kontaktformular zu stellen oder im ebInterface Forum zu posten.

Voraussetzung für das Webservice

  • Der Übermittler muss Teilnehmer am Unternehmensservice Portal sein.
  • Der Teilnehmer muss in der Benutzerverwaltung einen Benutzer für 'Webservices' anlegen. Eine detaillierte Anleitung ist in Kapitel 4.3 "Webservice-Benutzer anlegen" des Leitfaden für die Wirtschaft (PDF) zu finden.
  • Das e-Rechnung.gv.at Webservice ist mit diesem Webservice-Benutzer zu verwenden.
  • Das Passwort des Webservice-Benutzers muss bekannt sein.
  • Es muss eine strukturierte e-Rechnung in einem unterstützten Format vorliegen. Diese muss nicht (kann aber) elektronisch signiert sein.
  • Allfällige Beilagen zur Rechnung müssen elektronisch in einem unterstützten Format vorliegen.

Ablauf

Die Verarbeitung einer e-Rechnung per Webservice erfolgt in zwei Schritten.

  • Das eingehende Dokument wird validiert und die e-Rechnung aus selbigem extrahiert. Falls bei der Überprüfung der extrahierten e-Rechnung ein Fehler auftritt, so wird synchron - als direkte Antwort auf das eingehende Dokument - eine Fehlermeldung zurückgeliefert. Ist das Dokument technisch in Ordnung ist, wird es zur weiteren Verarbeitung weitergeleitet, und es wird eine synchrone Erfolgsmeldung (Annahmebestätigung) zurückgeliefert.
  • Falls der erste Schritt erfolgreich war, wird asynchron eine endgültige Annahme (Erfolg) oder Ablehnung (Fehler) signalisiert. Standardmäßig erfolgt dies per E-Mail. Optional kann im ursprünglichen Webservice-Aufruf aber auch eine sog. "Callback-URL" bzw. "Response-URL" angegeben werden. Falls diese gesetzt ist, versucht e-Rechnung.gv.at die Antwort an diese Webservice-URL zu senden. Falls der Aufruf der Response-URL nicht funktioniert, so wird ein E-Mail gesendet. Die zu implementierende Schnittstelle für dieses Service ist im Reiter Callback zu finden.

Hinweise:

  • Nach Beendigung des Webservice-Aufrufs wird der Benutzer automatisch ausgeloggt.
  • Für jede e-Rechnung ist ein eigener Webservice-Aufruf zu erzeugen und zu senden.

Schnittstellenbeschreibung (V2.0)

Diesen Service können Sie umsetzen, um automatisiert e-Rechnungen zu senden. Die Webservice-Schnittstelle bietet im Vergleich zu V1.2 zusätzliche Einstellungsmöglichkeiten an. Diese Schnittstelle steht parallel zu V1.2 zur Verfügung und es nur eine Version umgesetzt werden.

  • erb-in-invoice-201.wsdl

Der Aufruf des Webservices erfolgt derzeit über https und das USP Die gültige Webservice-Endpunkt-Adresse lautet:

  • https://txm.portal.at/at.gv.bmf.erb/V2

Eine Beschreibung, wie das Webservice getestet werden kann ist verfügbar.

Hinweise:

  • für die https-Übertragung an die oben genannte Webservice-Endpunkt-Adresse muss mindestens TLS 1.2 verwendet werden. SSL 3.0, TLS 1.0 und TLS 1.1 können nicht mehr verwendet werden.
  • es darf kein Slash ("/") am Ende der Webservice-Endpunkt-Adresse stehen!
  • die SOAP-Nachricht muss in UTF-8 oder iso-8859-1 übertragen werden!
  • die SOAP-Nachricht muss Windows-(\r\n) oder Linux-Zeilenumbrüche (\n) haben. Mac-Zeilenumbrüche (\r) führen zu einem Fehler!
  • das SOAP Root-Element Envelope muss eine lange Zeile sein, und darf sich nicht über mehrere Zeilen erstrecken!
  • im WSSE-Password-Element dürfen keine Leerzeichen enthalten sein! (Gutfall: <wsse:Password>passwd<wsse:Password>; Fehler: <wsse:Password> passwd <wsse:Password>)
  • im SOAP-Header sollte außer dem minimalen WSSE-Header keine sonstigen Header (z.B. WS-Addressing) enthalten sein. Der WSSE-Header sollte außer Security/UsernameToken keine weiteren Elemente enthalten.
  • als Content-Type bei der Übertragung muss text/xml verwendet werden!
  • es muss die XML-Deklaration (<?xml version="1.0" ... ?>) vorhanden sein!
  • beachten Sie die Formatierung des SOAP-XMLs, wie im Forum beschrieben!
  • der Base64-codierte Rechnungstext darf keinen BOM (Byte Order Mark) enthalten!
  • Beilagen die nicht mit der Rechnung übertragen werden (Element ExternalAttachment) sind zwar in der WSDL-Datei spezifiziert, werden aber nicht unterstützt!
  • für SOAP-Requests die größer als 15MB sind, muss das HTTP Chunked Encoding verwendet werden! (Wikipedia-Eintrag)
  • unter SOAP-Nachricht testen steht eine interaktive Funktionalität zur Überprüfung von SOAP-Nachrichten auf Korrektheit zur Verfügung.
  • für die Verwendung via PVP gibt es eigene URLs!

Einstellungsmöglichkeiten

Alle Einstellungen für einen Webservice-Aufruf befinden sich im Element Settings. Folgende Kind-Elemente sind vorhanden:

  • Callback (0..1) - enthält Einstellungen für den asynchronen Webservice-Callback, bestehend aus:
    • Passthrough (0..n) - damit können bei der Rechnungseinbringung beliebige Schlüssel-Wert-Paare angegeben werden, die beim asynchronen Callback wieder zurückgeliefert werden. Der Zweck dieses Elements ist das einfache Mapping einer asynchronen Antwort zu einer Rechnungseinbringung. Der Name muss im Attribut name angegeben werden. Es muss darauf geachtet werden, dass jedes Passthrough-Element einen eindeutigen Namen hat.
    • @url (1..1) - gibt die URL an, unter der das Webservice-Callback erreichbar ist. Diese URL muss öffentlich zugänglich sein, kann jedoch mit einem IP-Adressen-Filter auf www.e-rechnung.gv.at und/oder test.e-rechnung.gv.at geschützt werden.
    • @version (1..1) - gibt die Version des asynchronen Callbacks an, dass verwendet werden soll. Derzeit gibt es nur Version 1.0 des asynchronen Callbacks und dafür muss als Wert 100 angegeben werden.
    • @soapaction (0..1) - falls das in @url spezifizierte Webservice eine SOAP-Action benötigt, so kann diese in diesem Attribut angegeben werden. Standardmäßig wird keine SOAP-Action gesendet.
  • EmailSettings (0..1) - enthält Einstellungen für den E-Mail-Versand, bestehend aus:
    • AlternateResponseEmail (0..n) - überschreibt die E-Mail-Adressen für die asynchrone E-Mail-Kommunikation. Wenn mindestens ein AlternateResponseEmail-Element vorhanden ist, wird das E-Mail mit der Erfolgs- oder Fehlermeldung an diese E-Mail-Adresse(n) gesendet und nicht mehr an die in der Rechnung spezifizierten E-Mail-Adresse(n).
    • AdditionalResponseEmail (0..n) - fügt zusätzliche E-Mail-Adressen für die asynchrone E-Mail-Kommunikation hinzu. Diese Element wird nur ausgewertet wenn kein AlternateResponseEmail-Element vorhanden ist.
    • ResponseEmailCC (0..n) - fügt zusätzliche E-Mail-Adressen als CC-Empfänger zur Rechnung hinzu. Dieses Element wird immer ausgewertet.
    • ResponseEmailBCC (0..n) - fügt zusätzliche E-Mail-Adressen als BCC-Empfänger zur Rechnung hinzu. Dieses Element wird immer ausgewertet.
    • SubjectPrefix (0..1) - fügt der versendeten E-Mail ein zusätzliches Präfix hinzu und dient zur besseren Filterung von e-Rechnung.gv.at-E-Mails. Hinweis: dieses Präfix wird immer nach dem Standard-Präfix [ERB] hinzugefügt.
  • TechnicalContact (0..1) - dient zur Angabe der E-Mail-Adresse eines technischen Verantwortlichen falls es beim Aufruf des asynchronen Webservice-Callbacks zu Problemen kommt.
  • @test (0..1) - dient zur Angabe ob es sich bei dem Webservice-Aufruf um einen Test handelt (Wert true) oder um eine produktive Einlieferung (Wert false). Eine ausführlichere Beschreibung befindet sich unter Test.
  • @language (0..1) - definiert die Sprache, in der Fehlermeldungen ausgegeben werden sollen. Standardmäßig wird der Wert de für Deutsch verwendet. Alternativ kann derzeit nur en für Englisch verwendet werden.

Schnittstellenbeschreibung (V1.2)

Diesen Service können Sie umsetzen, um automatisiert e-Rechnungen zu senden.

Es wird empfohlen die Version 2.0 des Webservices umzusetzen, da diese mehr Einstellungsmöglichkeiten bietet.

  • erb-in-invoice-122.wsdl

Der Aufruf des Webservices erfolgt derzeit über https und das USP. Die gültige Webservice-Endpunkt-Adresse lautet:

  • https://txm.portal.at/at.gv.bmf.erb/V1

Eine Beschreibung, wie das Webservice getestet werden kann ist verfügbar.

Hinweise:

  • für die https-Übertragung an die oben genannte Webservice-Endpunkt-Adresse muss mindestens TLS 1.2 verwendet werden. SSL 3.0, TLS 1.0 und TLS 1.1 können nicht mehr verwendet werden.
  • es darf kein Slash ("/") am Ende der Webservice-Endpunkt-Adresse stehen!
  • die SOAP-Nachricht muss in UTF-8 oder iso-8859-1 übertragen werden!
  • die SOAP-Nachricht muss Windows-(\r\n) oder Linux-Zeilenumbrüche (\n) haben. Mac-Zeilenumbrüche (\r) führen zu einem Fehler!
  • das SOAP Root-Element Envelope muss eine lange Zeile sein, und darf sich nicht über mehrere Zeilen erstrecken!
  • im WSSE-Password-Element dürfen keine Leerzeichen enthalten sein! (Gutfall: <wsse:Password>passwd<wsse:Password>; Fehler: <wsse:Password> passwd <wsse:Password>)
  • im SOAP-Header sollte außer dem minimalen WSSE-Header keine sonstigen Header (z.B. WS-Addressing) enthalten sein. Der WSSE-Header sollte außer Security/UsernameToken keine weiteren Elemente enthalten.
  • als Content-Type bei der Übertragung muss text/xml verwendet werden!
  • es muss die XML-Deklaration (<?xml version="1.0" ... ?>) vorhanden sein!
  • beachten Sie die Formatierung des SOAP-XMLs, wie im Forum beschrieben!
  • der Base64-codierte Rechnungstext darf keinen BOM (Byte Order Mark) enthalten!
  • für SOAP-Requests die größer als 15MB sind, muss das HTTP Chunked Encoding verwendet werden! (Wikipedia-Eintrag)
  • unter SOAP-Nachricht testen steht eine interaktive Funktionalität zur Überprüfung von SOAP-Nachrichten auf Korrektheit zur Verfügung.
  • für die Verwendung via PVP gibt es eigene URLs!

USP Webservicekonto

Für die Authentifizierung muss für ein Unternehmen im Unternehmensservice Portal ein Webservicekonto angelegt sein. Die dazugehörigen Zugangsdaten sind im SOAP-SecurityHeader im sogenannten <UsernameToken> anzuführen. Eine ausführliche Anleitung zum Einrichten des e-Rechnung.gv.at-Webservice-Benutzers im USP finden Sie im Leitfaden (PDF) (der auch unter Downloads verfügbar ist)!

Die offizielle Spezifikation von OASIS finden Sie unter http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0.pdf.

  • Webservice V2.0
  • Webservice V1.2

<?xml version="1.0" encoding="utf-8"?>

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">

<env:Header>

<wsse:Security>

<wsse:UsernameToken>

<wsse:Username>Testkonto</wsse:Username>

<wsse:Password>a1b2c3d4</wsse:Password>

</wsse:UsernameToken>

</wsse:Security>

</env:Header>

<env:Body>

<deliverInvoiceInvoiceInput xmlns="http://erb.eproc.brz.gv.at/ws/invoicedelivery/201306/">

<!-- Die Base64-codierte e-Rechnung mit dem Originalzeichensatz UTF-8: -->

<Invoice encoding="UTF-8">PD94bWwgd.....WNlPg0K</Invoice>

<!-- Optionale Base64-codierte Beilage test.pdf: -->

<EmbeddedAttachment name="test.pdf">JVBERk....lbHQ=</EmbeddedAttachment>

<!-- test="true" bedeutet Test-Flag gesetzt: -->

<Settings test="true"/>

</deliverInvoiceInvoiceInput>

</env:Body>

</env:Envelope>

<?xml version="1.0" encoding="utf-8"?>

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">

<env:Header>

<wsse:Security>

<wsse:UsernameToken>

<wsse:Username>Testkonto</wsse:Username>

<wsse:Password>a1b2c3d4</wsse:Password>

</wsse:UsernameToken>

</wsse:Security>

</env:Header>

<env:Body>

<uploadDocument xmlns="http://erb.eproc.brz.gv.at/ws/documentupload/20121205/">

<!-- Die Base64-codierte e-Rechnung mit dem Originalzeichensatz UTF-8: -->

<Document encoding="UTF-8">PD94bWwgd.....WNlPg0K</Document>

<!-- Optionale Base64-codierte Beilage test.pdf: -->

<Attachment name="test.pdf">

<Content>JVBERk....lbHQ=</Content>

</Attachment>

<!-- test="true" bedeutet Test-Flag gesetzt: -->

<Settings test="true"/>

</uploadDocument>

</env:Body>

</env:Envelope>

Die fettgedruckten Teile stellen das UsernameToken bzw. nötige Ergänzungen dar. Der Namensraum sowie die Groß- und Kleinschreibung sind genau einzuhalten. In <wsse:Username> und <wsse:Password> ist die Angabe der Zugangsdaten in Klarschrift erforderlich, da bereits eine verschlüsselte https-Verbindung benützt wird. Ihre Benutzerdaten werden nicht an e-Rechnung.gv.at weitergegeben. Sie werden ausschließlich vom USP validiert und anschließend aus dem Dokument entfernt.

Hinweis: sämtliche existierende USP-Webservice-Benutzer funktionieren sowohl für Webservice V1.2 als auch Webservice V2.0!

Hinweis: die Benutzerdaten müssen nur in der SOAP-Nachricht übertragen werden und dürfen nicht zusätzlich noch per HTTP-BasicAuth versendet werden!

Eine Anleitung wie WS Security Username Tokens in Java zu verwenden sind, findet sich z.B. unter https://dzone.com/articles/jax-ws-header-part-1-client.

Asynchroner Webservice Callback (V1.0)

Diesen Service können Sie als Server implementieren, um eine asynchrone Antwort von e-Rechnung.gv.at zu bekommen. Sobald feststeht, ob die Rechnung inhaltlich korrekt ist oder nicht, werden Sie von e-Rechnung.gv.at über diese Schnittstelle informiert. Sie können sowohl einen http- als auch einen https-Endpunkt verwenden - e-Rechnung.gv.at kann mit beiden Protokollen kommunizieren. Falls Sie https verwenden, reicht die Verwendung eines selbst-signierten Zertifikats technisch aus. Das Callback muss auf einem der folgenden Ports auf ihrem System laufen: 8080, 8412, 44300-44399 oder 58700-58799. Port 80 und 443 sind aus Sicherheitsgründen leider keine Option!

Hinweis: wenn Sie https verwenden muss die Gegenstelle mindestens TLS 1.2 unterstützen! SSLv3, TLS 1.0 und TLS 1.1 werden nicht unterstützt.

  • erb-out-invoice-callback-100.wsdl

Verwendung mit Webservice 2.0: die Endpunkt-Adresse, auf der Ihre Service Implementierung verfügbar ist, muss im Attribut url des Elements Settings/Callback bei der Einlieferung der Rechnung hinterlegt sein. Außerdem muss das Attribut version im Element Settings/Callback gesetzt sein. Dieses gibt die Version des Callbacks an und unterstützt derzeit nur den Wert 100. Wurde eines dieser Attribute nicht gesetzt, oder hat der Aufruf des Webservices nicht funktioniert, werden Sie in einer E-Mail darüber informiert.

Verwendung mit Webservice 1.2: die Endpunkt-Adresse, auf der Ihre Service Implementierung verfügbar ist, muss im Attribut ResponseServiceURL des Elements Settings bei der Einlieferung der Rechnung hinterlegt sein. Wurde dieses Attribut nicht gesetzt, oder hat der Aufruf des Webservices nicht funktioniert, werden Sie in einer E-Mail darüber informiert.

Hinweis: dieser Service steht nur bei Verwendung der Webservice-Einlieferung zur Verfügung. Bei der Einbringung der e-Rechnung im Wege des Uploads, des Online-Formulars oder Peppol besteht diese Option nicht.

Fehlermeldungen

Nachdem die Fehlermeldungen der Webserviceeinbringung teilweise sehr kryptisch sind (und wir leider keinen Einfluss auf diese haben), hier eine kleine Hilfestellung, welcher Fehler was bedeuten kann (diese Liste erhebt keinen Anspruch auf Vollständigkeit):

  • HTTP 302 → Konto nicht vorhanden/falscher Username (Fehlermeldung Wrong Credentials (1))
  • HTTP 302 → Passwort nicht korrekt (Fehlermeldung Wrong Credentials (2))
  • HTTP 302 → Das Hakerl im USP ist nicht gesetzt (Fehlermeldung Missing Permissions)
  • HTTP 302 → HTTP 404 → Konto ist gesperrt, da der User zu oft (4 mal) ein falsches Passwort mitgeschickt hat (Entsperrung im USP notwendig - eine Anleitung findet sich im Dokument "Entsperren eines Webservice-Benutzers im USP" unter Downloads)
  • HTTP 412 → auf Grund eines internen Fehlers konnte der Webservice-Aufruf nicht durchgeführt werden. Bitte versuchen Sie es erneut.
  • HTTP 415 → der falsche Content-Type HTTP-Header wird verwendet. Es muss text/xml verwendet werden.
  • HTTP 500 → das USP-Webservice-Konto hat das notwendige Recht nicht zugewiesen. Falls das Test-Webservice angesprochen werden soll, so muss vorher das notwendige Recht im USP von uns freigeschaltet und von Ihnen aktiviert werden!
  • HTTP 500 → die SOAP-Nachricht entspricht nicht der WSDL-Datei (in diesem Fall kann die SOAP-Nachricht im SOAP-Tester auf bekannte Fehlerquellen untersucht werden)
  • HTTP 500 → in der SOAP-Nachricht werden die falschen Zeilenumbrüche (Mac - \r) verwendet
  • HTTP 500 → in der SOAP-Nachricht wird ein anderes Encoding als ISO-8859-1 oder UTF-8 verwendet
  • HTTP 500 → das Root-Element der SOAP-Nachricht (Envelope) ist nicht in einer einzigen Zeile angegeben!

Wenn die Überprüfung von Benutzername und Passwort erfolgreich war, werden ganze "normale" SOAP-Faults mit sprechenden Fehlermeldungen wie sie auch in der Fehlerliste zu finden sind zurück gegeben.

Webservice - e-Rechnung.gv.at (2024)
Top Articles
Mikayla Campinos News: The Rise Of A Social Media Sensation
Leaked! Mikayla Campinos Scandal: Revelations And Analysis
Where To Go After Howling Pit Code Vein
Skycurve Replacement Mat
Phone Number For Walmart Automotive Department
Craigslist Motorcycles Jacksonville Florida
oklahoma city for sale "new tulsa" - craigslist
Georgia Vehicle Registration Fees Calculator
Geodis Logistic Joliet/Topco
BULLETIN OF ANIMAL HEALTH AND PRODUCTION IN AFRICA
Best Private Elementary Schools In Virginia
Alaska Bücher in der richtigen Reihenfolge
Valentina Gonzalez Leaked Videos And Images - EroThots
Enderal:Ausrüstung – Sureai
Quest Beyondtrustcloud.com
What Happened To Anna Citron Lansky
Echat Fr Review Pc Retailer In Qatar Prestige Pc Providers – Alpha Marine Group
Roster Resource Orioles
Craigslist West Valley
Gayla Glenn Harris County Texas Update
Jeff Now Phone Number
Best Transmission Service Margate
Winco Employee Handbook 2022
Seeking Arrangements Boston
Loslaten met de Sedona methode
Play Tetris Mind Bender
Craigslist Lake Charles
Papa Johns Mear Me
Catchvideo Chrome Extension
Gen 50 Kjv
Speechwire Login
Yayo - RimWorld Wiki
897 W Valley Blvd
Southtown 101 Menu
Craigslist Ludington Michigan
Directions To 401 East Chestnut Street Louisville Kentucky
Aliciabibs
Henry County Illuminate
Game8 Silver Wolf
Wayne State Academica Login
Ferguson Employee Pipeline
Weather Underground Corvallis
Improving curriculum alignment and achieving learning goals by making the curriculum visible | Semantic Scholar
Poe Self Chill
Patricia And Aaron Toro
FedEx Authorized ShipCenter - Edouard Pack And Ship at Cape Coral, FL - 2301 Del Prado Blvd Ste 690 33990
Backpage New York | massage in New York, New York
Lesson 5 Homework 4.5 Answer Key
Craiglist.nj
Noelleleyva Leaks
Bones And All Showtimes Near Emagine Canton
4015 Ballinger Rd Martinsville In 46151
Latest Posts
Article information

Author: Lidia Grady

Last Updated:

Views: 6235

Rating: 4.4 / 5 (65 voted)

Reviews: 88% of readers found this page helpful

Author information

Name: Lidia Grady

Birthday: 1992-01-22

Address: Suite 493 356 Dale Fall, New Wanda, RI 52485

Phone: +29914464387516

Job: Customer Engineer

Hobby: Cryptography, Writing, Dowsing, Stand-up comedy, Calligraphy, Web surfing, Ghost hunting

Introduction: My name is Lidia Grady, I am a thankful, fine, glamorous, lucky, lively, pleasant, shiny person who loves writing and wants to share my knowledge and understanding with you.