POST | /datenabholungen/protokolle/17/verarbeitungsprotokoll/batch |
---|
namespace PwC.DigitalHub.Utilities.IO.Core.Contracts.Models
open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations
///<summary>
///Represents a base class for a file with raw data.
///</summary>
[<Api(Description="Represents a base class for a file with raw data.")>]
[<AllowNullLiteral>]
type FileBase() =
///<summary>
///The raw data content of the file.
///</summary>
[<ApiMember(Description="The raw data content of the file.", Name="Content")>]
member val Content:Byte[] = [||] with get,set
///<summary>
///Represents a portal certificate that is protected by a password.
///</summary>
[<Api(Description="Represents a portal certificate that is protected by a password.")>]
[<AllowNullLiteral>]
type PortalCertificate() =
inherit FileBase()
///<summary>
///The unique identifier of the certificate.
///</summary>
[<ApiMember(Description="The unique identifier of the certificate.")>]
member val Id:Guid = new Guid() with get,set
///<summary>
///The position of the certificate element in an indexed collection of certificates.
///</summary>
[<ApiMember(Description="The position of the certificate element in an indexed collection of certificates.")>]
member val Index:Int32 = new Int32() with get,set
///<summary>
///The password to protect the certificate from unauthorized access.
///</summary>
[<StringLength(255)>]
[<ApiMember(Description="The password to protect the certificate from unauthorized access.")>]
member val Pin:String = null with get,set
///<summary>
///The description of the certificate.
///</summary>
[<StringLength(Int32.MaxValue)>]
[<ApiMember(Description="The description of the certificate.")>]
member val Description:String = null with get,set
///<summary>
///Tags that can be used to label or identify the certificate.
///</summary>
[<ApiMember(Description="Tags that can be used to label or identify the certificate.")>]
member val Tags:ResizeArray<String> = new ResizeArray<String>() with get,set
///<summary>
///Gets or sets the file name of the certificate.
///</summary>
[<ApiMember(Description="Gets or sets the file name of the certificate.")>]
member val Name:String = null with get,set
///<summary>
///The raw data content of the file.
///</summary>
[<ApiMember(Description="The raw data content of the file.", Name="Content")>]
member val Content:Byte[] = [||] with get,set
///<summary>
///Represents a base service request to retrieve processing records from specified tax statements.
///</summary>
[<Api(Description="Represents a base service request to retrieve processing records from specified tax statements.")>]
[<AllowNullLiteral>]
type BatchProtokollRequestBase() =
interface IPost
///<summary>
///The authentification certificate.
///</summary>
[<ApiMember(Description="The authentification certificate.", IsRequired=true, Name="Zertifikat")>]
member val Zertifikat:PortalCertificate = null with get,set
///<summary>
///Represents the transmission path.
///</summary>
type Uebertragungsweg =
| direkt = 0
| link = 1
| sammellink = 2
///<summary>
///The data packet from the retrieval operation.
///</summary>
[<Api(Description="The data packet from the retrieval operation.")>]
[<AllowNullLiteral>]
type Datenpaket() =
///<summary>
///Encoded (compressed and encrypted) requested data record
///</summary>
[<ApiMember(Description="Encoded (compressed and encrypted) requested data record")>]
member val Value:String = null with get,set
///<summary>
///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.
///</summary>
[<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.")>]
[<AllowNullLiteral>]
type Download() =
///<summary>
///The link to the data on the web server.
///</summary>
[<ApiMember(Description="The link to the data on the web server.")>]
member val Url:String = null with get,set
///<summary>
///The user name for the web server.
///</summary>
[<ApiMember(Description="The user name for the web server.")>]
member val Benutzer:String = null with get,set
///<summary>
///Password for the web server.
///</summary>
[<ApiMember(Description="Password for the web server.")>]
member val Passwort:String = null with get,set
///<summary>
///Represents the request to retrieve tax assessments by means of a specfied ID.
///</summary>
[<Api(Description="Represents the request to retrieve tax assessments by means of a specfied ID.")>]
[<AllowNullLiteral>]
type Abholung() =
///<summary>
///The identifier of the data record.
///</summary>
[<ApiMember(Description="The identifier of the data record.")>]
member val Id:String = null with get,set
///<summary>
///The ID number of the receipt owner. This attribute is only required for the tax type 'ElsterVaStDaten'.
///</summary>
[<ApiMember(Description="The ID number of the receipt owner. This attribute is only required for the tax type 'ElsterVaStDaten'.")>]
member val Idnr:String = null with get,set
///<summary>
///The assessment year (YYYY) of the receipt. This attribute is only required for the tax type 'ElsterVaStDaten'.
///</summary>
[<ApiMember(Description="The assessment year (YYYY) of the receipt. This attribute is only required for the tax type 'ElsterVaStDaten'.")>]
member val Veranlagungsjahr:Nullable<Int32> = new Nullable<Int32>() with get,set
///<summary>
///The transmission path used.
///</summary>
[<ApiMember(Description="The transmission path used.")>]
member val Uebertragungsweg:Nullable<Uebertragungsweg> = new Nullable<Uebertragungsweg>() with get,set
///<summary>
///The character encoding of the data record (e.g. ISO-8859-15). The exception is the data type ElsterVaStDaten, here we submit KEIN ENCODING.
///</summary>
[<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.")>]
member val Encoding:String = null with get,set
///<summary>
///The client number; only applicable to the tax type 'ElsterDIVADaten'.
///</summary>
[<ApiMember(Description="The client number; only applicable to the tax type 'ElsterDIVADaten'.")>]
member val Mandantennummer:String = null with get,set
///<summary>
///The tax number; only applicable to the tax type 'ElsterDIVADaten'.
///</summary>
[<ApiMember(Description="The tax number; only applicable to the tax type 'ElsterDIVADaten'.")>]
member val Steuernummer:String = null with get,set
///<summary>
///The asessment date; only applicable to the tax type 'ElsterDIVADaten'.
///</summary>
[<ApiMember(Description="The asessment date; only applicable to the tax type 'ElsterDIVADaten'.")>]
member val Bescheiddatum:Nullable<DateTime> = new Nullable<DateTime>() with get,set
///<summary>
///Das Datenpaket angeforderter Datensaetze. Nur bei der Direktsendung ueber das ERiClet.
///</summary>
[<ApiMember(Description="Das Datenpaket angeforderter Datensaetze. Nur bei der Direktsendung ueber das ERiClet.")>]
member val Datenpaket:Datenpaket = null with get,set
///<summary>
///Download requested data records. Ensure the second payload data block is empty for bulk retrieval operations.
///</summary>
[<ApiMember(Description="Download requested data records. Ensure the second payload data block is empty for bulk retrieval operations.")>]
member val Download:Download = null with get,set
///<summary>
///Represents the various tax types for the retrieval of data.
///</summary>
type Steuerart =
| ESB = 0
| GSB = 1
| USB = 2
| EPBescheid = 3
| EPMitteilung = 4
| Gewerbesteuerbescheid = 5
| Gewerbesteuermitteilung = 6
| GEWMB = 7
| DIVAAnzeigeEinerLotterie = 8
| DIVABescheid = 9
| DivaBescheidESt = 10
| DIVABuchmachersteuer = 11
| DIVALotteriesteuerEinmal = 12
| DIVALotteriesteuerMehr = 13
| DIVASportwettensteuer = 14
| DIVATotalisator = 15
| OZGBescheid = 16
| VerbindlicheAuskunft = 17
| VerbindlicheZusage = 18
| DivaSonstigerVA = 19
| DivaBescheidErbSt = 20
| DivaBescheidFEIN = 21
| DivaBescheidGewSt = 22
| DivaBescheidKSt = 23
| DivaBescheidUSt = 24
| DivaBescheidSchenkSt = 25
| DIVATroncabgabe = 26
| DIVAVirtuelleAutomatenStB = 27
| DIVAOnlinePokerStB = 28
| LStHVVMRM = 29
| EinlagenrueckgewaehrVA = 30
| FTTMeldungVA = 31
| StatusInvStGVA = 32
| UStVEUVA = 33
| VERSVA = 34
| AltZertVA = 35
| KapEStEntlastungVA = 36
| PostUDLVA = 37
| StAb50aVA = 38
| StAbEntlastungVA = 39
| KassenangelegenheitenVA = 40
| KStOptVA = 41
| SteueroasenabwehrVA = 42
| KDBVollmachtRM = 43
| STBKE = 44
| VDBKDBRueckmeldungLief = 45
| AnhangRueckmeldung = 46
| DivaEinwilligungRM = 47
| GlueckspielF = 48
| OZGMitteilung = 49
| VerbindlicheAuskunftInfoF = 50
| ELOProtokoll = 51
///<summary>
///Specifies the encoding of the metadata.
///</summary>
type Coding =
| text = 0
| base64 = 1
///<summary>
///Represents the metadata of a data record.
///</summary>
[<Api(Description="Represents the metadata of a data record.")>]
[<AllowNullLiteral>]
type Meta17() =
///<summary>
///The type of metadata, e.g. datei [file]
///</summary>
[<ApiMember(Description="The type of metadata, e.g. datei [file]")>]
member val Name:String = null with get,set
///<summary>
///The encoding of the metadata (text or base64)
///</summary>
[<ApiMember(Description="The encoding of the metadata (text or base64)")>]
member val Coding:Nullable<Coding> = new Nullable<Coding>() with get,set
///<summary>
///The content of the metadata
///</summary>
[<ApiMember(Description="The content of the metadata")>]
member val Value:String = null with get,set
///<summary>
///Represents a list of meta information maps.
///</summary>
[<AllowNullLiteral>]
type MetaInfoMaps17() =
class end
///<summary>
///Represents meta information.
///</summary>
[<Api(Description="Represents meta information.")>]
[<AllowNullLiteral>]
type MetaInformationen17() =
///<summary>
///List of metadata.
///</summary>
[<ApiMember(Description="List of metadata.")>]
member val Meta:ResizeArray<Meta17> = new ResizeArray<Meta17>() with get,set
///<summary>
///List of meta infomation maps.
///</summary>
[<ApiMember(Description="List of meta infomation maps.")>]
member val MetaInfoMaps:MetaInfoMaps17 = null with get,set
///<summary>
///Represents a list of attachments.
///</summary>
[<AllowNullLiteral>]
type Anhaenge17() =
class end
///<summary>
///Represents a request to retrieve data records by means of one or more IDs.
///</summary>
[<Api(Description="Represents a request to retrieve data records by means of one or more IDs.")>]
[<AllowNullLiteral>]
type Abholung17() =
inherit Abholung()
///<summary>
///The tax type (e.g. ESB) of the data record.
///</summary>
[<ApiMember(Description="The tax type (e.g. ESB) of the data record.")>]
member val Steuerart:Nullable<Steuerart> = new Nullable<Steuerart>() with get,set
///<summary>
///The meta information of the identifier.
///</summary>
[<ApiMember(Description="The meta information of the identifier.")>]
member val MetaInformationen:MetaInformationen17 = null with get,set
///<summary>
///Die Transfertickets der Datensaetze. Es duerfen max. 100 Bereitstellungstickets in einem Request angegeben werden.
///</summary>
[<ApiMember(Description="Die Transfertickets der Datensaetze. Es duerfen max. 100 Bereitstellungstickets in einem Request angegeben werden.")>]
member val Bereitstellungsticket:String = null with get,set
///<summary>
///The attachments of the data records.
///</summary>
[<ApiMember(Description="The attachments of the data records.")>]
member val Anhaenge:Anhaenge17 = null with get,set
///<summary>
///The identifier of the data record.
///</summary>
[<ApiMember(Description="The identifier of the data record.")>]
member val Id:String = null with get,set
///<summary>
///The ID number of the receipt owner. This attribute is only required for the tax type 'ElsterVaStDaten'.
///</summary>
[<ApiMember(Description="The ID number of the receipt owner. This attribute is only required for the tax type 'ElsterVaStDaten'.")>]
member val Idnr:String = null with get,set
///<summary>
///The assessment year (YYYY) of the receipt. This attribute is only required for the tax type 'ElsterVaStDaten'.
///</summary>
[<ApiMember(Description="The assessment year (YYYY) of the receipt. This attribute is only required for the tax type 'ElsterVaStDaten'.")>]
member val Veranlagungsjahr:Nullable<Int32> = new Nullable<Int32>() with get,set
///<summary>
///The transmission path used.
///</summary>
[<ApiMember(Description="The transmission path used.")>]
member val Uebertragungsweg:Nullable<Uebertragungsweg> = new Nullable<Uebertragungsweg>() with get,set
///<summary>
///The character encoding of the data record (e.g. ISO-8859-15). The exception is the data type ElsterVaStDaten, here we submit KEIN ENCODING.
///</summary>
[<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.")>]
member val Encoding:String = null with get,set
///<summary>
///The client number; only applicable to the tax type 'ElsterDIVADaten'.
///</summary>
[<ApiMember(Description="The client number; only applicable to the tax type 'ElsterDIVADaten'.")>]
member val Mandantennummer:String = null with get,set
///<summary>
///The tax number; only applicable to the tax type 'ElsterDIVADaten'.
///</summary>
[<ApiMember(Description="The tax number; only applicable to the tax type 'ElsterDIVADaten'.")>]
member val Steuernummer:String = null with get,set
///<summary>
///The asessment date; only applicable to the tax type 'ElsterDIVADaten'.
///</summary>
[<ApiMember(Description="The asessment date; only applicable to the tax type 'ElsterDIVADaten'.")>]
member val Bescheiddatum:Nullable<DateTime> = new Nullable<DateTime>() with get,set
///<summary>
///Das Datenpaket angeforderter Datensaetze. Nur bei der Direktsendung ueber das ERiClet.
///</summary>
[<ApiMember(Description="Das Datenpaket angeforderter Datensaetze. Nur bei der Direktsendung ueber das ERiClet.")>]
member val Datenpaket:Datenpaket = null with get,set
///<summary>
///Download requested data records. Ensure the second payload data block is empty for bulk retrieval operations.
///</summary>
[<ApiMember(Description="Download requested data records. Ensure the second payload data block is empty for bulk retrieval operations.")>]
member val Download:Download = null with get,set
///<summary>
///Represents a base service request to retrieve processing records from specified tax statements. Applicable to version 17..
///</summary>
[<Api(Description="Represents a base service request to retrieve processing records from specified tax statements. Applicable to version 17..")>]
[<AllowNullLiteral>]
type BatchProtokollRequestBase17() =
inherit BatchProtokollRequestBase()
///<summary>
///The tax assessements, whose processing records shall be obtained.
///</summary>
[<ApiMember(Description="The tax assessements, whose processing records shall be obtained.", Name="Bescheide")>]
member val Bescheide:ResizeArray<Abholung17> = new ResizeArray<Abholung17>() with get,set
///<summary>
///The authentification certificate.
///</summary>
[<ApiMember(Description="The authentification certificate.", IsRequired=true, Name="Zertifikat")>]
member val Zertifikat:PortalCertificate = null with get,set
///<summary>
///Represents the service request to retrieve logs about tax statements.
///</summary>
[<Api(Description="Represents the service request to retrieve logs about tax statements.")>]
[<AllowNullLiteral>]
type BatchProtokollRequest17() =
inherit BatchProtokollRequestBase17()
///<summary>
///The tax assessements, whose processing records shall be obtained.
///</summary>
[<ApiMember(Description="The tax assessements, whose processing records shall be obtained.", Name="Bescheide")>]
member val Bescheide:ResizeArray<Abholung17> = new ResizeArray<Abholung17>() with get,set
///<summary>
///The authentification certificate.
///</summary>
[<ApiMember(Description="The authentification certificate.", IsRequired=true, Name="Zertifikat")>]
member val Zertifikat:PortalCertificate = null with get,set
F# BatchProtokollRequest17 DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=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 } } } ]