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
"use strict";
export class FileBase {
    /** @param {{content?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {string}
     * @description The raw data content of the file. */
    content;
}
export class PortalCertificate extends FileBase {
    /** @param {{id?:string,index?:number,pin?:string,description?:string,tags?:string[],name?:string,content?:string,content?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /**
     * @type {string}
     * @description The unique identifier of the certificate. */
    id;
    /**
     * @type {number}
     * @description The position of the certificate element in an indexed collection of certificates. */
    index;
    /**
     * @type {?string}
     * @description The password to protect the certificate from unauthorized access. */
    pin;
    /**
     * @type {?string}
     * @description The description of the certificate. */
    description;
    /**
     * @type {string[]}
     * @description Tags that can be used to label or identify the certificate. */
    tags;
    /**
     * @type {?string}
     * @description Gets or sets the file name of the certificate. */
    name;
    /**
     * @type {string}
     * @description The raw data content of the file. */
    content;
}
export class ProtokollRequestBase {
    /** @param {{zertifikat?:PortalCertificate}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {PortalCertificate}
     * @description The authentification certificate. */
    zertifikat;
}
/** @typedef {'direkt'|'link'|'sammellink'} */
export var Uebertragungsweg;
(function (Uebertragungsweg) {
    Uebertragungsweg["direkt"] = "direkt"
    Uebertragungsweg["link"] = "link"
    Uebertragungsweg["sammellink"] = "sammellink"
})(Uebertragungsweg || (Uebertragungsweg = {}));
export class Datenpaket {
    /** @param {{value?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {?string}
     * @description Encoded (compressed and encrypted) requested data record */
    value;
}
export class Download {
    /** @param {{url?:string,benutzer?:string,passwort?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {?string}
     * @description The link to the data on the web server. */
    url;
    /**
     * @type {?string}
     * @description The user name for the web server. */
    benutzer;
    /**
     * @type {?string}
     * @description Password for the web server. */
    passwort;
}
export class Abholung {
    /** @param {{id?:string,idnr?:string,veranlagungsjahr?:number,uebertragungsweg?:Uebertragungsweg,encoding?:string,mandantennummer?:string,steuernummer?:string,bescheiddatum?:string,datenpaket?:Datenpaket,download?:Download}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {?string}
     * @description The identifier of the data record. */
    id;
    /**
     * @type {?string}
     * @description The ID number of the receipt owner. This attribute is only required for the tax type 'ElsterVaStDaten'. */
    idnr;
    /**
     * @type {?number}
     * @description The assessment year (YYYY) of the receipt. This attribute is only required for the tax type 'ElsterVaStDaten'. */
    veranlagungsjahr;
    /**
     * @type {?Uebertragungsweg}
     * @description The transmission path used. */
    uebertragungsweg;
    /**
     * @type {?string}
     * @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. */
    encoding;
    /**
     * @type {?string}
     * @description The client number; only applicable to the tax type 'ElsterDIVADaten'. */
    mandantennummer;
    /**
     * @type {?string}
     * @description The tax number; only applicable to the tax type 'ElsterDIVADaten'. */
    steuernummer;
    /**
     * @type {?string}
     * @description The asessment date; only applicable to the tax type 'ElsterDIVADaten'. */
    bescheiddatum;
    /**
     * @type {?Datenpaket}
     * @description Das Datenpaket angeforderter Datensaetze. Nur bei der Direktsendung ueber das ERiClet. */
    datenpaket;
    /**
     * @type {?Download}
     * @description Download requested data records.  Ensure the second payload data block  is empty for bulk retrieval operations. */
    download;
}
/** @typedef {'ESB'|'GSB'|'USB'|'EPBescheid'|'EPMitteilung'|'Gewerbesteuerbescheid'|'Gewerbesteuermitteilung'|'GEWMB'|'DIVAAnzeigeEinerLotterie'|'DIVABescheid'|'DivaBescheidESt'|'DIVABuchmachersteuer'|'DIVALotteriesteuerEinmal'|'DIVALotteriesteuerMehr'|'DIVASportwettensteuer'|'DIVATotalisator'|'OZGBescheid'|'VerbindlicheAuskunft'|'VerbindlicheZusage'|'DivaSonstigerVA'|'DivaBescheidErbSt'|'DivaBescheidFEIN'|'DivaBescheidGewSt'|'DivaBescheidKSt'|'DivaBescheidUSt'|'DivaBescheidSchenkSt'|'DIVATroncabgabe'|'DIVAVirtuelleAutomatenStB'|'DIVAOnlinePokerStB'|'LStHVVMRM'|'EinlagenrueckgewaehrVA'|'FTTMeldungVA'|'StatusInvStGVA'|'UStVEUVA'|'VERSVA'|'AltZertVA'|'KapEStEntlastungVA'|'PostUDLVA'|'StAb50aVA'|'StAbEntlastungVA'|'KassenangelegenheitenVA'|'KStOptVA'|'SteueroasenabwehrVA'|'KDBVollmachtRM'|'STBKE'|'VDBKDBRueckmeldungLief'|'AnhangRueckmeldung'|'DivaEinwilligungRM'|'GlueckspielF'|'OZGMitteilung'|'VerbindlicheAuskunftInfoF'|'ELOProtokoll'} */
export var Steuerart;
(function (Steuerart) {
    Steuerart["ESB"] = "ESB"
    Steuerart["GSB"] = "GSB"
    Steuerart["USB"] = "USB"
    Steuerart["EPBescheid"] = "EPBescheid"
    Steuerart["EPMitteilung"] = "EPMitteilung"
    Steuerart["Gewerbesteuerbescheid"] = "Gewerbesteuerbescheid"
    Steuerart["Gewerbesteuermitteilung"] = "Gewerbesteuermitteilung"
    Steuerart["GEWMB"] = "GEWMB"
    Steuerart["DIVAAnzeigeEinerLotterie"] = "DIVAAnzeigeEinerLotterie"
    Steuerart["DIVABescheid"] = "DIVABescheid"
    Steuerart["DivaBescheidESt"] = "DivaBescheidESt"
    Steuerart["DIVABuchmachersteuer"] = "DIVABuchmachersteuer"
    Steuerart["DIVALotteriesteuerEinmal"] = "DIVALotteriesteuerEinmal"
    Steuerart["DIVALotteriesteuerMehr"] = "DIVALotteriesteuerMehr"
    Steuerart["DIVASportwettensteuer"] = "DIVASportwettensteuer"
    Steuerart["DIVATotalisator"] = "DIVATotalisator"
    Steuerart["OZGBescheid"] = "OZGBescheid"
    Steuerart["VerbindlicheAuskunft"] = "VerbindlicheAuskunft"
    Steuerart["VerbindlicheZusage"] = "VerbindlicheZusage"
    Steuerart["DivaSonstigerVA"] = "DivaSonstigerVA"
    Steuerart["DivaBescheidErbSt"] = "DivaBescheidErbSt"
    Steuerart["DivaBescheidFEIN"] = "DivaBescheidFEIN"
    Steuerart["DivaBescheidGewSt"] = "DivaBescheidGewSt"
    Steuerart["DivaBescheidKSt"] = "DivaBescheidKSt"
    Steuerart["DivaBescheidUSt"] = "DivaBescheidUSt"
    Steuerart["DivaBescheidSchenkSt"] = "DivaBescheidSchenkSt"
    Steuerart["DIVATroncabgabe"] = "DIVATroncabgabe"
    Steuerart["DIVAVirtuelleAutomatenStB"] = "DIVAVirtuelleAutomatenStB"
    Steuerart["DIVAOnlinePokerStB"] = "DIVAOnlinePokerStB"
    Steuerart["LStHVVMRM"] = "LStHVVMRM"
    Steuerart["EinlagenrueckgewaehrVA"] = "EinlagenrueckgewaehrVA"
    Steuerart["FTTMeldungVA"] = "FTTMeldungVA"
    Steuerart["StatusInvStGVA"] = "StatusInvStGVA"
    Steuerart["UStVEUVA"] = "UStVEUVA"
    Steuerart["VERSVA"] = "VERSVA"
    Steuerart["AltZertVA"] = "AltZertVA"
    Steuerart["KapEStEntlastungVA"] = "KapEStEntlastungVA"
    Steuerart["PostUDLVA"] = "PostUDLVA"
    Steuerart["StAb50aVA"] = "StAb50aVA"
    Steuerart["StAbEntlastungVA"] = "StAbEntlastungVA"
    Steuerart["KassenangelegenheitenVA"] = "KassenangelegenheitenVA"
    Steuerart["KStOptVA"] = "KStOptVA"
    Steuerart["SteueroasenabwehrVA"] = "SteueroasenabwehrVA"
    Steuerart["KDBVollmachtRM"] = "KDBVollmachtRM"
    Steuerart["STBKE"] = "STBKE"
    Steuerart["VDBKDBRueckmeldungLief"] = "VDBKDBRueckmeldungLief"
    Steuerart["AnhangRueckmeldung"] = "AnhangRueckmeldung"
    Steuerart["DivaEinwilligungRM"] = "DivaEinwilligungRM"
    Steuerart["GlueckspielF"] = "GlueckspielF"
    Steuerart["OZGMitteilung"] = "OZGMitteilung"
    Steuerart["VerbindlicheAuskunftInfoF"] = "VerbindlicheAuskunftInfoF"
    Steuerart["ELOProtokoll"] = "ELOProtokoll"
})(Steuerart || (Steuerart = {}));
/** @typedef {'text'|'base64'} */
export var Coding;
(function (Coding) {
    Coding["text"] = "text"
    Coding["base64"] = "base64"
})(Coding || (Coding = {}));
export class Meta17 {
    /** @param {{name?:string,coding?:Coding,value?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {?string}
     * @description The type of metadata, e.g. datei [file] */
    name;
    /**
     * @type {?Coding}
     * @description The encoding of the metadata (text or base64) */
    coding;
    /**
     * @type {?string}
     * @description The content of the metadata */
    value;
}
export class MetaInfoMaps17 {
    constructor(init) { Object.assign(this, init) }
}
export class MetaInformationen17 {
    /** @param {{meta?:Meta17[],metaInfoMaps?:MetaInfoMaps17}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {Meta17[]}
     * @description List of metadata. */
    meta;
    /**
     * @type {?MetaInfoMaps17}
     * @description List of meta infomation maps. */
    metaInfoMaps;
}
export class Anhaenge17 {
    constructor(init) { Object.assign(this, init) }
}
export class Abholung17 extends Abholung {
    /** @param {{steuerart?:Steuerart,metaInformationen?:MetaInformationen17,bereitstellungsticket?:string,anhaenge?:Anhaenge17,id?:string,idnr?:string,veranlagungsjahr?:number,uebertragungsweg?:Uebertragungsweg,encoding?:string,mandantennummer?:string,steuernummer?:string,bescheiddatum?:string,datenpaket?:Datenpaket,download?:Download,id?:string,idnr?:string,veranlagungsjahr?:number,uebertragungsweg?:Uebertragungsweg,encoding?:string,mandantennummer?:string,steuernummer?:string,bescheiddatum?:string,datenpaket?:Datenpaket,download?:Download}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /**
     * @type {?Steuerart}
     * @description The tax type (e.g. ESB) of the data record. */
    steuerart;
    /**
     * @type {?MetaInformationen17}
     * @description The meta information of the identifier. */
    metaInformationen;
    /**
     * @type {?string}
     * @description Die Transfertickets der Datensaetze. Es duerfen max. 100 Bereitstellungstickets in einem Request angegeben werden. */
    bereitstellungsticket;
    /**
     * @type {?Anhaenge17}
     * @description The attachments of the data records. */
    anhaenge;
    /**
     * @type {?string}
     * @description The identifier of the data record. */
    id;
    /**
     * @type {?string}
     * @description The ID number of the receipt owner. This attribute is only required for the tax type 'ElsterVaStDaten'. */
    idnr;
    /**
     * @type {?number}
     * @description The assessment year (YYYY) of the receipt. This attribute is only required for the tax type 'ElsterVaStDaten'. */
    veranlagungsjahr;
    /**
     * @type {?Uebertragungsweg}
     * @description The transmission path used. */
    uebertragungsweg;
    /**
     * @type {?string}
     * @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. */
    encoding;
    /**
     * @type {?string}
     * @description The client number; only applicable to the tax type 'ElsterDIVADaten'. */
    mandantennummer;
    /**
     * @type {?string}
     * @description The tax number; only applicable to the tax type 'ElsterDIVADaten'. */
    steuernummer;
    /**
     * @type {?string}
     * @description The asessment date; only applicable to the tax type 'ElsterDIVADaten'. */
    bescheiddatum;
    /**
     * @type {?Datenpaket}
     * @description Das Datenpaket angeforderter Datensaetze. Nur bei der Direktsendung ueber das ERiClet. */
    datenpaket;
    /**
     * @type {?Download}
     * @description Download requested data records.  Ensure the second payload data block  is empty for bulk retrieval operations. */
    download;
}
export class ProtokollRequestBase17 extends ProtokollRequestBase {
    /** @param {{bescheid?:Abholung17,zertifikat?:PortalCertificate,zertifikat?:PortalCertificate}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /**
     * @type {?Abholung17}
     * @description The tax assessement, whose processing records shall be obtained. */
    bescheid;
    /**
     * @type {PortalCertificate}
     * @description The authentification certificate. */
    zertifikat;
}
export class ServiceReponseBase {
    /** @param {{id?:string,index?:number,responseStatus?:ResponseStatus}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {string}
     * @description The unique identifier of the response. */
    id;
    /**
     * @type {number}
     * @description The position of the response element in an indexed collection. */
    index;
    /**
     * @type {?ResponseStatus}
     * @description Metadata that contains structured error information on the service response. */
    responseStatus;
}
export class NdSFehler06 {
    /** @param {{lfdNr?:string,kmId?:string,ordnungsMerkmal?:string,fehlerNummer?:number,fehlerText?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {?string}
     * @description Die laufende Nummer des fehlerhaften Datensatzes in einem Nutzdatenblock. */
    lfdNr;
    /**
     * @type {?string}
     * @description Bei der kmId handelt es sich um die durch den Verfasser vorgegebene KmId des Nutzdatensatzes. */
    kmId;
    /**
     * @type {?string}
     * @description Die durch den Verfasser vorgegebene bundesweit eindeutige Identifikation des Nutzdatensatzes (z.B. bei LStB, Lohnersatzleistungen). */
    ordnungsMerkmal;
    /**
     * @type {?number}
     * @description Es wird die vom Elstersystem für diesen Fehler vergebene Fehlernummer i.d.R. eine 9-stellige Nummer zurückgemeldet. */
    fehlerNummer;
    /**
     * @type {?string}
     * @description Es wird der vom Elstersystem für diesen Fehler vergebene Fehlertext zurückgemeldet. */
    fehlerText;
}
export class Nutzdatenblock06 {
    /** @param {{nutzdatenTicket?:string,code?:number,text?:string,verarbeiteteNds?:number,nichtverarbeiteteNds?:number,ndSFehler?:NdSFehler06[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {?string}
     * @description Über das Nutzdatenticket im Verarbeitungsprotokoll wird der Nutzdatenblock aus der Datenlieferung referenziert. */
    nutzdatenTicket;
    /**
     * @type {?number}
     * @description Der Statuscode zum Nutzdatenblock. */
    code;
    /**
     * @type {?string}
     * @description Der Statustext zum Nutzdatenblock. */
    text;
    /**
     * @type {?number}
     * @description Anzahl der Verarbeiteten Nutzdatensätze. */
    verarbeiteteNds;
    /**
     * @type {?number}
     * @description Anzahl der nichtverarbeiteten Nutzdatensätze. */
    nichtverarbeiteteNds;
    /**
     * @type {NdSFehler06[]}
     * @description Der Datenteil des Protokolls. */
    ndSFehler;
}
export class DatenTeil06 {
    /** @param {{transferTicket?:string,code?:number,text?:string,nutzdatenbloecke?:Nutzdatenblock06[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {?string}
     * @description Das Transferticket der Datenlieferung. */
    transferTicket;
    /**
     * @type {?number}
     * @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). */
    code;
    /**
     * @type {?string}
     * @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. */
    text;
    /**
     * @type {Nutzdatenblock06[]}
     * @description Der Datenteil des Protokolls. */
    nutzdatenbloecke;
}
export class Protokoll06 {
    /** @param {{version?:number,zeitStempel?:string,datenTeil?:DatenTeil06}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {?number}
     * @description Version des Protokolls. */
    version;
    /**
     * @type {?string}
     * @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. */
    zeitStempel;
    /**
     * @type {?DatenTeil06}
     * @description Der Datenteil des Protokolls. */
    datenTeil;
}
export class ProtokollResponse extends ServiceReponseBase {
    /** @param {{protokoll?:Protokoll06,id?:string,index?:number,responseStatus?:ResponseStatus,id?:string,index?:number,responseStatus?:ResponseStatus}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /**
     * @type {?Protokoll06}
     * @description The processing record of a tax statement. */
    protokoll;
    /**
     * @type {string}
     * @description The unique identifier of the response. */
    id;
    /**
     * @type {number}
     * @description The position of the response element in an indexed collection. */
    index;
    /**
     * @type {?ResponseStatus}
     * @description Metadata that contains structured error information on the service response. */
    responseStatus;
}
export class ProtokollRequest17 extends ProtokollRequestBase17 {
    /** @param {{bescheid?:Abholung17,zertifikat?:PortalCertificate,bescheid?:Abholung17,zertifikat?:PortalCertificate,zertifikat?:PortalCertificate}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /**
     * @type {?Abholung17}
     * @description The tax assessement, whose processing records shall be obtained. */
    bescheid;
    /**
     * @type {PortalCertificate}
     * @description The authentification certificate. */
    zertifikat;
}

JavaScript 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
		}
	}
}