POST | /BatchValidiereAuthentifiziereSendeUndDruckeAsync |
---|
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';
/**
* Represents a structure that encapsulates a tax declaration.
*/
// @Api(Description="Represents a structure that encapsulates a tax declaration.")
class TaxData implements IConvertible
{
/**
* The unique identifier of the tax data.
*/
// @ApiMember(Description="The unique identifier of the tax data.", IsRequired=true)
String? id;
/**
* The XML-based tax declaration.
*/
// @ApiMember(Description="The XML-based tax declaration.", IsRequired=true)
String? content;
TaxData({this.id,this.content});
TaxData.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
content = json['content'];
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'content': content
};
getTypeName() => "TaxData";
TypeContext? context = _ctx;
}
/**
* A base service to process a batch of tax data.
*/
// @Api(Description="A base service to process a batch of tax data.")
abstract class BatchBearbeiteVorgangBase implements IPost
{
/**
* The batch of tax data to process.
*/
// @ApiMember(Description="The batch of tax data to process.", Name="Data")
List<TaxData>? data;
BatchBearbeiteVorgangBase({this.data});
BatchBearbeiteVorgangBase.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
data = JsonConverters.fromJson(json['data'],'List<TaxData>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'data': JsonConverters.toJson(data,'List<TaxData>',context!)
};
getTypeName() => "BatchBearbeiteVorgangBase";
TypeContext? context = _ctx;
}
/**
* Represents a base class for a file with raw data.
*/
// @Api(Description="Represents a base class for a file with raw data.")
abstract class FileBase
{
/**
* The raw data content of the file.
*/
// @ApiMember(Description="The raw data content of the file.", Name="Content")
Uint8List? content;
FileBase({this.content});
FileBase.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
content = JsonConverters.fromJson(json['content'],'Uint8List',context!);
return this;
}
Map<String, dynamic> toJson() => {
'content': JsonConverters.toJson(content,'Uint8List',context!)
};
getTypeName() => "FileBase";
TypeContext? context = _ctx;
}
/**
* Represents a portal certificate that is protected by a password.
*/
// @Api(Description="Represents a portal certificate that is protected by a password.")
class PortalCertificate extends FileBase implements ISecuredCertificate, IHasIndex, IConvertible
{
/**
* The unique identifier of the certificate.
*/
// @ApiMember(Description="The unique identifier of the certificate.")
String? id;
/**
* 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.")
int? index;
/**
* The password to protect the certificate from unauthorized access.
*/
// @StringLength(255)
// @ApiMember(Description="The password to protect the certificate from unauthorized access.")
String? pin;
/**
* The description of the certificate.
*/
// @StringLength(2147483647)
// @ApiMember(Description="The description of the certificate.")
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.")
List<String>? tags;
/**
* Gets or sets the file name of the certificate.
*/
// @ApiMember(Description="Gets or sets the file name of the certificate.")
String? name;
/**
* The raw data content of the file.
*/
// @ApiMember(Description="The raw data content of the file.", Name="Content")
Uint8List? content;
PortalCertificate({this.id,this.index,this.pin,this.description,this.tags,this.name,this.content});
PortalCertificate.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
id = json['id'];
index = json['index'];
pin = json['pin'];
description = json['description'];
tags = JsonConverters.fromJson(json['tags'],'List<String>',context!);
name = json['name'];
content = JsonConverters.fromJson(json['content'],'Uint8List',context!);
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'id': id,
'index': index,
'pin': pin,
'description': description,
'tags': JsonConverters.toJson(tags,'List<String>',context!),
'name': name,
'content': JsonConverters.toJson(content,'Uint8List',context!)
});
getTypeName() => "PortalCertificate";
TypeContext? context = _ctx;
}
/**
* A base service to validate, authenticate, send and print a batch of tax data.
*/
// @Api(Description="A base service to validate, authenticate, send and print a batch of tax data.")
abstract class BatchValidiereAuthentifiziereSendeUndDruckeBase extends BatchBearbeiteVorgangBase implements IDruckRequest, IVeschlueselungsRequest, ISendeRequest
{
/**
* Should the PDF file be prepared for a double-sided printout with a margin for punching?. True: The straight sides are indented to the left for a stitching margin for punching. False: There is no indentation of the straight sides. The created PDF is only intended for printing pages page by page.
*/
// @ApiMember(Description="Should the PDF file be prepared for a double-sided printout with a margin for punching?. True: The straight sides are indented to the left for a stitching margin for punching. False: There is no indentation of the straight sides. The created PDF is only intended for printing pages page by page.")
bool? duplexDruck;
/**
* Base name of the generated PDF file. Each tax data file name shall be appended to this base name.
*/
// @ApiMember(Description="Base name of the generated PDF file. Each tax data file name shall be appended to this base name.")
String? protocolPrefix;
/**
* Footer text to be used on the printout (optional).
*/
// @ApiMember(Description="Footer text to be used on the printout (optional).")
String? fussText;
/**
* The authentification certificate.
*/
// @ApiMember(Description="The authentification certificate.")
PortalCertificate? zertifikat;
/**
* Gets or sets the retrieval code. This value MUST be given for the tax operation ElsterDatenabholung and tax data type ElsterVaStDaten, for which a SoftPSE certificate is used to sign.In other cases a null value should be given. It consists of 2 x 5 characters, which are joined by '-'. Example: 'K6FG5 - RS32P'.
*/
// @ApiMember(Description="Gets or sets the retrieval code. This value MUST be given for the tax operation ElsterDatenabholung and tax data type ElsterVaStDaten, for which a SoftPSE certificate is used to sign.In other cases a null value should be given. It consists of 2 x 5 characters, which are joined by '-'. Example: 'K6FG5 - RS32P'.", Name="AbrufCode")
String? abrufCode;
/**
* The details of the provider that submits tax data.
*/
// @ApiMember(Description="The details of the provider that submits tax data.", Name="DatenLieferant")
String? datenLieferant;
/**
* The batch of tax data to process.
*/
// @ApiMember(Description="The batch of tax data to process.", Name="Data")
List<TaxData>? data;
BatchValidiereAuthentifiziereSendeUndDruckeBase({this.duplexDruck,this.protocolPrefix,this.fussText,this.zertifikat,this.abrufCode,this.datenLieferant,this.data});
BatchValidiereAuthentifiziereSendeUndDruckeBase.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
duplexDruck = json['duplexDruck'];
protocolPrefix = json['protocolPrefix'];
fussText = json['fussText'];
zertifikat = JsonConverters.fromJson(json['zertifikat'],'PortalCertificate',context!);
abrufCode = json['abrufCode'];
datenLieferant = json['datenLieferant'];
data = JsonConverters.fromJson(json['data'],'List<TaxData>',context!);
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'duplexDruck': duplexDruck,
'protocolPrefix': protocolPrefix,
'fussText': fussText,
'zertifikat': JsonConverters.toJson(zertifikat,'PortalCertificate',context!),
'abrufCode': abrufCode,
'datenLieferant': datenLieferant,
'data': JsonConverters.toJson(data,'List<TaxData>',context!)
});
getTypeName() => "BatchValidiereAuthentifiziereSendeUndDruckeBase";
TypeContext? context = _ctx;
}
/**
* An asynchronous service to validate, authenticate, send a batch of tax data and print their transfer protocols.
*/
// @Api(Description="An asynchronous service to validate, authenticate, send a batch of tax data and print their transfer protocols.")
class BatchValidiereAuthentifiziereSendeUndDruckeAsync extends BatchValidiereAuthentifiziereSendeUndDruckeBase implements IConvertible
{
/**
* Should the PDF file be prepared for a double-sided printout with a margin for punching?. True: The straight sides are indented to the left for a stitching margin for punching. False: There is no indentation of the straight sides. The created PDF is only intended for printing pages page by page.
*/
// @ApiMember(Description="Should the PDF file be prepared for a double-sided printout with a margin for punching?. True: The straight sides are indented to the left for a stitching margin for punching. False: There is no indentation of the straight sides. The created PDF is only intended for printing pages page by page.")
bool? duplexDruck;
/**
* Base name of the generated PDF file. Each tax data file name shall be appended to this base name.
*/
// @ApiMember(Description="Base name of the generated PDF file. Each tax data file name shall be appended to this base name.")
String? protocolPrefix;
/**
* Footer text to be used on the printout (optional).
*/
// @ApiMember(Description="Footer text to be used on the printout (optional).")
String? fussText;
/**
* The authentification certificate.
*/
// @ApiMember(Description="The authentification certificate.")
PortalCertificate? zertifikat;
/**
* Gets or sets the retrieval code. This value MUST be given for the tax operation ElsterDatenabholung and tax data type ElsterVaStDaten, for which a SoftPSE certificate is used to sign.In other cases a null value should be given. It consists of 2 x 5 characters, which are joined by '-'. Example: 'K6FG5 - RS32P'.
*/
// @ApiMember(Description="Gets or sets the retrieval code. This value MUST be given for the tax operation ElsterDatenabholung and tax data type ElsterVaStDaten, for which a SoftPSE certificate is used to sign.In other cases a null value should be given. It consists of 2 x 5 characters, which are joined by '-'. Example: 'K6FG5 - RS32P'.", Name="AbrufCode")
String? abrufCode;
/**
* The details of the provider that submits tax data.
*/
// @ApiMember(Description="The details of the provider that submits tax data.", Name="DatenLieferant")
String? datenLieferant;
/**
* The batch of tax data to process.
*/
// @ApiMember(Description="The batch of tax data to process.", Name="Data")
List<TaxData>? data;
BatchValidiereAuthentifiziereSendeUndDruckeAsync({this.duplexDruck,this.protocolPrefix,this.fussText,this.zertifikat,this.abrufCode,this.datenLieferant,this.data});
BatchValidiereAuthentifiziereSendeUndDruckeAsync.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
duplexDruck = json['duplexDruck'];
protocolPrefix = json['protocolPrefix'];
fussText = json['fussText'];
zertifikat = JsonConverters.fromJson(json['zertifikat'],'PortalCertificate',context!);
abrufCode = json['abrufCode'];
datenLieferant = json['datenLieferant'];
data = JsonConverters.fromJson(json['data'],'List<TaxData>',context!);
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'duplexDruck': duplexDruck,
'protocolPrefix': protocolPrefix,
'fussText': fussText,
'zertifikat': JsonConverters.toJson(zertifikat,'PortalCertificate',context!),
'abrufCode': abrufCode,
'datenLieferant': datenLieferant,
'data': JsonConverters.toJson(data,'List<TaxData>',context!)
});
getTypeName() => "BatchValidiereAuthentifiziereSendeUndDruckeAsync";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'taxfiling.pwc.de', types: <String, TypeInfo> {
'TaxData': TypeInfo(TypeOf.Class, create:() => TaxData()),
'BatchBearbeiteVorgangBase': TypeInfo(TypeOf.AbstractClass),
'List<TaxData>': TypeInfo(TypeOf.Class, create:() => <TaxData>[]),
'FileBase': TypeInfo(TypeOf.AbstractClass),
'Uint8List': TypeInfo(TypeOf.Class, create:() => Uint8List(0)),
'PortalCertificate': TypeInfo(TypeOf.Class, create:() => PortalCertificate()),
'BatchValidiereAuthentifiziereSendeUndDruckeBase': TypeInfo(TypeOf.AbstractClass),
'BatchValidiereAuthentifiziereSendeUndDruckeAsync': TypeInfo(TypeOf.Class, create:() => BatchValidiereAuthentifiziereSendeUndDruckeAsync()),
});
Dart BatchValidiereAuthentifiziereSendeUndDruckeAsync DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /BatchValidiereAuthentifiziereSendeUndDruckeAsync HTTP/1.1
Host: taxfiling.pwc.de
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length
{"duplexDruck":false,"protocolPrefix":"String","fussText":"String","zertifikat":{"id":"00000000000000000000000000000000","index":0,"pin":"String","description":"String","tags":["String"],"name":"String","content":"AA=="},"abrufCode":"String","datenLieferant":"String","data":[{"id":"String","content":"String"}]}
HTTP/1.1 200 OK Content-Type: text/jsonl Content-Length: length [{"rueckgabe":{"erfolg":{"telenummer":["String"],"ordnungsbegriffe":["String"]},"transfers":{"transferList":[{"transferTicket":"String"}]},"fehlerRegelpruefungen":[{"nutzdatenticket":"String","feldidentifikator":"String","mehrfachzeilenindex":"String","lfdNrVordruck":"String","vordruckZeilennummer":"String","semantischeIndexes":[{"name":"String","value":"String"}],"untersachbereich":"String","privateKennnummer":"String","regelName":"String","fachlicheFehlerId":"String","text":"String"}],"hinweise":[{"nutzdatenticket":"String","feldidentifikator":"String","mehrfachzeilenindex":"String","lfdNrVordruck":"String","vordruckZeilennummer":"String","semantischeIndexes":[{"name":"String","value":"String"}],"untersachbereich":"String","privateKennnummer":"String","regelName":"String","fachlicheHinweisId":"String","text":"String"}]},"serverantwort":{"transferHeader":{"version":"String","verfahren":"ElsterAnmeldung","datenArt":"34a","vorgang":"send-Auth","transferTicket":"String","testmerker":"0","sigUser":{"inhalt":{}},"empfaenger":{"id":"String","ziel":"BW"},"herstellerID":"String","datenLieferant":"String","eingangsDatum":"\/Date(-62135596800000-0000)\/","datei":{"verschluesselung":"PKCS#7v1.5","kompression":"GZIP","transportSchluessel":"String","erstellung":{"eric":{"inhalt":{}}}},"rc":{"rueckgabe":{"code":"String","text":"String"},"stack":{"code":"String","text":"String"}},"versionClient":"String","zusatz":{"infos":["String"],"elsterInfos":["String"]}},"datenTeil":{"nutzdatenbloecke":[{"nutzdatenHeader":{"version":"String","nutzdatenTicket":"String","empfaenger":{"id":"L","value":"String"},"hersteller":{"produktName":"String","produktVersion":"String"},"datenLieferant":"String","rc":{"rueckgabe":{"code":"String","text":"String"},"stack":{"code":"String","text":"String"}},"zusatz":{"infos":["String"],"elsterInfos":["String"]}},"nutzdaten":{"inhalt":{}}}]}},"transferProtocols":[{"metadata":{"name":"String","fullName":"String","lastAccessTime":"\/Date(-62135596800000-0000)\/","lastAccessTimeUtc":"\/Date(-62135596800000-0000)\/","lastWriteTime":"\/Date(-62135596800000-0000)\/","lastWriteTimeUtc":"\/Date(-62135596800000-0000)\/","length":0,"userId":0,"groupId":0,"othersCanRead":false,"groupCanExecute":false,"groupCanWrite":false,"groupCanRead":false,"ownerCanExecute":false,"ownerCanWrite":false,"ownerCanRead":false,"othersCanExecute":false,"othersCanWrite":false,"extensions":{"String":"String"}},"name":"String","content":"AA=="}],"statusCode":"ERIC_OK","statusText":"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"}}}]