WebService DokumentenĂĽbertragung 1.x

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

http://service.itek-invoice.de/types2

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

http://service.itek-invoice.de/types2

type

normalizedString

source

<element name="CustomerNumber" type="normalizedString"/>

element Authentification/Login

diagram

namespace

http://service.itek-invoice.de/types2

type

normalizedString

source

<element name="Login" type="normalizedString"/>

element Authentification/Password

diagram

namespace

http://service.itek-invoice.de/types2

type

normalizedString

source

<element name="Password" type="normalizedString"/>

element DocumentNumber

diagram

namespace

http://service.itek-invoice.de/types2

type

normalizedString

source

<element name="DocumentNumber" type="normalizedString"/>

element DocumentType

diagram

namespace

http://service.itek-invoice.de/types2

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

http://service.itek-invoice.de/types2

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

http://service.itek-invoice.de/types2

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

http://service.itek-invoice.de/types2

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

http://service.itek-invoice.de/types2

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

http://service.itek-invoice.de/types2

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

http://service.itek-invoice.de/types2

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

http://service.itek-invoice.de/types2

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

http://service.itek-invoice.de/types2

type

string

source

<element name="DocumentName" type="string"/>

element getNextDocumentResponse/Document/DocumentContent

diagram

namespace

http://service.itek-invoice.de/types2

type

base64Binary

source

<element name="DocumentContent" type="base64Binary"/>

element Message

diagram

namespace

http://service.itek-invoice.de/types2

type

normalizedString

source

<element name="Message" type="normalizedString"/>

element sendDocumentAcknowledgement

diagram

namespace

http://service.itek-invoice.de/types2

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

http://service.itek-invoice.de/types2

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

http://service.itek-invoice.de/types2

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

http://service.itek-invoice.de/types2

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

http://service.itek-invoice.de/types2

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