Tax Filing Service

<back to all web services

ProtokollRequest17

SyncDatenabholungVerarbeitungsprotokolle

Represents the service request to retrieve logs about a specified tax assessement.

Requires Authentication
The following routes are available for this service:
POST/datenabholungen/protokolle/17/verarbeitungsprotokoll
import Foundation
import ServiceStack

/**
* Represents the service request to retrieve logs about a specified tax assessement.
*/
// @Api(Description="Represents the service request to retrieve logs about a specified tax assessement.")
public class ProtokollRequest17 : ProtokollRequestBase17
{
    /**
    * The tax assessement, whose processing records shall be obtained.
    */
    // @ApiMember(Description="The tax assessement, whose processing records shall be obtained.", Name="Bescheid")
    public var bescheid:Abholung17

    /**
    * The authentification certificate.
    */
    // @ApiMember(Description="The authentification certificate.", IsRequired=true, Name="Zertifikat")
    public var zertifikat:PortalCertificate

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case bescheid
        case zertifikat
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        bescheid = try container.decodeIfPresent(Abholung17.self, forKey: .bescheid)
        zertifikat = try container.decodeIfPresent(PortalCertificate.self, forKey: .zertifikat)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if bescheid != nil { try container.encode(bescheid, forKey: .bescheid) }
        if zertifikat != nil { try container.encode(zertifikat, forKey: .zertifikat) }
    }
}

/**
* Represents a base service request to retrieve logs about a specified tax assessement.
*/
// @Api(Description="Represents a base service request to retrieve logs about a specified tax assessement.")
public class ProtokollRequestBase17 : ProtokollRequestBase
{
    /**
    * The tax assessement, whose processing records shall be obtained.
    */
    // @ApiMember(Description="The tax assessement, whose processing records shall be obtained.", Name="Bescheid")
    public var bescheid:Abholung17

    /**
    * The authentification certificate.
    */
    // @ApiMember(Description="The authentification certificate.", IsRequired=true, Name="Zertifikat")
    public var zertifikat:PortalCertificate

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case bescheid
        case zertifikat
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        bescheid = try container.decodeIfPresent(Abholung17.self, forKey: .bescheid)
        zertifikat = try container.decodeIfPresent(PortalCertificate.self, forKey: .zertifikat)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if bescheid != nil { try container.encode(bescheid, forKey: .bescheid) }
        if zertifikat != nil { try container.encode(zertifikat, forKey: .zertifikat) }
    }
}

/**
* Represents a base service request to retrieve processing records from a specified tax assessement.
*/
// @Api(Description="Represents a base service request to retrieve processing records from a specified tax assessement.")
public class ProtokollRequestBase : IPost, Codable
{
    /**
    * The authentification certificate.
    */
    // @ApiMember(Description="The authentification certificate.", IsRequired=true, Name="Zertifikat")
    public var zertifikat:PortalCertificate

    required public init(){}
}

/**
* Represents a portal certificate that is protected by a password.
*/
// @Api(Description="Represents a portal certificate that is protected by a password.")
public class PortalCertificate : FileBase, ISecuredCertificate, IHasIndex
{
    /**
    * The unique identifier of the certificate.
    */
    // @ApiMember(Description="The unique identifier of the certificate.")
    public var id:String

    /**
    * The position of the certificate element in an indexed collection of certificates.
    */
    // @ApiMember(Description="The position of the certificate element in an indexed collection of certificates.")
    public var index:Int

    /**
    * The password to protect the certificate from unauthorized access.
    */
    // @StringLength(255)
    // @ApiMember(Description="The password to protect the certificate from unauthorized access.")
    public var pin:String

    /**
    * The description of the certificate.
    */
    // @StringLength(Int32.max)
    // @ApiMember(Description="The description of the certificate.")
    public var Description:String

    /**
    * Tags that can be used to label or identify the certificate.
    */
    // @ApiMember(Description="Tags that can be used to label or identify the certificate.")
    public var tags:[String] = []

    /**
    * Gets or sets the file name of the certificate.
    */
    // @ApiMember(Description="Gets or sets the file name of the certificate.")
    public var name:String

    /**
    * The raw data content of the file.
    */
    // @ApiMember(Description="The raw data content of the file.", Name="Content")
    public var content:[UInt8] = []

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case id
        case index
        case pin
        case Description
        case tags
        case name
        case content
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        id = try container.decodeIfPresent(String.self, forKey: .id)
        index = try container.decodeIfPresent(Int.self, forKey: .index)
        pin = try container.decodeIfPresent(String.self, forKey: .pin)
        Description = try container.decodeIfPresent(String.self, forKey: .Description)
        tags = try container.decodeIfPresent([String].self, forKey: .tags) ?? []
        name = try container.decodeIfPresent(String.self, forKey: .name)
        content = try container.decodeIfPresent([UInt8].self, forKey: .content) ?? []
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if id != nil { try container.encode(id, forKey: .id) }
        if index != nil { try container.encode(index, forKey: .index) }
        if pin != nil { try container.encode(pin, forKey: .pin) }
        if Description != nil { try container.encode(Description, forKey: .Description) }
        if tags.count > 0 { try container.encode(tags, forKey: .tags) }
        if name != nil { try container.encode(name, forKey: .name) }
        if content.count > 0 { try container.encode(content, forKey: .content) }
    }
}

/**
* Represents a base class for a file with raw data.
*/
// @Api(Description="Represents a base class for a file with raw data.")
public class FileBase : Codable
{
    /**
    * The raw data content of the file.
    */
    // @ApiMember(Description="The raw data content of the file.", Name="Content")
    public var content:[UInt8] = []

    required public init(){}
}

/**
* Represents a request to retrieve data records by means of one or more IDs.
*/
// @Api(Description="Represents a request to retrieve data records by means of one or more IDs.")
public class Abholung17 : Abholung
{
    /**
    * The tax type (e.g. ESB) of the data record.
    */
    // @ApiMember(Description="The tax type (e.g. ESB) of the data record.")
    public var steuerart:Steuerart?

    /**
    * The meta information of the identifier.
    */
    // @ApiMember(Description="The meta information of the identifier.")
    public var metaInformationen:MetaInformationen17

    /**
    * Die Transfertickets der Datensaetze. Es duerfen max. 100 Bereitstellungstickets in einem Request angegeben werden.
    */
    // @ApiMember(Description="Die Transfertickets der Datensaetze. Es duerfen max. 100 Bereitstellungstickets in einem Request angegeben werden.")
    public var bereitstellungsticket:String

    /**
    * The attachments of the data records.
    */
    // @ApiMember(Description="The attachments of the data records.")
    public var anhaenge:Anhaenge17

    /**
    * The identifier of the data record.
    */
    // @ApiMember(Description="The identifier of the data record.")
    public var id:String

    /**
    * The ID number of the receipt owner. This attribute is only required for the tax type 'ElsterVaStDaten'.
    */
    // @ApiMember(Description="The ID number of the receipt owner. This attribute is only required for the tax type 'ElsterVaStDaten'.")
    public var idnr:String

    /**
    * The assessment year (YYYY) of the receipt. This attribute is only required for the tax type 'ElsterVaStDaten'.
    */
    // @ApiMember(Description="The assessment year (YYYY) of the receipt. This attribute is only required for the tax type 'ElsterVaStDaten'.")
    public var veranlagungsjahr:Int?

    /**
    * The transmission path used.
    */
    // @ApiMember(Description="The transmission path used.")
    public var uebertragungsweg:Uebertragungsweg?

    /**
    * The character encoding of the data record (e.g. ISO-8859-15). The exception is the data type ElsterVaStDaten, here we submit KEIN ENCODING.
    */
    // @ApiMember(Description="The character encoding of the data record (e.g. ISO-8859-15). The exception is the data type ElsterVaStDaten, here we submit KEIN ENCODING.")
    public var encoding:String

    /**
    * The client number; only applicable to the tax type 'ElsterDIVADaten'.
    */
    // @ApiMember(Description="The client number; only applicable to the tax type 'ElsterDIVADaten'.")
    public var mandantennummer:String

    /**
    * The tax number; only applicable to the tax type 'ElsterDIVADaten'.
    */
    // @ApiMember(Description="The tax number; only applicable to the tax type 'ElsterDIVADaten'.")
    public var steuernummer:String

    /**
    * The asessment date; only applicable to the tax type 'ElsterDIVADaten'.
    */
    // @ApiMember(Description="The asessment date; only applicable to the tax type 'ElsterDIVADaten'.")
    public var bescheiddatum:Date?

    /**
    * Das Datenpaket angeforderter Datensaetze. Nur bei der Direktsendung ueber das ERiClet.
    */
    // @ApiMember(Description="Das Datenpaket angeforderter Datensaetze. Nur bei der Direktsendung ueber das ERiClet.")
    public var datenpaket:Datenpaket

    /**
    * Download requested data records.  Ensure the second payload data block  is empty for bulk retrieval operations.
    */
    // @ApiMember(Description="Download requested data records.  Ensure the second payload data block  is empty for bulk retrieval operations.")
    public var download:Download

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case steuerart
        case metaInformationen
        case bereitstellungsticket
        case anhaenge
        case id
        case idnr
        case veranlagungsjahr
        case uebertragungsweg
        case encoding
        case mandantennummer
        case steuernummer
        case bescheiddatum
        case datenpaket
        case download
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        steuerart = try container.decodeIfPresent(Steuerart.self, forKey: .steuerart)
        metaInformationen = try container.decodeIfPresent(MetaInformationen17.self, forKey: .metaInformationen)
        bereitstellungsticket = try container.decodeIfPresent(String.self, forKey: .bereitstellungsticket)
        anhaenge = try container.decodeIfPresent(Anhaenge17.self, forKey: .anhaenge)
        id = try container.decodeIfPresent(String.self, forKey: .id)
        idnr = try container.decodeIfPresent(String.self, forKey: .idnr)
        veranlagungsjahr = try container.decodeIfPresent(Int.self, forKey: .veranlagungsjahr)
        uebertragungsweg = try container.decodeIfPresent(Uebertragungsweg.self, forKey: .uebertragungsweg)
        encoding = try container.decodeIfPresent(String.self, forKey: .encoding)
        mandantennummer = try container.decodeIfPresent(String.self, forKey: .mandantennummer)
        steuernummer = try container.decodeIfPresent(String.self, forKey: .steuernummer)
        bescheiddatum = try container.decodeIfPresent(Date.self, forKey: .bescheiddatum)
        datenpaket = try container.decodeIfPresent(Datenpaket.self, forKey: .datenpaket)
        download = try container.decodeIfPresent(Download.self, forKey: .download)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if steuerart != nil { try container.encode(steuerart, forKey: .steuerart) }
        if metaInformationen != nil { try container.encode(metaInformationen, forKey: .metaInformationen) }
        if bereitstellungsticket != nil { try container.encode(bereitstellungsticket, forKey: .bereitstellungsticket) }
        if anhaenge != nil { try container.encode(anhaenge, forKey: .anhaenge) }
        if id != nil { try container.encode(id, forKey: .id) }
        if idnr != nil { try container.encode(idnr, forKey: .idnr) }
        if veranlagungsjahr != nil { try container.encode(veranlagungsjahr, forKey: .veranlagungsjahr) }
        if uebertragungsweg != nil { try container.encode(uebertragungsweg, forKey: .uebertragungsweg) }
        if encoding != nil { try container.encode(encoding, forKey: .encoding) }
        if mandantennummer != nil { try container.encode(mandantennummer, forKey: .mandantennummer) }
        if steuernummer != nil { try container.encode(steuernummer, forKey: .steuernummer) }
        if bescheiddatum != nil { try container.encode(bescheiddatum, forKey: .bescheiddatum) }
        if datenpaket != nil { try container.encode(datenpaket, forKey: .datenpaket) }
        if download != nil { try container.encode(download, forKey: .download) }
    }
}

/**
* Represents the request to retrieve tax assessments by means of a specfied ID.
*/
// @Api(Description="Represents the request to retrieve tax assessments by means of a specfied ID.")
public class Abholung : Codable
{
    /**
    * The identifier of the data record.
    */
    // @ApiMember(Description="The identifier of the data record.")
    public var id:String

    /**
    * The ID number of the receipt owner. This attribute is only required for the tax type 'ElsterVaStDaten'.
    */
    // @ApiMember(Description="The ID number of the receipt owner. This attribute is only required for the tax type 'ElsterVaStDaten'.")
    public var idnr:String

    /**
    * The assessment year (YYYY) of the receipt. This attribute is only required for the tax type 'ElsterVaStDaten'.
    */
    // @ApiMember(Description="The assessment year (YYYY) of the receipt. This attribute is only required for the tax type 'ElsterVaStDaten'.")
    public var veranlagungsjahr:Int?

    /**
    * The transmission path used.
    */
    // @ApiMember(Description="The transmission path used.")
    public var uebertragungsweg:Uebertragungsweg?

    /**
    * The character encoding of the data record (e.g. ISO-8859-15). The exception is the data type ElsterVaStDaten, here we submit KEIN ENCODING.
    */
    // @ApiMember(Description="The character encoding of the data record (e.g. ISO-8859-15). The exception is the data type ElsterVaStDaten, here we submit KEIN ENCODING.")
    public var encoding:String

    /**
    * The client number; only applicable to the tax type 'ElsterDIVADaten'.
    */
    // @ApiMember(Description="The client number; only applicable to the tax type 'ElsterDIVADaten'.")
    public var mandantennummer:String

    /**
    * The tax number; only applicable to the tax type 'ElsterDIVADaten'.
    */
    // @ApiMember(Description="The tax number; only applicable to the tax type 'ElsterDIVADaten'.")
    public var steuernummer:String

    /**
    * The asessment date; only applicable to the tax type 'ElsterDIVADaten'.
    */
    // @ApiMember(Description="The asessment date; only applicable to the tax type 'ElsterDIVADaten'.")
    public var bescheiddatum:Date?

    /**
    * Das Datenpaket angeforderter Datensaetze. Nur bei der Direktsendung ueber das ERiClet.
    */
    // @ApiMember(Description="Das Datenpaket angeforderter Datensaetze. Nur bei der Direktsendung ueber das ERiClet.")
    public var datenpaket:Datenpaket

    /**
    * Download requested data records.  Ensure the second payload data block  is empty for bulk retrieval operations.
    */
    // @ApiMember(Description="Download requested data records.  Ensure the second payload data block  is empty for bulk retrieval operations.")
    public var download:Download

    required public init(){}
}

/**
* Represents the transmission path.
*/
public enum Uebertragungsweg : String, Codable
{
    case direkt
    case link
    case sammellink
}

/**
* The data packet from the retrieval operation.
*/
// @Api(Description="The data packet from the retrieval operation.")
public class Datenpaket : Codable
{
    /**
    * Encoded (compressed and encrypted) requested data record
    */
    // @ApiMember(Description="Encoded (compressed and encrypted) requested data record")
    public var value:String

    required public init(){}
}

/**
* Represents the download of requested records. The downloaded content from the web server takes place: a) with https b) on port 443 c) on datenabholung1.elster.de or datenabholung2.elster.de. The HTTP Basic Authentication mechanism according to RFC 2617 is used for authentication.
*/
// @Api(Description="Represents the download of requested records. The downloaded content from the web server takes place: a) with https b) on port 443 c) on datenabholung1.elster.de or datenabholung2.elster.de. The HTTP Basic Authentication mechanism according to RFC 2617 is used for authentication.")
public class Download : Codable
{
    /**
    * The link to the data on the web server.
    */
    // @ApiMember(Description="The link to the data on the web server.")
    public var url:String

    /**
    * The user name for the web server.
    */
    // @ApiMember(Description="The user name for the web server.")
    public var benutzer:String

    /**
    * Password for the web server.
    */
    // @ApiMember(Description="Password for the web server.")
    public var passwort:String

    required public init(){}
}

/**
* Represents the various tax types for the retrieval of data.
*/
public enum Steuerart : String, Codable
{
    case ESB
    case GSB
    case USB
    case EPBescheid
    case EPMitteilung
    case Gewerbesteuerbescheid
    case Gewerbesteuermitteilung
    case GEWMB
    case DIVAAnzeigeEinerLotterie
    case DIVABescheid
    case DivaBescheidESt
    case DIVABuchmachersteuer
    case DIVALotteriesteuerEinmal
    case DIVALotteriesteuerMehr
    case DIVASportwettensteuer
    case DIVATotalisator
    case OZGBescheid
    case VerbindlicheAuskunft
    case VerbindlicheZusage
    case DivaSonstigerVA
    case DivaBescheidErbSt
    case DivaBescheidFEIN
    case DivaBescheidGewSt
    case DivaBescheidKSt
    case DivaBescheidUSt
    case DivaBescheidSchenkSt
    case DIVATroncabgabe
    case DIVAVirtuelleAutomatenStB
    case DIVAOnlinePokerStB
    case LStHVVMRM
    case EinlagenrueckgewaehrVA
    case FTTMeldungVA
    case StatusInvStGVA
    case UStVEUVA
    case VERSVA
    case AltZertVA
    case KapEStEntlastungVA
    case PostUDLVA
    case StAb50aVA
    case StAbEntlastungVA
    case KassenangelegenheitenVA
    case KStOptVA
    case SteueroasenabwehrVA
    case KDBVollmachtRM
    case STBKE
    case VDBKDBRueckmeldungLief
    case AnhangRueckmeldung
    case DivaEinwilligungRM
    case GlueckspielF
    case OZGMitteilung
    case VerbindlicheAuskunftInfoF
    case ELOProtokoll
}

/**
* Represents meta information.
*/
// @Api(Description="Represents meta information.")
public class MetaInformationen17 : Codable
{
    /**
    * List of metadata.
    */
    // @ApiMember(Description="List of metadata.")
    public var meta:[Meta17] = []

    /**
    * List of meta infomation maps.
    */
    // @ApiMember(Description="List of meta infomation maps.")
    public var metaInfoMaps:MetaInfoMaps17

    required public init(){}
}

/**
* Represents the metadata of a data record.
*/
// @Api(Description="Represents the metadata of a data record.")
public class Meta17 : Codable
{
    /**
    * The type of metadata, e.g. datei [file]
    */
    // @ApiMember(Description="The type of metadata, e.g. datei [file]")
    public var name:String

    /**
    * The encoding of the metadata (text or base64)
    */
    // @ApiMember(Description="The encoding of the metadata (text or base64)")
    public var coding:Coding?

    /**
    * The content of the metadata
    */
    // @ApiMember(Description="The content of the metadata")
    public var value:String

    required public init(){}
}

/**
* Specifies the encoding of the metadata.
*/
public enum Coding : String, Codable
{
    case text
    case base64
}

/**
* Represents a list of meta information maps.
*/
public class MetaInfoMaps17 : Codable
{
    required public init(){}
}

/**
* Represents a list of attachments.
*/
public class Anhaenge17 : Codable
{
    required public init(){}
}

/**
* Represents a type that encapulates the processing records of a tax statement.
*/
// @Api(Description="Represents a type that encapulates the processing records of a tax statement.")
public class ProtokollResponse : ServiceReponseBase
{
    /**
    * The processing record of a tax statement.
    */
    // @ApiMember(Description="The processing record of a tax statement.", Name="Protokoll")
    public var protokoll:Protokoll06

    /**
    * The unique identifier of the response.
    */
    // @ApiMember(Description="The unique identifier of the response.", Name="Id")
    public var id:String

    /**
    * The position of the response element in an indexed collection.
    */
    // @ApiMember(Description="The position of the response element in an indexed collection.", Name="Index")
    public var index:Int

    /**
    * Metadata that contains structured error information on the service response.
    */
    // @ApiMember(Description="Metadata that contains structured error information on the service response.", Name="ResponseStatus")
    public var responseStatus:ResponseStatus

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case protokoll
        case id
        case index
        case responseStatus
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        protokoll = try container.decodeIfPresent(Protokoll06.self, forKey: .protokoll)
        id = try container.decodeIfPresent(String.self, forKey: .id)
        index = try container.decodeIfPresent(Int.self, forKey: .index)
        responseStatus = try container.decodeIfPresent(ResponseStatus.self, forKey: .responseStatus)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if protokoll != nil { try container.encode(protokoll, forKey: .protokoll) }
        if id != nil { try container.encode(id, forKey: .id) }
        if index != nil { try container.encode(index, forKey: .index) }
        if responseStatus != nil { try container.encode(responseStatus, forKey: .responseStatus) }
    }
}

/**
* Specifies a service response from an ERiC service operation.
*/
// @Api(Description="Specifies a service response from an ERiC service operation.")
public class ServiceReponseBase : IHasIndex, Codable
{
    /**
    * The unique identifier of the response.
    */
    // @ApiMember(Description="The unique identifier of the response.", Name="Id")
    public var id:String

    /**
    * The position of the response element in an indexed collection.
    */
    // @ApiMember(Description="The position of the response element in an indexed collection.", Name="Index")
    public var index:Int

    /**
    * Metadata that contains structured error information on the service response.
    */
    // @ApiMember(Description="Metadata that contains structured error information on the service response.", Name="ResponseStatus")
    public var responseStatus:ResponseStatus

    required public init(){}
}

/**
* Das Verarbeitungsprotokoll einer Datenabholungsprozesses.
*/
// @Api(Description="Das Verarbeitungsprotokoll einer Datenabholungsprozesses.")
public class Protokoll06 : Codable
{
    /**
    * Version des Protokolls.
    */
    // @ApiMember(Description="Version des Protokolls.", Name="Version")
    public var version:Int?

    /**
    * Der Zeitstempel der Protokoll-Aufbereitung. Es wird der Zeitstempel der serverseitigen Verarbeitung der Protokollanfrage zurück übermittelt. Das String-Format des ZeitStempels lautet: JJJJMMTThhmmss.
    */
    // @ApiMember(Description="Der Zeitstempel der Protokoll-Aufbereitung. Es wird der Zeitstempel der serverseitigen Verarbeitung der Protokollanfrage zurück übermittelt. Das String-Format des ZeitStempels lautet: JJJJMMTThhmmss.", Name="ZeitStempel")
    public var zeitStempel:Date?

    /**
    * Der Datenteil des Protokolls.
    */
    // @ApiMember(Description="Der Datenteil des Protokolls.", Name="DatenTeil")
    public var datenTeil:DatenTeil06

    required public init(){}
}

/**
* Stellt den Datenteil eines Protokolls dar.
*/
// @Api(Description="Stellt den Datenteil eines Protokolls dar.")
public class DatenTeil06 : Codable
{
    /**
    * Das Transferticket der Datenlieferung.
    */
    // @ApiMember(Description="Das Transferticket der Datenlieferung.")
    public var transferTicket:String

    /**
    * Der Statuscode zur gesamten Datenlieferung. 0 (Datenlieferung ok - Alle Datensätze konnten verarbeitet werden). 1 (Es sind Fehler aufgetreten - die Nutzdatenblöcke konnten nur teilweise verarbeitet werden). 2 (Datenlieferung konnte gar nicht verarbeitet werden - alle Nutzdatenblöcke fehlerhaft). 3 (Datenlieferung wurde noch nicht verarbeitet - bitte fordern Sie das Protokoll noch mal zu einen späteren Zeitpunkt an; für Onlinebetrieb relevant).
    */
    // @ApiMember(Description="Der Statuscode zur gesamten Datenlieferung. 0 (Datenlieferung ok - Alle Datensätze konnten verarbeitet werden). 1 (Es sind Fehler aufgetreten - die Nutzdatenblöcke konnten nur teilweise verarbeitet werden). 2 (Datenlieferung konnte gar nicht verarbeitet werden - alle Nutzdatenblöcke fehlerhaft). 3 (Datenlieferung wurde noch nicht verarbeitet - bitte fordern Sie das Protokoll noch mal zu einen späteren Zeitpunkt an; für Onlinebetrieb relevant).")
    public var code:Int?

    /**
    * Der Datenteil des Protokolls.Datenlieferung ok - Alle Datensätze konnten verarbeitet werden. Es sind Fehler aufgetreten - die Nutzdatenblöcke konnten nur teilweise verarbeitet werden. Datenlieferung konnte gar nicht verarbeitet werden - alle Nutzdatenblöcke fehlerhaft. 3Datenlieferung wurde noch nicht verarbeitet - bitte fordern Sie das Protokoll noch mal zu einen späteren Zeitpunkt an; für Onlinebetrieb relevant.
    */
    // @ApiMember(Description="Der Datenteil des Protokolls.Datenlieferung ok - Alle Datensätze konnten verarbeitet werden. Es sind Fehler aufgetreten - die Nutzdatenblöcke konnten nur teilweise verarbeitet werden. Datenlieferung konnte gar nicht verarbeitet werden - alle Nutzdatenblöcke fehlerhaft. 3Datenlieferung wurde noch nicht verarbeitet - bitte fordern Sie das Protokoll noch mal zu einen späteren Zeitpunkt an; für Onlinebetrieb relevant.")
    public var text:String

    /**
    * Der Datenteil des Protokolls.
    */
    // @ApiMember(Description="Der Datenteil des Protokolls.")
    public var nutzdatenbloecke:[Nutzdatenblock06] = []

    required public init(){}
}

/**
* Stellt ein Element eines Nutztdatenblockes dar.
*/
// @Api(Description="Stellt ein Element eines Nutztdatenblockes dar.")
public class Nutzdatenblock06 : Codable
{
    /**
    * Über das Nutzdatenticket im Verarbeitungsprotokoll wird der Nutzdatenblock aus der Datenlieferung referenziert.
    */
    // @ApiMember(Description="Über das Nutzdatenticket im Verarbeitungsprotokoll wird der Nutzdatenblock aus der Datenlieferung referenziert.")
    public var nutzdatenTicket:String

    /**
    * Der Statuscode zum Nutzdatenblock.
    */
    // @ApiMember(Description="Der Statuscode zum Nutzdatenblock.")
    public var code:Int?

    /**
    * Der Statustext zum Nutzdatenblock.
    */
    // @ApiMember(Description="Der Statustext zum Nutzdatenblock.")
    public var text:String

    /**
    * Anzahl der Verarbeiteten Nutzdatensätze.
    */
    // @ApiMember(Description="Anzahl der Verarbeiteten Nutzdatensätze.")
    public var verarbeiteteNds:UInt32?

    /**
    * Anzahl der nichtverarbeiteten Nutzdatensätze.
    */
    // @ApiMember(Description="Anzahl der nichtverarbeiteten Nutzdatensätze.")
    public var nichtverarbeiteteNds:UInt32?

    /**
    * Der Datenteil des Protokolls.
    */
    // @ApiMember(Description="Der Datenteil des Protokolls.")
    public var ndSFehler:[NdSFehler06] = []

    required public init(){}
}

/**
* Stellt einen Nutzdatensatz-Fehler dar. Dabei besteht der Fehler aus: - einer laufenden Nummer(Attribut zum NdSFehler)- der KmId (Attribut zum NdSFehler) und/oder dem ordnungsMerkmal (Attribut zum NdSFehler)- einem Fehlernummer (Attribut zum NdSFehler)- einem Fehlertext (Inhalt des Tag NdSFehler)
*/
// @Api(Description="Stellt einen Nutzdatensatz-Fehler dar. Dabei besteht der Fehler aus: - einer laufenden Nummer(Attribut zum NdSFehler)- der KmId (Attribut zum NdSFehler) und/oder dem ordnungsMerkmal (Attribut zum NdSFehler)- einem Fehlernummer (Attribut zum NdSFehler)- einem Fehlertext (Inhalt des Tag NdSFehler)")
public class NdSFehler06 : Codable
{
    /**
    * Die laufende Nummer des fehlerhaften Datensatzes in einem Nutzdatenblock.
    */
    // @ApiMember(Description="Die laufende Nummer des fehlerhaften Datensatzes in einem Nutzdatenblock.", Name="LfdNr")
    public var lfdNr:String

    /**
    * Bei der kmId handelt es sich um die durch den Verfasser vorgegebene KmId des Nutzdatensatzes.
    */
    // @ApiMember(Description="Bei der kmId handelt es sich um die durch den Verfasser vorgegebene KmId des Nutzdatensatzes.", Name="KmId")
    public var kmId:String

    /**
    * Die durch den Verfasser vorgegebene bundesweit eindeutige Identifikation des Nutzdatensatzes (z.B. bei LStB, Lohnersatzleistungen).
    */
    // @ApiMember(Description="Die durch den Verfasser vorgegebene bundesweit eindeutige Identifikation des Nutzdatensatzes (z.B. bei LStB, Lohnersatzleistungen).", Name="OrdnungsMerkmal")
    public var ordnungsMerkmal:String

    /**
    * Es wird die vom Elstersystem für diesen Fehler vergebene Fehlernummer i.d.R. eine 9-stellige Nummer zurückgemeldet.
    */
    // @ApiMember(Description="Es wird die vom Elstersystem für diesen Fehler vergebene Fehlernummer i.d.R. eine 9-stellige Nummer zurückgemeldet.", Name="FehlerNummer")
    public var fehlerNummer:UInt32?

    /**
    * Es wird der vom Elstersystem für diesen Fehler vergebene Fehlertext zurückgemeldet.
    */
    // @ApiMember(Description="Es wird der vom Elstersystem für diesen Fehler vergebene Fehlertext zurückgemeldet.", Name="FehlerText")
    public var fehlerText:String

    required public init(){}
}


Swift ProtokollRequest17 DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /datenabholungen/protokolle/17/verarbeitungsprotokoll HTTP/1.1 
Host: taxfiling.pwc.de 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<ProtokollRequest17 xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/PwC.xEric.Core.Services.Contracts.Datenabholungen.Requests.Protokolle">
  <Zertifikat xmlns:d2p1="http://schemas.datacontract.org/2004/07/PwC.xEric.Core.Domain.Concretes.Models">
    <Content xmlns="http://schemas.datacontract.org/2004/07/PwC.DigitalHub.Utilities.IO.Core.Contracts.Models">AA==</Content>
    <d2p1:Description>String</d2p1:Description>
    <d2p1:Id>00000000-0000-0000-0000-000000000000</d2p1:Id>
    <d2p1:Index>0</d2p1:Index>
    <d2p1:Name>String</d2p1:Name>
    <d2p1:Pin>String</d2p1:Pin>
    <d2p1:Tags xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:string>String</d3p1:string>
    </d2p1:Tags>
  </Zertifikat>
  <Bescheid id="String" idnr="String" veranlagungsjahr="0" uebertragungsweg="direkt" encoding="String" bereitstellungsticket="String">
    <MetaInformationen>
      <Meta art="String" coding="text">String</Meta>
      <MetaInfoMaps>
        <MetaInfoMap typ="String">
          <Meta art="String" coding="text">String</Meta>
        </MetaInfoMap>
      </MetaInfoMaps>
    </MetaInformationen>
    <Datenpaket>String</Datenpaket>
    <Download>
      <Url>String</Url>
      <Benutzer>String</Benutzer>
      <Passwort>String</Passwort>
    </Download>
    <Anhaenge version="0">
      <Anhang>
        <Dateibezeichnung>String</Dateibezeichnung>
        <Dateityp>String</Dateityp>
        <Dateiinhalt>String</Dateiinhalt>
        <MetadatumAnhang>
          <SchluesselAnhang DateibezeichnungID="String" DateibezeichnungKurz="String">String</SchluesselAnhang>
          <WertAnhang DateibezeichnungID="String" DateibezeichnungKurz="String">String</WertAnhang>
        </MetadatumAnhang>
      </Anhang>
    </Anhaenge>
  </Bescheid>
</ProtokollRequest17>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<ProtokollResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/PwC.xEric.Core.Services.Contracts.Datenabholungen.Responses">
  <Id xmlns="http://schemas.datacontract.org/2004/07/PwC.xEric.Core.Services.Contracts.Responses">String</Id>
  <Index xmlns="http://schemas.datacontract.org/2004/07/PwC.xEric.Core.Services.Contracts.Responses">0</Index>
  <ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types" xmlns="http://schemas.datacontract.org/2004/07/PwC.xEric.Core.Services.Contracts.Responses">
    <d2p1:ErrorCode>String</d2p1:ErrorCode>
    <d2p1:Message>String</d2p1:Message>
    <d2p1:StackTrace>String</d2p1:StackTrace>
    <d2p1:Errors>
      <d2p1:ResponseError>
        <d2p1:ErrorCode>String</d2p1:ErrorCode>
        <d2p1:FieldName>String</d2p1:FieldName>
        <d2p1:Message>String</d2p1:Message>
        <d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfstringstring>
            <d5p1:Key>String</d5p1:Key>
            <d5p1:Value>String</d5p1:Value>
          </d5p1:KeyValueOfstringstring>
        </d2p1:Meta>
      </d2p1:ResponseError>
    </d2p1:Errors>
    <d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:KeyValueOfstringstring>
        <d3p1:Key>String</d3p1:Key>
        <d3p1:Value>String</d3p1:Value>
      </d3p1:KeyValueOfstringstring>
    </d2p1:Meta>
  </ResponseStatus>
  <Protokoll version="0" xmlns="http://www.elsterfachmethodik.de/protokollverfahren/version6/XMLSchema">
    <ZeitStempel>00010101000000</ZeitStempel>
    <DatenTeil transferTicket="String" code="0" text="String">
      <Nutzdatenblock nutzdatenTicket="String" code="0" text="String" verarbeiteteNdS="0" nichtverarbeiteteNdS="0">
        <NdSFehler lfdNr="String" kmId="String" ordnungsMerkmal="String" fehlerNummer="0" fehlerText="String" />
      </Nutzdatenblock>
    </DatenTeil>
  </Protokoll>
</ProtokollResponse>