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

/** @description Represents a base class for a file with raw data. */
// @Api(Description="Represents a base class for a file with raw data.")
export class FileBase
{
    /** @description The raw data content of the file. */
    // @ApiMember(Description="The raw data content of the file.", Name="Content")
    public content: string;

    public constructor(init?: Partial<FileBase>) { (Object as any).assign(this, init); }
}

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

    /** @description 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 index: number;

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

    /** @description The description of the certificate. */
    // @StringLength(2147483647)
    // @ApiMember(Description="The description of the certificate.")
    public description?: string;

    /** @description 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 tags: string[];

    /** @description Gets or sets the file name of the certificate. */
    // @ApiMember(Description="Gets or sets the file name of the certificate.")
    public name?: string;

    /** @description The raw data content of the file. */
    // @ApiMember(Description="The raw data content of the file.", Name="Content")
    public content: string;

    public constructor(init?: Partial<PortalCertificate>) { super(init); (Object as any).assign(this, init); }
}

/** @description 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.")
export class ProtokollRequestBase implements IPost
{
    /** @description The authentification certificate. */
    // @ApiMember(Description="The authentification certificate.", IsRequired=true, Name="Zertifikat")
    public zertifikat: PortalCertificate;

    public constructor(init?: Partial<ProtokollRequestBase>) { (Object as any).assign(this, init); }
}

/** @description Represents the transmission path. */
export enum Uebertragungsweg
{
    direkt = 'direkt',
    link = 'link',
    sammellink = 'sammellink',
}

/** @description The data packet from the retrieval operation. */
// @Api(Description="The data packet from the retrieval operation.")
export class Datenpaket
{
    /** @description Encoded (compressed and encrypted) requested data record */
    // @ApiMember(Description="Encoded (compressed and encrypted) requested data record")
    public value?: string;

    public constructor(init?: Partial<Datenpaket>) { (Object as any).assign(this, init); }
}

/** @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. */
// @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.")
export class Download
{
    /** @description The link to the data on the web server. */
    // @ApiMember(Description="The link to the data on the web server.")
    public url?: string;

    /** @description The user name for the web server. */
    // @ApiMember(Description="The user name for the web server.")
    public benutzer?: string;

    /** @description Password for the web server. */
    // @ApiMember(Description="Password for the web server.")
    public passwort?: string;

    public constructor(init?: Partial<Download>) { (Object as any).assign(this, init); }
}

/** @description 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.")
export class Abholung
{
    /** @description The identifier of the data record. */
    // @ApiMember(Description="The identifier of the data record.")
    public id?: string;

    /** @description 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 idnr?: string;

    /** @description 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 veranlagungsjahr?: number;

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

    /** @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. */
    // @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 encoding?: string;

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

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

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

    /** @description 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 datenpaket?: Datenpaket;

    /** @description 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 download?: Download;

    public constructor(init?: Partial<Abholung>) { (Object as any).assign(this, init); }
}

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

/** @description Specifies the encoding of the metadata. */
export enum Coding
{
    text = 'text',
    base64 = 'base64',
}

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

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

    /** @description The content of the metadata */
    // @ApiMember(Description="The content of the metadata")
    public value?: string;

    public constructor(init?: Partial<Meta17>) { (Object as any).assign(this, init); }
}

/** @description Represents a list of meta information maps. */
export class MetaInfoMaps17
{

    public constructor(init?: Partial<MetaInfoMaps17>) { (Object as any).assign(this, init); }
}

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

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

    public constructor(init?: Partial<MetaInformationen17>) { (Object as any).assign(this, init); }
}

/** @description Represents a list of attachments. */
export class Anhaenge17
{

    public constructor(init?: Partial<Anhaenge17>) { (Object as any).assign(this, init); }
}

/** @description 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.")
export class Abholung17 extends Abholung
{
    /** @description The tax type (e.g. ESB) of the data record. */
    // @ApiMember(Description="The tax type (e.g. ESB) of the data record.")
    public steuerart?: Steuerart;

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

    /** @description 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 bereitstellungsticket?: string;

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

    /** @description The identifier of the data record. */
    // @ApiMember(Description="The identifier of the data record.")
    public id?: string;

    /** @description 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 idnr?: string;

    /** @description 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 veranlagungsjahr?: number;

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

    /** @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. */
    // @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 encoding?: string;

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

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

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

    /** @description 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 datenpaket?: Datenpaket;

    /** @description 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 download?: Download;

    public constructor(init?: Partial<Abholung17>) { super(init); (Object as any).assign(this, init); }
}

/** @description 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.")
export class ProtokollRequestBase17 extends ProtokollRequestBase
{
    /** @description The tax assessement, whose processing records shall be obtained. */
    // @ApiMember(Description="The tax assessement, whose processing records shall be obtained.", Name="Bescheid")
    public bescheid?: Abholung17;

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

    public constructor(init?: Partial<ProtokollRequestBase17>) { super(init); (Object as any).assign(this, init); }
}

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

    /** @description 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 index: number;

    /** @description 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 responseStatus?: ResponseStatus;

    public constructor(init?: Partial<ServiceReponseBase>) { (Object as any).assign(this, init); }
}

/** @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) */
// @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)")
export class NdSFehler06
{
    /** @description Die laufende Nummer des fehlerhaften Datensatzes in einem Nutzdatenblock. */
    // @ApiMember(Description="Die laufende Nummer des fehlerhaften Datensatzes in einem Nutzdatenblock.", Name="LfdNr")
    public lfdNr?: string;

    /** @description 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 kmId?: string;

    /** @description 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 ordnungsMerkmal?: string;

    /** @description 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 fehlerNummer?: number;

    /** @description 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 fehlerText?: string;

    public constructor(init?: Partial<NdSFehler06>) { (Object as any).assign(this, init); }
}

/** @description Stellt ein Element eines Nutztdatenblockes dar. */
// @Api(Description="Stellt ein Element eines Nutztdatenblockes dar.")
export class Nutzdatenblock06
{
    /** @description Ü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 nutzdatenTicket?: string;

    /** @description Der Statuscode zum Nutzdatenblock. */
    // @ApiMember(Description="Der Statuscode zum Nutzdatenblock.")
    public code?: number;

    /** @description Der Statustext zum Nutzdatenblock. */
    // @ApiMember(Description="Der Statustext zum Nutzdatenblock.")
    public text?: string;

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

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

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

    public constructor(init?: Partial<Nutzdatenblock06>) { (Object as any).assign(this, init); }
}

/** @description Stellt den Datenteil eines Protokolls dar. */
// @Api(Description="Stellt den Datenteil eines Protokolls dar.")
export class DatenTeil06
{
    /** @description Das Transferticket der Datenlieferung. */
    // @ApiMember(Description="Das Transferticket der Datenlieferung.")
    public transferTicket?: string;

    /** @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). */
    // @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 code?: number;

    /** @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. */
    // @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 text?: string;

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

    public constructor(init?: Partial<DatenTeil06>) { (Object as any).assign(this, init); }
}

/** @description Das Verarbeitungsprotokoll einer Datenabholungsprozesses. */
// @Api(Description="Das Verarbeitungsprotokoll einer Datenabholungsprozesses.")
export class Protokoll06
{
    /** @description Version des Protokolls. */
    // @ApiMember(Description="Version des Protokolls.", Name="Version")
    public version?: number;

    /** @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. */
    // @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 zeitStempel?: string;

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

    public constructor(init?: Partial<Protokoll06>) { (Object as any).assign(this, init); }
}

/** @description 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.")
export class ProtokollResponse extends ServiceReponseBase
{
    /** @description The processing record of a tax statement. */
    // @ApiMember(Description="The processing record of a tax statement.", Name="Protokoll")
    public protokoll?: Protokoll06;

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

    /** @description 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 index: number;

    /** @description 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 responseStatus?: ResponseStatus;

    public constructor(init?: Partial<ProtokollResponse>) { super(init); (Object as any).assign(this, init); }
}

/** @description 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.")
export class ProtokollRequest17 extends ProtokollRequestBase17
{
    /** @description The tax assessement, whose processing records shall be obtained. */
    // @ApiMember(Description="The tax assessement, whose processing records shall be obtained.", Name="Bescheid")
    public bescheid?: Abholung17;

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

    public constructor(init?: Partial<ProtokollRequest17>) { super(init); (Object as any).assign(this, init); }
}

TypeScript ProtokollRequest17 DTOs

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

HTTP + JSV

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: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	bescheid: 
	{
		steuerart: ESB,
		metaInformationen: 
		{
			meta: 
			[
				{
					name: String,
					coding: text,
					value: String
				}
			],
			metaInfoMaps: 
			[
				{
					typ: String,
					meta: 
					[
						{
							name: String,
							coding: text,
							value: String
						}
					]
				}
			]
		},
		bereitstellungsticket: String,
		anhaenge: 
		[
			{
				metadatenAnhang: 
				[
					{
						schluesselAnhang: 
						{
							dateibezeichnungID: String,
							dateibezeichnungKurz: String,
							value: String
						},
						wertAnhang: 
						{
							dateibezeichnungID: String,
							dateibezeichnungKurz: String,
							value: String
						}
					}
				],
				dateibezeichnung: String,
				dateityp: String,
				dateiinhalt: String
			}
		],
		id: String,
		idnr: String,
		veranlagungsjahr: 0,
		uebertragungsweg: direkt,
		encoding: String,
		mandantennummer: String,
		steuernummer: String,
		bescheiddatum: 0001-01-01,
		datenpaket: 
		{
			value: String
		},
		download: 
		{
			url: String,
			benutzer: String,
			passwort: String
		}
	},
	zertifikat: 
	{
		id: 00000000000000000000000000000000,
		index: 0,
		pin: String,
		description: String,
		tags: 
		[
			String
		],
		name: String,
		content: AA==
	}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	protokoll: 
	{
		version: 0,
		zeitStempel: 0001-01-01,
		datenTeil: 
		{
			transferTicket: String,
			code: 0,
			text: String,
			nutzdatenbloecke: 
			[
				{
					nutzdatenTicket: String,
					code: 0,
					text: String,
					verarbeiteteNds: 0,
					nichtverarbeiteteNds: 0,
					ndSFehler: 
					[
						{
							lfdNr: String,
							kmId: String,
							ordnungsMerkmal: String,
							fehlerNummer: 0,
							fehlerText: String
						}
					]
				}
			]
		}
	},
	id: String,
	index: 0,
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	}
}