Zielsetzung
Die Übertragung der ZUGFeRD Rechnung soll via Web-Service ermöglicht werden. Innerhalb des Web-Service sollen Methoden zum Abruf der Rechnung und zur Quittung des Empfangs der Rechnung enthalten sein. Der Web Service ist so gestaltet, dass in der Zukunft auch andere Dokumenttypen und Formate übertragen werden können, ohne die Grundstruktur ändern zu müssen.
Rahmenbedingungen
Es wird immer das nächste Dokument (z. B. Rechnung) von angegebenem Typen, Format und Formatversion angefragt. Innerhalb der Übertragung werden alle zur Identifizierung des Dokuments erforderlichen Informationen als Angaben (z. B. Rechnungsnummer) im Web-Service übertragen.
Liegt keine Dokumente für die Kombination Typ, Format und Formatversion vor, wird ein entsprechender Status übertragen.
Die Bestätigung des Empfangs erfolgt pro Dokument unter Angabe der Dokumentennummer (z. B. Rechnungsnummer). Wird der Empfang bestätigt, wird das Dokument nicht erneut übertragen.
Der Empfang eines Dokuments soll wie folgt bestätigt werden:
Erfolgreich: Übertragung erfolgreich, Daten syntaktisch korrekt
Fehlerhaft: Übertragung erfolgreich, Daten syntaktisch nicht korrekt.
Erfolgt eine erneute Anfrage, ohne dass der Empfang des zuletzt übertragenen Dokuments gesendet wurde, wird dies erneut übertragen.
Eine eigene Verschlüsselung der Daten innerhalb der Übertragung erfolgt nicht. Die Sicherung der Übertragung erfolgt über die Nutzung des HTTPS Protokolls.
Web-Service
getNextDocument
Über die Anfrage wird das „nächste“ Dokument angefordert.
Request
Als Eingangsparameter werden die Daten zur Spezifizierung des Dokuments übertragen.
· Format
· FormatVersion
· DocumentType
Weiterhin werden die Daten zur Authentifizierung des Anwenders mit CustomerNumber, Login und Password übertragen.
Response
In der Antwort werden folgende Fälle unterschieden:
Übertragung eines Dokuments
Es liegt kein Dokument vor
Fehler bei der Authentifizierung
Fehler beim angefragten Dokumenttyp
Fehler beim angefragten Format
Fehler bei der angefragten Formatversion
Allgemeine Fehler
Für die einzelnen Fälle wird der entsprechende Status bzw. die Fault Message übertragen.
Für den Fall, dass ein Dokument vorliegt, erfolgt die Übertragung der eigentlichen Datei im angefragten Format und Version im Element „Document“. Zusätzlich wird der Dateiname des Dokuments und die Dokumentennummer übertragen.
sendDocumentAcknowledgement
Request
Als Eingangsparameter werden die Daten zur Authentifizierung des Anwenders mit CustomerNumber, Login und Password übertragen. Zusätzlich werden die Daten zur Identifizierung des Dokuments und der zu übertragende Status übertragen.
· Format
· FormatVersion
· DocumentType
· DocumentNumber
· AcknowledgeState
Response
In der Antwort werden folgende Fälle unterschieden:
Quittung angenommen
Kein Dokument mit den identifizierenden Daten vorhanden
Fehler bei der Authentifizierung
Fehler beim angefragten Dokumenttyp
Fehler beim angefragten Format
Fehler bei der angefragten Formatversion
Allgemeine Fehler
Für die einzelnen Fälle wird der entsprechende Status bzw. die Fault Message übertragen.
Anhang
element Authentification
diagram | |
namespace | |
source | <element name="Authentification"> <complexType> <sequence> <element name="CustomerNumber" type="normalizedString"/> <element name="Login" type="normalizedString"/> <element name="Password" type="normalizedString"/> </sequence> </complexType> </element> |
element Authentification/CustomerNumber
diagram | |
namespace | |
type | normalizedString |
source | <element name="CustomerNumber" type="normalizedString"/> |
element Authentification/Login
diagram | |
namespace | |
type | normalizedString |
source | <element name="Login" type="normalizedString"/> |
element Authentification/Password
diagram | |
namespace | |
type | normalizedString |
source | <element name="Password" type="normalizedString"/> |
element DocumentNumber
diagram | |
namespace | |
type | normalizedString |
source | <element name="DocumentNumber" type="normalizedString"/> |
element DocumentType
diagram | |
namespace | |
type | restriction of normalizedString |
facets | minLength 1 maxLength 50 pattern INVOIC|\w{1,50} |
source | <element name="DocumentType"> <simpleType> <restriction base="normalizedString"> <minLength value="1"/> <maxLength value="50"/> <pattern value="INVOIC|\w{1,50}"/> </restriction> </simpleType> </element> |
element Format
diagram | |
namespace | |
type | restriction of normalizedString |
facets | minLength 1 maxLength 50 pattern ZUGFeRD|\w{1,50} |
source | <element name="Format"> <simpleType> <restriction base="normalizedString"> <minLength value="1"/> <maxLength value="50"/> <pattern value="ZUGFeRD|\w{1,50}"/> </restriction> </simpleType> </element> |
element FormatVersion
diagram | |
namespace | |
type | restriction of normalizedString |
facets | minLength 1 maxLength 50 pattern 1|\w{1,50} |
source | <element name="FormatVersion"> <simpleType> <restriction base="normalizedString"> <minLength value="1"/> <maxLength value="50"/> <pattern value="1|\w{1,50}"/> </restriction> </simpleType> </element> |
element getNextDocument
diagram | |
namespace | |
source | <element name="getNextDocument"> <complexType> <sequence> <element ref="tns:Format"/> <element ref="tns:FormatVersion"/> <element ref="tns:DocumentType"/> <element ref="tns:Authentification"/> </sequence> </complexType> </element> |
element getNextDocumentResponse
diagram | |
namespace | |
source | <element name="getNextDocumentResponse"> <complexType> <sequence> <element name="NextDocumentStatus"> <complexType> <sequence> <element name="Code"> <simpleType> <restriction base="string"> <enumeration value="0"/> <enumeration value="1"/> </restriction> </simpleType> </element> <element ref="tns:Message"/> </sequence> </complexType> </element> <element name="Document" minOccurs="0"> <complexType> <sequence> <element ref="tns:Format"/> <element ref="tns:FormatVersion"/> <element ref="tns:DocumentType"/> <element ref="tns:DocumentNumber"/> <element name="DocumentName" type="string"/> <element name="DocumentContent" type="base64Binary"/> </sequence> </complexType> </element> </sequence> </complexType> </element> |
element getNextDocumentResponse/NextDocumentStatus
diagram | |
namespace | |
source | <element name="NextDocumentStatus"> <complexType> <sequence> <element name="Code"> <simpleType> <restriction base="string"> <enumeration value="0"/> <enumeration value="1"/> </restriction> </simpleType> </element> <element ref="tns:Message"/> </sequence> </complexType> </element> |
element getNextDocumentResponse/NextDocumentStatus/Code
diagram | |
namespace | |
type | restriction of string |
facets | enumeration 0 enumeration 1 |
source | <element name="Code"> <simpleType> <restriction base="string"> <enumeration value="0"/> <enumeration value="1"/> </restriction> </simpleType> </element> |
element getNextDocumentResponse/Document
diagram | |
namespace | |
source | <element name="Document" minOccurs="0"> <complexType> <sequence> <element ref="tns:Format"/> <element ref="tns:FormatVersion"/> <element ref="tns:DocumentType"/> <element ref="tns:DocumentNumber"/> <element name="DocumentName" type="string"/> <element name="DocumentContent" type="base64Binary"/> </sequence> </complexType> </element> |
element getNextDocumentResponse/Document/DocumentName
diagram | |
namespace | |
type | string |
source | <element name="DocumentName" type="string"/> |
element getNextDocumentResponse/Document/DocumentContent
diagram | |
namespace | |
type | base64Binary |
source | <element name="DocumentContent" type="base64Binary"/> |
element Message
diagram | |
namespace | |
type | normalizedString |
source | <element name="Message" type="normalizedString"/> |
element sendDocumentAcknowledgement
diagram | |
namespace | |
source | <element name="sendDocumentAcknowledgement"> <complexType> <sequence> <element ref="tns:Format"/> <element ref="tns:FormatVersion"/> <element ref="tns:DocumentType"/> <element ref="tns:Authentification"/> <element name="DocumentReference"> <complexType> <sequence> <element ref="tns:DocumentNumber"/> <element name="AcknowledgeState"> <simpleType> <restriction base="string"> <enumeration value="0"/> <enumeration value="1"/> </restriction> </simpleType> </element> </sequence> </complexType> </element> </sequence> </complexType> </element> |
element sendDocumentAcknowledgement/DocumentReference
diagram | |
namespace | |
source | <element name="DocumentReference"> <complexType> <sequence> <element ref="tns:DocumentNumber"/> <element name="AcknowledgeState"> <simpleType> <restriction base="string"> <enumeration value="0"/> <enumeration value="1"/> </restriction> </simpleType> </element> </sequence> </complexType> </element> |
element sendDocumentAcknowledgement/DocumentReference/AcknowledgeState
diagram | |
namespace | |
type | restriction of string |
facets | enumeration 0 enumeration 1 |
source | <element name="AcknowledgeState"> <simpleType> <restriction base="string"> <enumeration value="0"/> <enumeration value="1"/> </restriction> </simpleType> </element> |
element sendDocumentAcknowledgementResponse
diagram | |
namespace | |
source | <element name="sendDocumentAcknowledgementResponse"> <complexType> <sequence> <element name="Code"> <simpleType> <restriction base="string"> <enumeration value="0"/> <enumeration value="1"/> </restriction> </simpleType> </element> <element ref="tns:Message"/> </sequence> </complexType> </element> |
element sendDocumentAcknowledgementResponse/Code
diagram | |
namespace | |
type | restriction of string |
facets | enumeration 0 enumeration 1 |
source | <element name="Code"> <simpleType> <restriction base="string"> <enumeration value="0"/> <enumeration value="1"/> </restriction> </simpleType> </element> |
WSDL
Webservice.zip
7 KB