Report Filing Service

<back to all web services

SearchElmaCredential

SearchCredentialsSync

Represents a service to search for an ELMA credential.

Requires Authentication
The following routes are available for this service:
POST/sync/elma/credentials
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

/**
* Specfies a service to search for an ELMA credential.
*/
// @Api(Description="Specfies a service to search for an ELMA credential.")
abstract class SearchElmaCredentialBase implements IPost
{
    /**
    * The BZSt (Bundeszentralamt für Steuern) - tax number of the user.  11-character text field that may only consist of two capital letters and 9 digits (0-9).  The fiscal authority BZSt provides this number during registration at the BOP (BZSt-Online Portal - https://www.elster.de/bportal/start).  The number is available in the private area of the BOP user account under "My BOP" under the "Registration Information"
    */
    // @ApiMember(Description="The BZSt (Bundeszentralamt für Steuern) - tax number of the user.  11-character text field that may only consist of two capital letters and 9 digits (0-9).  The fiscal authority BZSt provides this number during registration at the BOP (BZSt-Online Portal - https://www.elster.de/bportal/start).  The number is available in the private area of the BOP user account under \"My BOP\" under the \"Registration Information\"", IsRequired=true, Name="AuthSteuernummer")
    String? authSteuernummer;

    /**
    * The account identifier of a BZSt-Online Portal (BOP) user.  10-character text field that may only contain numbers (0-9).
    */
    // @ApiMember(Description="The account identifier of a BZSt-Online Portal (BOP) user.  10-character text field that may only contain numbers (0-9).", IsRequired=true, Name="AccountId")
    String? accountId;

    SearchElmaCredentialBase({this.authSteuernummer,this.accountId});
    SearchElmaCredentialBase.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        authSteuernummer = json['authSteuernummer'];
        accountId = json['accountId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'authSteuernummer': authSteuernummer,
        'accountId': accountId
    };

    getTypeName() => "SearchElmaCredentialBase";
    TypeContext? context = _ctx;
}

/**
* Represents a PEM-encoded certificate.
*/
// @Api(Description="Represents a PEM-encoded certificate.")
class PemCertificate implements IConvertible
{
    /**
    * The unique identifier (e.g. the file name) of the certificate.
    */
    // @ApiMember(Description="The unique identifier (e.g. the file name) of the certificate.", IsRequired=true, Name="Id")
    String? id;

    /**
    * The PEM-encoded content of the certificate.
    */
    // @ApiMember(Description="The PEM-encoded content of the certificate.", IsRequired=true, Name="Content")
    String? content;

    /**
    * The description of the certificate.
    */
    // @ApiMember(Description="The description of the certificate.", Name="Description")
    String? description;

    /**
    * Tags to label or identify the certificate.
    */
    // @ApiMember(Description="Tags to label or identify the certificate.", Name="Tags")
    List<String>? tags;

    PemCertificate({this.id,this.content,this.description,this.tags});
    PemCertificate.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        content = json['content'];
        description = json['description'];
        tags = JsonConverters.fromJson(json['tags'],'List<String>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'content': content,
        'description': description,
        'tags': JsonConverters.toJson(tags,'List<String>',context!)
    };

    getTypeName() => "PemCertificate";
    TypeContext? context = _ctx;
}

/**
* Represents the credentials of a user to authenticate the access of an ELMA server.
*/
// @Api(Description="Represents the credentials of a user to authenticate the access of an ELMA server.")
class ElmaCredential implements IElmaCredential, IConvertible
{
    /**
    * The unique identifier of this instance.  This identifer is only relevant in the context of data storage and retrieval.
    */
    // @ApiMember(Description="The unique identifier of this instance.  This identifer is only relevant in the context of data storage and retrieval.", IsRequired=true, Name="Id")
    String? id;

    /**
    * The security certificate to authenticate the user and grant access to the ELMA server.  This certificate is generated from the BZSt-issued *.pfx BOP certificate. More details on BOP (BZSt-Online Portal - https://www.elster.de/bportal/start)
    */
    // @ApiMember(Description="The security certificate to authenticate the user and grant access to the ELMA server.  This certificate is generated from the BZSt-issued *.pfx BOP certificate. More details on BOP (BZSt-Online Portal - https://www.elster.de/bportal/start)", IsRequired=true, Name="Certificate")
    // @required()
    // @StringLength(2147483647)
    PemCertificate? certificate;

    /**
    * The BZSt (Bundeszentralamt für Steuern) - tax number of the user. 11-character text field that may only consist of two capital letters and 9 digits (0-9).  The fiscal authority BZSt provides this number during registration at the BOP (BZSt-Online Portal - https://www.elster.de/bportal/start).  The number is available in the private area of the BOP user account under "My BOP" under the "Registration Information"
    */
    // @ApiMember(Description="The BZSt (Bundeszentralamt für Steuern) - tax number of the user. 11-character text field that may only consist of two capital letters and 9 digits (0-9).  The fiscal authority BZSt provides this number during registration at the BOP (BZSt-Online Portal - https://www.elster.de/bportal/start).  The number is available in the private area of the BOP user account under \"My BOP\" under the \"Registration Information\"", IsRequired=true, Name="AuthSteuernummer")
    // @required()
    // @StringLength(11)
    String? authSteuernummer;

    /**
    * The account identifier of a BZSt-Online Portal (BOP) user. 10-character text field that may only contain numbers (0-9).
    */
    // @ApiMember(Description="The account identifier of a BZSt-Online Portal (BOP) user. 10-character text field that may only contain numbers (0-9).", IsRequired=true, Name="AccountId")
    // @required()
    // @StringLength(10)
    String? accountId;

    /**
    * The password to protect the certificate from unauthorized access.
    */
    // @ApiMember(Description="The password to protect the certificate from unauthorized access.", IsRequired=true, Name="Password")
    String? password;

    ElmaCredential({this.id,this.certificate,this.authSteuernummer,this.accountId,this.password});
    ElmaCredential.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        certificate = JsonConverters.fromJson(json['certificate'],'PemCertificate',context!);
        authSteuernummer = json['authSteuernummer'];
        accountId = json['accountId'];
        password = json['password'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'certificate': JsonConverters.toJson(certificate,'PemCertificate',context!),
        'authSteuernummer': authSteuernummer,
        'accountId': accountId,
        'password': password
    };

    getTypeName() => "ElmaCredential";
    TypeContext? context = _ctx;
}

/**
* Represents a service response that encapsulates an ELMA credential. The password of the ELMA credential in this response is encrypted and can only be decrypted by the owner of the private key.
*/
// @Api(Description="Represents a service response that encapsulates an ELMA credential. The password of the ELMA credential in this response is encrypted and can only be decrypted by the owner of the private key.")
class ElmaCredentialResponse implements IConvertible
{
    /**
    * The unique identifier of the response.
    */
    // @ApiMember(Description="The unique identifier of the response.", Name="Id")
    String? id;

    /**
    * The encapsulated ELMA credential.
    */
    // @ApiMember(Description="The encapsulated ELMA credential.", Name="Credential")
    ElmaCredential? credential;

    /**
    * The status of the response.
    */
    // @ApiMember(Description="The status of the response.", Name="ResponseStatus")
    ResponseStatus? responseStatus;

    ElmaCredentialResponse({this.id,this.credential,this.responseStatus});
    ElmaCredentialResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        credential = JsonConverters.fromJson(json['credential'],'ElmaCredential',context!);
        responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'credential': JsonConverters.toJson(credential,'ElmaCredential',context!),
        'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!)
    };

    getTypeName() => "ElmaCredentialResponse";
    TypeContext? context = _ctx;
}

/**
* Represents a service to search for an ELMA credential.
*/
// @Api(Description="Represents a service to search for an ELMA credential.")
class SearchElmaCredential extends SearchElmaCredentialBase implements IConvertible
{
    SearchElmaCredential();
    SearchElmaCredential.fromJson(Map<String, dynamic> json) : super.fromJson(json);
    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson();
    getTypeName() => "SearchElmaCredential";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'reportfiling.pwc.de', types: <String, TypeInfo> {
    'SearchElmaCredentialBase': TypeInfo(TypeOf.AbstractClass),
    'PemCertificate': TypeInfo(TypeOf.Class, create:() => PemCertificate()),
    'ElmaCredential': TypeInfo(TypeOf.Class, create:() => ElmaCredential()),
    'ElmaCredentialResponse': TypeInfo(TypeOf.Class, create:() => ElmaCredentialResponse()),
    'SearchElmaCredential': TypeInfo(TypeOf.Class, create:() => SearchElmaCredential()),
});

Dart SearchElmaCredential DTOs

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

HTTP + X-MSGPACK

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /sync/elma/credentials HTTP/1.1 
Host: reportfiling.pwc.de 
Accept: application/x-msgpack
Content-Type: application/x-msgpack
Content-Length: length

{"authSteuernummer":"String","accountId":"String"}
HTTP/1.1 200 OK
Content-Type: application/x-msgpack
Content-Length: length

{"id":"String","credential":{"id":"String_String","certificate":{"id":"String","content":"String","description":"String","tags":["String"]},"authSteuernummer":"String","accountId":"String","password":"String"},"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}