Tax Filing Service

<back to all web services

BatchProtokollRequest17

SyncDatenabholungVerarbeitungsprotokolleBatch

Represents the service request to retrieve logs about tax statements.

Requires Authentication
The following routes are available for this service:
POST/datenabholungen/protokolle/17/verarbeitungsprotokoll/batch
import java.math.*
import java.util.*
import net.servicestack.client.*
import com.google.gson.annotations.*
import com.google.gson.reflect.*


/**
* Represents the service request to retrieve logs about tax statements.
*/
@Api(Description="Represents the service request to retrieve logs about tax statements.")
open class BatchProtokollRequest17 : BatchProtokollRequestBase17()
{
    /**
    * The tax assessements, whose processing records shall be obtained.
    */
    @ApiMember(Description="The tax assessements, whose processing records shall be obtained.", Name="Bescheide")
    var bescheide:ArrayList<Abholung17> = ArrayList<Abholung17>()

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

/**
* Represents a base service request to retrieve processing records from specified tax statements. Applicable to version 17..
*/
@Api(Description="Represents a base service request to retrieve processing records from specified tax statements. Applicable to version 17..")
open class BatchProtokollRequestBase17 : BatchProtokollRequestBase()
{
    /**
    * The tax assessements, whose processing records shall be obtained.
    */
    @ApiMember(Description="The tax assessements, whose processing records shall be obtained.", Name="Bescheide")
    var bescheide:ArrayList<Abholung17> = ArrayList<Abholung17>()

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

/**
* Represents a base service request to retrieve processing records from specified tax statements.
*/
@Api(Description="Represents a base service request to retrieve processing records from specified tax statements.")
open class BatchProtokollRequestBase : IPost
{
    /**
    * The authentification certificate.
    */
    @ApiMember(Description="The authentification certificate.", IsRequired=true, Name="Zertifikat")
    var zertifikat:PortalCertificate? = null
}

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

    /**
    * 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.")
    var index:Int? = null

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

    /**
    * The description of the certificate.
    */
    @StringLength(2147483647)
    @ApiMember(Description="The description of the certificate.")
    var description:String? = null

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

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

    /**
    * The raw data content of the file.
    */
    @ApiMember(Description="The raw data content of the file.", Name="Content")
    var content:ByteArray? = null
}

/**
* Represents a base class for a file with raw data.
*/
@Api(Description="Represents a base class for a file with raw data.")
open class FileBase
{
    /**
    * The raw data content of the file.
    */
    @ApiMember(Description="The raw data content of the file.", Name="Content")
    var content:ByteArray? = null
}

/**
* 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.")
open 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.")
    var steuerart:Steuerart? = null

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

    /**
    * 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.")
    var bereitstellungsticket:String? = null

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

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

    /**
    * 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'.")
    var idnr:String? = null

    /**
    * 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'.")
    var veranlagungsjahr:Int? = null

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

    /**
    * 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.")
    var encoding:String? = null

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

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

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

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

    /**
    * 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.")
    var download:Download? = null
}

/**
* 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.")
open class Abholung
{
    /**
    * The identifier of the data record.
    */
    @ApiMember(Description="The identifier of the data record.")
    var id:String? = null

    /**
    * 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'.")
    var idnr:String? = null

    /**
    * 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'.")
    var veranlagungsjahr:Int? = null

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

    /**
    * 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.")
    var encoding:String? = null

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

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

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

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

    /**
    * 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.")
    var download:Download? = null
}

/**
* Represents the transmission path.
*/
enum class Uebertragungsweg
{
    Direkt,
    Link,
    Sammellink,
}

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

/**
* 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.")
open class Download
{
    /**
    * The link to the data on the web server.
    */
    @ApiMember(Description="The link to the data on the web server.")
    var url:String? = null

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

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

/**
* Represents the various tax types for the retrieval of data.
*/
enum class Steuerart
{
    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,
}

/**
* Represents meta information.
*/
@Api(Description="Represents meta information.")
open class MetaInformationen17
{
    /**
    * List of metadata.
    */
    @ApiMember(Description="List of metadata.")
    var meta:ArrayList<Meta17> = ArrayList<Meta17>()

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

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

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

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

/**
* Specifies the encoding of the metadata.
*/
enum class Coding
{
    Text,
    Base64,
}

/**
* Represents a list of meta information maps.
*/
open class MetaInfoMaps17
{
}

/**
* Represents a list of attachments.
*/
open class Anhaenge17
{
}

Kotlin BatchProtokollRequest17 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/batch HTTP/1.1 
Host: taxfiling.pwc.de 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	bescheide: 
	[
		{
			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
			}
		}
	}
]