Tax Filing Service

<back to all web services

CreateUmsatzsteuererklaerung2021Xml

SyncUmsatzsteuerJahressteuererklärung2021

A synchronous service to create XML content that represents the annual VAT return for 2021.

Requires Authentication
The following routes are available for this service:
POST/CreateUmsatzsteuererklaerung2021XmlA synchronous service to create xml content that represents the annual VAT return for 2021
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

/**
* Basisklasse für einen benutzerdefinierten Datentyp
*/
// @Api(Description="Basisklasse für einen benutzerdefinierten Datentyp")
abstract class CustomTypBase implements ICustomTyp
{
    /**
    * Identifizierung der Zeile / Typ im Fremdprogramm.
    */
    // @ApiMember(Description="Identifizierung der Zeile / Typ im Fremdprogramm.", Name="Alias")
    String? alias;

    CustomTypBase({this.alias});
    CustomTypBase.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

/**
* Boolescher Datentyp, welcher als '1' (Ja) oder '' (Nein) im Jahressteuererklärung angeschrieben wird.
*/
// @Api(Description="Boolescher Datentyp, welcher als '1' (Ja) oder '' (Nein) im Jahressteuererklärung angeschrieben wird.")
class Bool1Typ extends CustomTypBase implements IConvertible
{
    /**
    * Wenn der Wert true ist, '1' wird im Jahressteuererklärung angeschrieben; ansonsten ein Leerstring.
    */
    // @ApiMember(Description="Wenn der Wert true ist, '1' wird im Jahressteuererklärung angeschrieben; ansonsten ein Leerstring.", IsRequired=true, Name="Wert")
    bool? wert;

    /**
    * Identifizierung der Zeile / Typ im Fremdprogramm.
    */
    // @ApiMember(Description="Identifizierung der Zeile / Typ im Fremdprogramm.", Name="Alias")
    String? alias;

    Bool1Typ({this.wert,this.alias});
    Bool1Typ.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        wert = json['wert'];
        alias = json['alias'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'wert': wert,
        'alias': alias
    });

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

/**
* Boolescher Datentyp, welcher als 'X' (Ja) oder Leerstring (Nein) im Jahressteuererklärung angeschrieben wird.
*/
// @Api(Description="Boolescher Datentyp, welcher als 'X' (Ja) oder Leerstring (Nein) im Jahressteuererklärung angeschrieben wird.")
class BoolXTyp extends CustomTypBase implements IConvertible
{
    /**
    * Wenn der Wert true ist, 'X' wird im Jahressteuererklärung angeschrieben; ansonsten ein Leerstring.
    */
    // @ApiMember(Description="Wenn der Wert true ist, 'X' wird im Jahressteuererklärung angeschrieben; ansonsten ein Leerstring.", IsRequired=true, Name="Wert")
    bool? wert;

    /**
    * Identifizierung der Zeile / Typ im Fremdprogramm.
    */
    // @ApiMember(Description="Identifizierung der Zeile / Typ im Fremdprogramm.", Name="Alias")
    String? alias;

    BoolXTyp({this.wert,this.alias});
    BoolXTyp.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        wert = json['wert'];
        alias = json['alias'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'wert': wert,
        'alias': alias
    });

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

/**
* Berichtigte Erklärung
*/
// @Api(Description="Berichtigte Erklärung")
class BerErkl2021 implements IConvertible
{
    /**
    * Berichtigte Steuererklärung? Falls ja, bitte eine 'true' eintragen
    */
    // @ApiMember(Description="Berichtigte Steuererklärung? Falls ja, bitte eine 'true' eintragen", Name="E3000601")
    Bool1Typ? e3000601;

    /**
    * Diese Steuererklärung wurde digital signiert? Falls ja, bitte eine 'true' eintragen
    */
    // @ApiMember(Description="Diese Steuererklärung wurde digital signiert? Falls ja, bitte eine 'true' eintragen", IsRequired=true, Name="E3000013")
    BoolXTyp? e3000013;

    BerErkl2021({this.e3000601,this.e3000013});
    BerErkl2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3000601 = JsonConverters.fromJson(json['e3000601'],'Bool1Typ',context!);
        e3000013 = JsonConverters.fromJson(json['e3000013'],'BoolXTyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3000601': JsonConverters.toJson(e3000601,'Bool1Typ',context!),
        'e3000013': JsonConverters.toJson(e3000013,'BoolXTyp',context!)
    };

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

/**
* Zeichenkettenfeld.
*/
// @Api(Description="Zeichenkettenfeld.")
class StringTyp extends CustomTypBase implements IConvertible
{
    /**
    * Der Wert des Datentyps.  1 bis 999 Zeichen, alphanumerisch
    */
    // @ApiMember(Description="Der Wert des Datentyps. \n 1 bis 999 Zeichen, alphanumerisch", IsRequired=true, Name="Wert")
    String? wert;

    /**
    * Identifizierung der Zeile / Typ im Fremdprogramm.
    */
    // @ApiMember(Description="Identifizierung der Zeile / Typ im Fremdprogramm.", Name="Alias")
    String? alias;

    StringTyp({this.wert,this.alias});
    StringTyp.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        wert = json['wert'];
        alias = json['alias'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'wert': wert,
        'alias': alias
    });

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

/**
* Adresse oder Postfach eines Unternehmens
*/
// @Api(Description="Adresse oder Postfach eines Unternehmens")
class UnternehmenAdr2021 implements IConvertible
{
    /**
    * Straße
    */
    // @ApiMember(Description="Straße", IsRequired=true, Name="E3001101")
    // @Validate(Validator="NotNull")
    StringTyp? e3001101;

    /**
    * Hausnummer
    */
    // @ApiMember(Description="Hausnummer", IsRequired=true, Name="E3001203")
    // @Validate(Validator="NotNull")
    StringTyp? e3001203;

    /**
    * Hausnummerzusatz
    */
    // @ApiMember(Description="Hausnummerzusatz", Name="E3001204")
    StringTyp? e3001204;

    /**
    * Adressergänzung
    */
    // @ApiMember(Description="Adressergänzung", Name="E3001205")
    StringTyp? e3001205;

    /**
    * Postleitzahl, Ort
    */
    // @ApiMember(Description="Postleitzahl, Ort", Name="E3001201")
    StringTyp? e3001201;

    /**
    * Postleitzahl zu Postfach
    */
    // @ApiMember(Description="Postleitzahl zu Postfach", Name="E3001403")
    StringTyp? e3001403;

    /**
    * Postfach
    */
    // @ApiMember(Description="Postfach", Name="E3001404")
    StringTyp? e3001404;

    UnternehmenAdr2021({this.e3001101,this.e3001203,this.e3001204,this.e3001205,this.e3001201,this.e3001403,this.e3001404});
    UnternehmenAdr2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3001101 = JsonConverters.fromJson(json['e3001101'],'StringTyp',context!);
        e3001203 = JsonConverters.fromJson(json['e3001203'],'StringTyp',context!);
        e3001204 = JsonConverters.fromJson(json['e3001204'],'StringTyp',context!);
        e3001205 = JsonConverters.fromJson(json['e3001205'],'StringTyp',context!);
        e3001201 = JsonConverters.fromJson(json['e3001201'],'StringTyp',context!);
        e3001403 = JsonConverters.fromJson(json['e3001403'],'StringTyp',context!);
        e3001404 = JsonConverters.fromJson(json['e3001404'],'StringTyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3001101': JsonConverters.toJson(e3001101,'StringTyp',context!),
        'e3001203': JsonConverters.toJson(e3001203,'StringTyp',context!),
        'e3001204': JsonConverters.toJson(e3001204,'StringTyp',context!),
        'e3001205': JsonConverters.toJson(e3001205,'StringTyp',context!),
        'e3001201': JsonConverters.toJson(e3001201,'StringTyp',context!),
        'e3001403': JsonConverters.toJson(e3001403,'StringTyp',context!),
        'e3001404': JsonConverters.toJson(e3001404,'StringTyp',context!)
    };

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

/**
* Kontakt eines Unternehmens
*/
// @Api(Description="Kontakt eines Unternehmens")
class UnternehmenKontakt2021 implements IConvertible
{
    /**
    * Telefon
    */
    // @ApiMember(Description="Telefon", Name="E3001202")
    StringTyp? e3001202;

    /**
    * E-Mail Adresse
    */
    // @ApiMember(Description="E-Mail Adresse", Name="E3001301")
    StringTyp? e3001301;

    UnternehmenKontakt2021({this.e3001202,this.e3001301});
    UnternehmenKontakt2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3001202 = JsonConverters.fromJson(json['e3001202'],'StringTyp',context!);
        e3001301 = JsonConverters.fromJson(json['e3001301'],'StringTyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3001202': JsonConverters.toJson(e3001202,'StringTyp',context!),
        'e3001301': JsonConverters.toJson(e3001301,'StringTyp',context!)
    };

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

/**
* Angaben zum Unternehmen
*/
// @Api(Description="Angaben zum Unternehmen")
class Unternehmen2021 implements IConvertible
{
    /**
    * Name des Unternehmers
    */
    // @ApiMember(Description="Name des Unternehmers", IsRequired=true, Name="E3000901")
    // @Validate(Validator="NotNull")
    StringTyp? e3000901;

    /**
    * gegebenenfalls abweichender Firmenname
    */
    // @ApiMember(Description="gegebenenfalls abweichender Firmenname", Name="E3000902")
    StringTyp? e3000902;

    /**
    * Art des Unternehmens
    */
    // @ApiMember(Description="Art des Unternehmens", Name="E3001001")
    StringTyp? e3001001;

    /**
    * Adresse oder Postfach
    */
    // @ApiMember(Description="Adresse oder Postfach", Name="Adr")
    UnternehmenAdr2021? adr;

    /**
    * Kontakt
    */
    // @ApiMember(Description="Kontakt", Name="Kontakt")
    UnternehmenKontakt2021? kontakt;

    Unternehmen2021({this.e3000901,this.e3000902,this.e3001001,this.adr,this.kontakt});
    Unternehmen2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3000901 = JsonConverters.fromJson(json['e3000901'],'StringTyp',context!);
        e3000902 = JsonConverters.fromJson(json['e3000902'],'StringTyp',context!);
        e3001001 = JsonConverters.fromJson(json['e3001001'],'StringTyp',context!);
        adr = JsonConverters.fromJson(json['adr'],'UnternehmenAdr2021',context!);
        kontakt = JsonConverters.fromJson(json['kontakt'],'UnternehmenKontakt2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3000901': JsonConverters.toJson(e3000901,'StringTyp',context!),
        'e3000902': JsonConverters.toJson(e3000902,'StringTyp',context!),
        'e3001001': JsonConverters.toJson(e3001001,'StringTyp',context!),
        'adr': JsonConverters.toJson(adr,'UnternehmenAdr2021',context!),
        'kontakt': JsonConverters.toJson(kontakt,'UnternehmenKontakt2021',context!)
    };

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

/**
* Im Ausland ansässiger Unternehmer
*/
// @Api(Description="Im Ausland ansässiger Unternehmer")
class ImAuslAnsUnt2021 implements IConvertible
{
    /**
    * Im Ausland ansässiger Unternehmer (falls ja, bitte eine 1 eintragen? Bitte tätigen Sie in diesem Fall auch Angaben auf der Anlage UN.
    */
    // @ApiMember(Description="Im Ausland ansässiger Unternehmer (falls ja, bitte eine 1 eintragen? Bitte tätigen Sie in diesem Fall auch Angaben auf der Anlage UN.", Name="E3001402")
    Bool1Typ? e3001402;

    ImAuslAnsUnt2021({this.e3001402});
    ImAuslAnsUnt2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3001402 = JsonConverters.fromJson(json['e3001402'],'Bool1Typ',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3001402': JsonConverters.toJson(e3001402,'Bool1Typ',context!)
    };

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

/**
* Fiskalvertreter
*/
// @Api(Description="Fiskalvertreter")
class Fiskalvertr2021 implements IConvertible
{
    /**
    * Fiskalvertreter (falls ja, bitte eine 1 eintragen). Bitte tätigen Sie in diesem Fall auch Angaben auf der Anlage FV.
    */
    // @ApiMember(Description="Fiskalvertreter (falls ja, bitte eine 1 eintragen). Bitte tätigen Sie in diesem Fall auch Angaben auf der Anlage FV.", Name="E3001801")
    Bool1Typ? e3001801;

    Fiskalvertr2021({this.e3001801});
    Fiskalvertr2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3001801 = JsonConverters.fromJson(json['e3001801'],'Bool1Typ',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3001801': JsonConverters.toJson(e3001801,'Bool1Typ',context!)
    };

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

/**
* Stellt ein Datumbereich dar (TT.MM-TT.MM) dar
*/
// @Api(Description="Stellt ein Datumbereich dar (TT.MM-TT.MM) dar")
class ErklaerungZeitraum implements IConvertible
{
    /**
    * Der Anfang des Datumbreiches.
    */
    // @ApiMember(Description="Der Anfang des Datumbreiches.", Name="Start")
    DateTime? start;

    /**
    * Das Ende des Datumbereiches.
    */
    // @ApiMember(Description="Das Ende des Datumbereiches.", Name="Ende")
    DateTime? ende;

    ErklaerungZeitraum({this.start,this.ende});
    ErklaerungZeitraum.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        start = JsonConverters.fromJson(json['start'],'DateTime',context!);
        ende = JsonConverters.fromJson(json['ende'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'start': JsonConverters.toJson(start,'DateTime',context!),
        'ende': JsonConverters.toJson(ende,'DateTime',context!)
    };

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

/**
* Datum-Uhrzeit-Typ. Format: TT.MM - TT. MM
*/
// @Api(Description="Datum-Uhrzeit-Typ. Format: TT.MM - TT. MM")
class ZeitraumTyp extends CustomTypBase implements IConvertible
{
    /**
    * Wert des Datentyps.
    */
    // @ApiMember(Description="Wert des Datentyps.", IsRequired=true, Name="Wert")
    ErklaerungZeitraum? wert;

    /**
    * Identifizierung der Zeile / Typ im Fremdprogramm.
    */
    // @ApiMember(Description="Identifizierung der Zeile / Typ im Fremdprogramm.", Name="Alias")
    String? alias;

    ZeitraumTyp({this.wert,this.alias});
    ZeitraumTyp.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        wert = JsonConverters.fromJson(json['wert'],'ErklaerungZeitraum',context!);
        alias = json['alias'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'wert': JsonConverters.toJson(wert,'ErklaerungZeitraum',context!),
        'alias': alias
    });

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

/**
* Dauer der Unternehmereigenschaft
*/
// @Api(Description="Dauer der Unternehmereigenschaft")
class DauerUntEig2021 implements IConvertible
{
    /**
    * 1. Zeitraum
    */
    // @ApiMember(Description="1. Zeitraum", Name="E3001401")
    ZeitraumTyp? e3001401;

    /**
    * 2. Zeitraum
    */
    // @ApiMember(Description="2. Zeitraum", Name="E3001501")
    ZeitraumTyp? e3001501;

    DauerUntEig2021({this.e3001401,this.e3001501});
    DauerUntEig2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3001401 = JsonConverters.fromJson(json['e3001401'],'ZeitraumTyp',context!);
        e3001501 = JsonConverters.fromJson(json['e3001501'],'ZeitraumTyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3001401': JsonConverters.toJson(e3001401,'ZeitraumTyp',context!),
        'e3001501': JsonConverters.toJson(e3001501,'ZeitraumTyp',context!)
    };

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

/**
* Art der Entgelte
*/
// @flags()
class Entgeltart
{
    static const Entgeltart VereinbarteEntgelte = const Entgeltart._(1);
    static const Entgeltart VereinnahmteEntgelte = const Entgeltart._(16);

    final int _value;
    const Entgeltart._(this._value);
    int get value => _value;
    static List<Entgeltart> get values => const [VereinbarteEntgelte,VereinnahmteEntgelte];
}

/**
* Datentyp, welches die Art der Entgeltart darstellt.
*/
// @Api(Description="Datentyp, welches die Art der Entgeltart darstellt.")
class EntgeltartTyp extends CustomTypBase implements IConvertible
{
    /**
    * Wert des Datentyps.
    */
    // @ApiMember(Description="Wert des Datentyps.", IsRequired=true, Name="Wert")
    Entgeltart? wert;

    /**
    * Identifizierung der Zeile / Typ im Fremdprogramm.
    */
    // @ApiMember(Description="Identifizierung der Zeile / Typ im Fremdprogramm.", Name="Alias")
    String? alias;

    EntgeltartTyp({this.wert,this.alias});
    EntgeltartTyp.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        wert = JsonConverters.fromJson(json['wert'],'Entgeltart',context!);
        alias = json['alias'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'wert': JsonConverters.toJson(wert,'Entgeltart',context!),
        'alias': alias
    });

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

/**
* Besteuerung der Entgelte
*/
// @Api(Description="Besteuerung der Entgelte")
class BestArt2021 implements IConvertible
{
    /**
    * Die Steuer wurde berechnet nach
    */
    // @ApiMember(Description="Die Steuer wurde berechnet nach", IsRequired=true, Name="E3002203")
    // @Validate(Validator="NotNull")
    EntgeltartTyp? e3002203;

    BestArt2021({this.e3002203});
    BestArt2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3002203 = JsonConverters.fromJson(json['e3002203'],'EntgeltartTyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3002203': JsonConverters.toJson(e3002203,'EntgeltartTyp',context!)
    };

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

/**
* Verrechnung / Abtretung
*/
// @Api(Description="Verrechnung / Abtretung")
class Verrech2021 implements IConvertible
{
    /**
    * Verrechnung des Erstattungsbetrages erwünscht / Erstattungsbetrag ist abgetreten?
    */
    // @ApiMember(Description="Verrechnung des Erstattungsbetrages erwünscht / Erstattungsbetrag ist abgetreten?", Name="E3001701")
    Bool1Typ? e3001701;

    Verrech2021({this.e3001701});
    Verrech2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3001701 = JsonConverters.fromJson(json['e3001701'],'Bool1Typ',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3001701': JsonConverters.toJson(e3001701,'Bool1Typ',context!)
    };

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

/**
* Ergänzende Angaben zur Steuererklärung
*/
// @Api(Description="Ergänzende Angaben zur Steuererklärung")
class ErgAngErkl2021 implements IConvertible
{
    /**
    * Über die Angaben in der Steuererklärung hinaus sind weitere oder abweichende Angaben oder Sachverhalte zu berücksichtigen?
    */
    // @ApiMember(Description="Über die Angaben in der Steuererklärung hinaus sind weitere oder abweichende Angaben oder Sachverhalte zu berücksichtigen?", Name="E3002201")
    Bool1Typ? e3002201;

    /**
    * Ergänzende Angaben zur Steuererklärung
    */
    // @ApiMember(Description="Ergänzende Angaben zur Steuererklärung", Name="E3002202")
    StringTyp? e3002202;

    ErgAngErkl2021({this.e3002201,this.e3002202});
    ErgAngErkl2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3002201 = JsonConverters.fromJson(json['e3002201'],'Bool1Typ',context!);
        e3002202 = JsonConverters.fromJson(json['e3002202'],'StringTyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3002201': JsonConverters.toJson(e3002201,'Bool1Typ',context!),
        'e3002202': JsonConverters.toJson(e3002202,'StringTyp',context!)
    };

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

/**
* Allgemeine Angaben
*/
// @Api(Description="Allgemeine Angaben")
class Allg2021 implements IConvertible
{
    /**
    * Angaben zum Unternehmen
    */
    // @ApiMember(Description="Angaben zum Unternehmen", Name="Unternehmen")
    Unternehmen2021? unternehmen;

    /**
    * Im Ausland ansässiger Unternehmer?
    */
    // @ApiMember(Description="Im Ausland ansässiger Unternehmer?", Name="ImAuslAnsUnt")
    ImAuslAnsUnt2021? imAuslAnsUnt;

    /**
    * Fiskalvertreter?
    */
    // @ApiMember(Description="Fiskalvertreter?", Name="Fiskalvetr")
    Fiskalvertr2021? fiskalvetr;

    /**
    * Dauer der Unternehmereigenschaft (falls nicht vom 1. Januar bis zum 31. Dezember 2021)
    */
    // @ApiMember(Description="Dauer der Unternehmereigenschaft (falls nicht vom 1. Januar bis zum 31. Dezember 2021)", Name="DauerUntEig")
    DauerUntEig2021? dauerUntEig;

    /**
    * Besteuerungen der Entgelte
    */
    // @ApiMember(Description="Besteuerungen der Entgelte", Name="BestArt")
    BestArt2021? bestArt;

    /**
    * Verrechnungen / Abtretungen
    */
    // @ApiMember(Description="Verrechnungen / Abtretungen", Name="Verrech")
    Verrech2021? verrech;

    /**
    * Ergänzende Angaben zur Steuererklärung
    */
    // @ApiMember(Description="Ergänzende Angaben zur Steuererklärung", Name="ErgAngErkl")
    ErgAngErkl2021? ergAngErkl;

    Allg2021({this.unternehmen,this.imAuslAnsUnt,this.fiskalvetr,this.dauerUntEig,this.bestArt,this.verrech,this.ergAngErkl});
    Allg2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        unternehmen = JsonConverters.fromJson(json['unternehmen'],'Unternehmen2021',context!);
        imAuslAnsUnt = JsonConverters.fromJson(json['imAuslAnsUnt'],'ImAuslAnsUnt2021',context!);
        fiskalvetr = JsonConverters.fromJson(json['fiskalvetr'],'Fiskalvertr2021',context!);
        dauerUntEig = JsonConverters.fromJson(json['dauerUntEig'],'DauerUntEig2021',context!);
        bestArt = JsonConverters.fromJson(json['bestArt'],'BestArt2021',context!);
        verrech = JsonConverters.fromJson(json['verrech'],'Verrech2021',context!);
        ergAngErkl = JsonConverters.fromJson(json['ergAngErkl'],'ErgAngErkl2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'unternehmen': JsonConverters.toJson(unternehmen,'Unternehmen2021',context!),
        'imAuslAnsUnt': JsonConverters.toJson(imAuslAnsUnt,'ImAuslAnsUnt2021',context!),
        'fiskalvetr': JsonConverters.toJson(fiskalvetr,'Fiskalvertr2021',context!),
        'dauerUntEig': JsonConverters.toJson(dauerUntEig,'DauerUntEig2021',context!),
        'bestArt': JsonConverters.toJson(bestArt,'BestArt2021',context!),
        'verrech': JsonConverters.toJson(verrech,'Verrech2021',context!),
        'ergAngErkl': JsonConverters.toJson(ergAngErkl,'ErgAngErkl2021',context!)
    };

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

class Kanzlei2021 implements IConvertible
{
    /**
    * Bearbeiterkennzeichen
    */
    // @ApiMember(Description="Bearbeiterkennzeichen", Name="E3002509")
    StringTyp? e3002509;

    /**
    * Mandantennummer
    */
    // @ApiMember(Description="Mandantennummer", Name="E3002506")
    StringTyp? e3002506;

    /**
    * (Feld? wird nicht gedruckt)Mandantennummer für Bescheiddatenabholung
    */
    // @ApiMember(Description="(Feld? wird nicht gedruckt)Mandantennummer für Bescheiddatenabholung", Name="E3002507")
    StringTyp? e3002507;

    Kanzlei2021({this.e3002509,this.e3002506,this.e3002507});
    Kanzlei2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3002509 = JsonConverters.fromJson(json['e3002509'],'StringTyp',context!);
        e3002506 = JsonConverters.fromJson(json['e3002506'],'StringTyp',context!);
        e3002507 = JsonConverters.fromJson(json['e3002507'],'StringTyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3002509': JsonConverters.toJson(e3002509,'StringTyp',context!),
        'e3002506': JsonConverters.toJson(e3002506,'StringTyp',context!),
        'e3002507': JsonConverters.toJson(e3002507,'StringTyp',context!)
    };

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

class Bearb2021 implements IConvertible
{
    /**
    * Name
    */
    // @ApiMember(Description="Name", Name="E3002501")
    StringTyp? e3002501;

    /**
    * Vorname
    */
    // @ApiMember(Description="Vorname", Name="E3002502")
    StringTyp? e3002502;

    Bearb2021({this.e3002501,this.e3002502});
    Bearb2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3002501 = JsonConverters.fromJson(json['e3002501'],'StringTyp',context!);
        e3002502 = JsonConverters.fromJson(json['e3002502'],'StringTyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3002501': JsonConverters.toJson(e3002501,'StringTyp',context!),
        'e3002502': JsonConverters.toJson(e3002502,'StringTyp',context!)
    };

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

class MitwirkAdr2021 implements IConvertible
{
    /**
    * Straße, Hausnummer
    */
    // @ApiMember(Description="Straße, Hausnummer", Name="E3002503")
    StringTyp? e3002503;

    /**
    * Postleitzahl, Wohnort
    */
    // @ApiMember(Description="Postleitzahl, Wohnort", Name="E3002504")
    StringTyp? e3002504;

    MitwirkAdr2021({this.e3002503,this.e3002504});
    MitwirkAdr2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3002503 = JsonConverters.fromJson(json['e3002503'],'StringTyp',context!);
        e3002504 = JsonConverters.fromJson(json['e3002504'],'StringTyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3002503': JsonConverters.toJson(e3002503,'StringTyp',context!),
        'e3002504': JsonConverters.toJson(e3002504,'StringTyp',context!)
    };

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

class MitwirkKontakt2021 implements IConvertible
{
    /**
    * Telefon
    */
    // @ApiMember(Description="Telefon", Name="E3002505")
    StringTyp? e3002505;

    /**
    * zusätzliche Angaben
    */
    // @ApiMember(Description="zusätzliche Angaben", Name="E3002508")
    StringTyp? e3002508;

    MitwirkKontakt2021({this.e3002505,this.e3002508});
    MitwirkKontakt2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3002505 = JsonConverters.fromJson(json['e3002505'],'StringTyp',context!);
        e3002508 = JsonConverters.fromJson(json['e3002508'],'StringTyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3002505': JsonConverters.toJson(e3002505,'StringTyp',context!),
        'e3002508': JsonConverters.toJson(e3002508,'StringTyp',context!)
    };

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

class MitwirkErkl2021 implements IConvertible
{
    /**
    * Die Steuererklärung wurde unter Mitwirkung eines Angehörigen der steuerberatenden Berufe im Sinne der §§ 3 und 4 des Steuerberatungsgesetzes erstellt
    */
    // @ApiMember(Description="Die Steuererklärung wurde unter Mitwirkung eines Angehörigen der steuerberatenden Berufe im Sinne der §§ 3 und 4 des Steuerberatungsgesetzes erstellt", Name="E3002602")
    Bool1Typ? e3002602;

    MitwirkErkl2021({this.e3002602});
    MitwirkErkl2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3002602 = JsonConverters.fromJson(json['e3002602'],'Bool1Typ',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3002602': JsonConverters.toJson(e3002602,'Bool1Typ',context!)
    };

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

/**
* Angaben zum Mitwirkender, der bei der Anfertigung dieser Steuererklärung einschließlich der Anlagen mitgewirkt hat.
*/
// @Api(Description="Angaben zum Mitwirkender, der bei der Anfertigung dieser Steuererklärung einschließlich der Anlagen mitgewirkt hat.")
class Mitwirk2021 implements IConvertible
{
    /**
    * Angaben zu den Kanzleien
    */
    // @ApiMember(Description="Angaben zu den Kanzleien", Name="Kanzlei")
    Kanzlei2021? kanzlei;

    /**
    * Angaben zu den Bearbeiter
    */
    // @ApiMember(Description="Angaben zu den Bearbeiter", Name="Bearb")
    Bearb2021? bearb;

    /**
    * Adressen der Mitwirkende
    */
    // @ApiMember(Description="Adressen der Mitwirkende", Name="Adr")
    MitwirkAdr2021? adr;

    /**
    * Kontakte der Mitwirkende
    */
    // @ApiMember(Description="Kontakte der Mitwirkende", Name="Kontakt")
    MitwirkKontakt2021? kontakt;

    /**
    * Mitwirkungen bei der Steuererklärung
    */
    // @ApiMember(Description="Mitwirkungen bei der Steuererklärung", Name="MitwirkErkl")
    MitwirkErkl2021? mitwirkErkl;

    Mitwirk2021({this.kanzlei,this.bearb,this.adr,this.kontakt,this.mitwirkErkl});
    Mitwirk2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        kanzlei = JsonConverters.fromJson(json['kanzlei'],'Kanzlei2021',context!);
        bearb = JsonConverters.fromJson(json['bearb'],'Bearb2021',context!);
        adr = JsonConverters.fromJson(json['adr'],'MitwirkAdr2021',context!);
        kontakt = JsonConverters.fromJson(json['kontakt'],'MitwirkKontakt2021',context!);
        mitwirkErkl = JsonConverters.fromJson(json['mitwirkErkl'],'MitwirkErkl2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'kanzlei': JsonConverters.toJson(kanzlei,'Kanzlei2021',context!),
        'bearb': JsonConverters.toJson(bearb,'Bearb2021',context!),
        'adr': JsonConverters.toJson(adr,'MitwirkAdr2021',context!),
        'kontakt': JsonConverters.toJson(kontakt,'MitwirkKontakt2021',context!),
        'mitwirkErkl': JsonConverters.toJson(mitwirkErkl,'MitwirkErkl2021',context!)
    };

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

/**
* Specifies an amount of money without cents with limits and a specialized string representation
*/
// @Api(Description="Specifies an amount of money without cents with limits and a specialized string representation")
abstract class GeldBetragOhneCent
{
    /**
    * The intrinsic currency value.
    */
    // @ApiMember(Description="The intrinsic currency value.")
    int? wert;

    GeldBetragOhneCent({this.wert});
    GeldBetragOhneCent.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

/**
* Represents an amount of money without cents whose value has a maximum length of 5 digits.That is, 1 to 5 digits. Minus sign allowed
*/
// @Api(Description="Represents an amount of money without cents whose value has a maximum length of 5 digits.That is, 1 to 5 digits. Minus sign allowed")
class GeldBetragOhneCent5DE extends GeldBetragOhneCent implements IConvertible
{
    /**
    * The intrinsic currency value.
    */
    // @ApiMember(Description="The intrinsic currency value.")
    int? wert;

    GeldBetragOhneCent5DE({this.wert});
    GeldBetragOhneCent5DE.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        wert = json['wert'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'wert': wert
    });

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

/**
* Geldbetrag ohne Cent mit 6 Stellen. Mindestens eine Ziffer und maximal 5 Ziffern. Minusvorzeichen erlaubt.
*/
// @Api(Description="Geldbetrag ohne Cent mit 6 Stellen. Mindestens eine Ziffer und maximal 5 Ziffern. Minusvorzeichen erlaubt.")
class GeldBetragOhneCent5DETyp extends CustomTypBase implements IConvertible
{
    /**
    * Wert des Datentyps. Mindestens eine Ziffer und maximal 5 Ziffern. Minusvorzeichen erlaubt.
    */
    // @ApiMember(Description="Wert des Datentyps. Mindestens eine Ziffer und maximal 5 Ziffern. Minusvorzeichen erlaubt.", IsRequired=true)
    GeldBetragOhneCent5DE? betrag;

    /**
    * Identifizierung der Zeile / Typ im Fremdprogramm.
    */
    // @ApiMember(Description="Identifizierung der Zeile / Typ im Fremdprogramm.", Name="Alias")
    String? alias;

    GeldBetragOhneCent5DETyp({this.betrag,this.alias});
    GeldBetragOhneCent5DETyp.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        betrag = JsonConverters.fromJson(json['betrag'],'GeldBetragOhneCent5DE',context!);
        alias = json['alias'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'betrag': JsonConverters.toJson(betrag,'GeldBetragOhneCent5DE',context!),
        'alias': alias
    });

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

/**
* Specifies an amount of money without cents with limits and a specialized string representation
*/
// @Api(Description="Specifies an amount of money without cents with limits and a specialized string representation")
abstract class GrossGeldBetragOhneCent
{
    /**
    * The intrinsic currency value.
    */
    // @ApiMember(Description="The intrinsic currency value.")
    int? wert;

    GrossGeldBetragOhneCent({this.wert});
    GrossGeldBetragOhneCent.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

/**
* Represents an amount of money without cents whose value has a maximum length of 12 digits. That is, 1 to 12 digits. Minus sign allowed.
*/
// @Api(Description="Represents an amount of money without cents whose value has a maximum length of 12 digits. That is, 1 to 12 digits. Minus sign allowed.")
class GeldBetragOhneCent12DE extends GrossGeldBetragOhneCent implements IConvertible
{
    /**
    * The intrinsic currency value.
    */
    // @ApiMember(Description="The intrinsic currency value.")
    int? wert;

    GeldBetragOhneCent12DE({this.wert});
    GeldBetragOhneCent12DE.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        wert = json['wert'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'wert': wert
    });

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

/**
* Geldbetrag ohne Cent mit 13 Stellen. Mindestens eine Ziffer und maximal 12 Ziffern. Minusvorzeichen erlaubt.
*/
// @Api(Description="Geldbetrag ohne Cent mit 13 Stellen. Mindestens eine Ziffer und maximal 12 Ziffern. Minusvorzeichen erlaubt.")
class GeldBetragOhneCent12DETyp extends CustomTypBase implements IConvertible
{
    /**
    * Wert des Datentyps. Mindestens eine Ziffer und maximal 12 Ziffern. Minusvorzeichen erlaubt.
    */
    // @ApiMember(Description="Wert des Datentyps. Mindestens eine Ziffer und maximal 12 Ziffern. Minusvorzeichen erlaubt.", IsRequired=true)
    GeldBetragOhneCent12DE? betrag;

    /**
    * Identifizierung der Zeile / Typ im Fremdprogramm.
    */
    // @ApiMember(Description="Identifizierung der Zeile / Typ im Fremdprogramm.", Name="Alias")
    String? alias;

    GeldBetragOhneCent12DETyp({this.betrag,this.alias});
    GeldBetragOhneCent12DETyp.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        betrag = JsonConverters.fromJson(json['betrag'],'GeldBetragOhneCent12DE',context!);
        alias = json['alias'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'betrag': JsonConverters.toJson(betrag,'GeldBetragOhneCent12DE',context!),
        'alias': alias
    });

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

/**
* Angaben der Besteuerung von Kleinunternehmer der Umsatzsteuererklärung.
*/
// @Api(Description="Angaben der Besteuerung von Kleinunternehmer der Umsatzsteuererklärung.")
class Kleinuntern2021 implements IConvertible
{
    /**
    * Umsatz im Kalenderjahr $VZ-1$ (Berechnung nach § 19 Absatz 1 und 3 UStG)
    */
    // @ApiMember(Description="Umsatz im Kalenderjahr $VZ-1$ (Berechnung nach § 19 Absatz 1 und 3 UStG)", Name="E3002301")
    GeldBetragOhneCent5DETyp? e3002301;

    /**
    * Umsatz im Kalenderjahr 2021 (Berechnung nach § 19 Absatz 1 und 3 UStG)
    */
    // @ApiMember(Description="Umsatz im Kalenderjahr 2021 (Berechnung nach § 19 Absatz 1 und 3 UStG)", Name="E3002401")
    GeldBetragOhneCent12DETyp? e3002401;

    Kleinuntern2021({this.e3002301,this.e3002401});
    Kleinuntern2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3002301 = JsonConverters.fromJson(json['e3002301'],'GeldBetragOhneCent5DETyp',context!);
        e3002401 = JsonConverters.fromJson(json['e3002401'],'GeldBetragOhneCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3002301': JsonConverters.toJson(e3002301,'GeldBetragOhneCent5DETyp',context!),
        'e3002401': JsonConverters.toJson(e3002401,'GeldBetragOhneCent12DETyp',context!)
    };

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

/**
* Specifies an amount of money with cents with limits and a specialized string representation
*/
// @Api(Description="Specifies an amount of money with cents with limits and a specialized string representation")
abstract class GeldBetragMitCent
{
    /**
    * The intrinsic currency value.
    */
    // @ApiMember(Description="The intrinsic currency value.")
    double? wert;

    GeldBetragMitCent({this.wert});
    GeldBetragMitCent.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        wert = JsonConverters.toDouble(json['wert']);
        return this;
    }

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

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

/**
* Represents an amount of money with cents whose value has a maximum length of 14 digits. That is, 1 to 12 digits before the decimal separator and 2 digits after the decimal separator. Minus sign allowed.
*/
// @Api(Description="Represents an amount of money with cents whose value has a maximum length of 14 digits. That is, 1 to 12 digits before the decimal separator and 2 digits after the decimal separator. Minus sign allowed.")
class GeldBetragMitCent12DE extends GeldBetragMitCent implements IConvertible
{
    /**
    * The intrinsic currency value.
    */
    // @ApiMember(Description="The intrinsic currency value.")
    double? wert;

    GeldBetragMitCent12DE({this.wert});
    GeldBetragMitCent12DE.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        wert = JsonConverters.toDouble(json['wert']);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'wert': wert
    });

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

/**
* Geldbetrag mit Cent mit 12 Vorkommastellen. Mindestens eine Ziffer und maximal 12 Ziffern vor dem Dezimaltrennzeichen. 2 Ziffern nach dem Dezimaltrennzeichen. Minusvorzeichen erlaubt. ',' als Dezimaltrennzeichen.
*/
// @Api(Description="Geldbetrag mit Cent mit 12 Vorkommastellen. Mindestens eine Ziffer und maximal 12 Ziffern vor dem Dezimaltrennzeichen. 2 Ziffern nach dem Dezimaltrennzeichen. Minusvorzeichen erlaubt. ',' als Dezimaltrennzeichen.")
class GeldBetragMitCent12DETyp extends CustomTypBase implements IConvertible
{
    /**
    * Wert des Datentyps. Mindestens eine Ziffer und maximal 12 Ziffern vor dem Dezimaltrennzeichen. 2 Ziffern nach dem Dezimaltrennzeichen. Minusvorzeichen erlaubt.
    */
    // @ApiMember(Description="Wert des Datentyps. Mindestens eine Ziffer und maximal 12 Ziffern vor dem Dezimaltrennzeichen. 2 Ziffern nach dem Dezimaltrennzeichen. Minusvorzeichen erlaubt.", IsRequired=true, Name="Betrag")
    GeldBetragMitCent12DE? betrag;

    /**
    * Identifizierung der Zeile / Typ im Fremdprogramm.
    */
    // @ApiMember(Description="Identifizierung der Zeile / Typ im Fremdprogramm.", Name="Alias")
    String? alias;

    GeldBetragMitCent12DETyp({this.betrag,this.alias});
    GeldBetragMitCent12DETyp.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        betrag = JsonConverters.fromJson(json['betrag'],'GeldBetragMitCent12DE',context!);
        alias = json['alias'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'betrag': JsonConverters.toJson(betrag,'GeldBetragMitCent12DE',context!),
        'alias': alias
    });

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

/**
* Umsätze zum allgemeinen Steuersatz
*/
// @Api(Description="Umsätze zum allgemeinen Steuersatz")
class UmsAllg2021 implements IConvertible
{
    /**
    * Lieferungen und sonstige Leistungen zu 19 Prozent (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Lieferungen und sonstige Leistungen zu 19 Prozent (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3003303")
    GeldBetragOhneCent12DETyp? e3003303;

    /**
    * Lieferungen und sonstige Leistungen zu 19 Prozent (Steuer)
    */
    // @ApiMember(Description="Lieferungen und sonstige Leistungen zu 19 Prozent (Steuer)", Name="E3003304")
    GeldBetragMitCent12DETyp? e3003304;

    /**
    * Unentgeltliche Wertabgaben - Lieferungen nach § 3 Absatz 1b UStG zu 19 Prozent (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Unentgeltliche Wertabgaben - Lieferungen nach § 3 Absatz 1b UStG zu 19 Prozent (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3003405")
    GeldBetragOhneCent12DETyp? e3003405;

    /**
    * Unentgeltliche Wertabgaben - Lieferungen nach § 3 Absatz 1b UStG zu 19 Prozent (Steuer)
    */
    // @ApiMember(Description="Unentgeltliche Wertabgaben - Lieferungen nach § 3 Absatz 1b UStG zu 19 Prozent (Steuer)", Name="E3003406")
    GeldBetragMitCent12DETyp? e3003406;

    /**
    * Unentgeltliche Wertabgaben - Sonstige Leistungen nach § 3 Absatz 9a UStG zu 19 Prozent (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Unentgeltliche Wertabgaben - Sonstige Leistungen nach § 3 Absatz 9a UStG zu 19 Prozent (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3003505")
    GeldBetragOhneCent12DETyp? e3003505;

    /**
    * Unentgeltliche Wertabgaben - Sonstige Leistungen nach § 3 Absatz 9a UStG zu 19 Prozent (Steuer)
    */
    // @ApiMember(Description="Unentgeltliche Wertabgaben - Sonstige Leistungen nach § 3 Absatz 9a UStG zu 19 Prozent (Steuer)", Name="E3003506")
    GeldBetragMitCent12DETyp? e3003506;

    UmsAllg2021({this.e3003303,this.e3003304,this.e3003405,this.e3003406,this.e3003505,this.e3003506});
    UmsAllg2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3003303 = JsonConverters.fromJson(json['e3003303'],'GeldBetragOhneCent12DETyp',context!);
        e3003304 = JsonConverters.fromJson(json['e3003304'],'GeldBetragMitCent12DETyp',context!);
        e3003405 = JsonConverters.fromJson(json['e3003405'],'GeldBetragOhneCent12DETyp',context!);
        e3003406 = JsonConverters.fromJson(json['e3003406'],'GeldBetragMitCent12DETyp',context!);
        e3003505 = JsonConverters.fromJson(json['e3003505'],'GeldBetragOhneCent12DETyp',context!);
        e3003506 = JsonConverters.fromJson(json['e3003506'],'GeldBetragMitCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3003303': JsonConverters.toJson(e3003303,'GeldBetragOhneCent12DETyp',context!),
        'e3003304': JsonConverters.toJson(e3003304,'GeldBetragMitCent12DETyp',context!),
        'e3003405': JsonConverters.toJson(e3003405,'GeldBetragOhneCent12DETyp',context!),
        'e3003406': JsonConverters.toJson(e3003406,'GeldBetragMitCent12DETyp',context!),
        'e3003505': JsonConverters.toJson(e3003505,'GeldBetragOhneCent12DETyp',context!),
        'e3003506': JsonConverters.toJson(e3003506,'GeldBetragMitCent12DETyp',context!)
    };

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

/**
* Umsätze zum ermäßigten Steuersatz
*/
// @Api(Description="Umsätze zum ermäßigten Steuersatz")
class UmsErm2021 implements IConvertible
{
    /**
    * Lieferungen und sonstige Leistungen zu 7 Prozent (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Lieferungen und sonstige Leistungen zu 7 Prozent (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3004401")
    GeldBetragOhneCent12DETyp? e3004401;

    /**
    * Lieferungen und sonstige Leistungen zu 7 Prozent (Steuer)
    */
    // @ApiMember(Description="Lieferungen und sonstige Leistungen zu 7 Prozent (Steuer)", Name="E3004402")
    GeldBetragMitCent12DETyp? e3004402;

    /**
    * Unentgeltliche Wertabgaben - Lieferungen nach § 3 Absatz 1b UStG zu 7 Prozent (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Unentgeltliche Wertabgaben - Lieferungen nach § 3 Absatz 1b UStG zu 7 Prozent (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3003703")
    GeldBetragOhneCent12DETyp? e3003703;

    /**
    * Unentgeltliche Wertabgaben - Lieferungen nach § 3 Absatz 1b UStG zu 7 Prozent (Steuer)
    */
    // @ApiMember(Description="Unentgeltliche Wertabgaben - Lieferungen nach § 3 Absatz 1b UStG zu 7 Prozent (Steuer)", Name="E3003704")
    GeldBetragMitCent12DETyp? e3003704;

    /**
    * Unentgeltliche Wertabgaben - Sonstige Leistungen nach § 3 Absatz 9a UStG zu 7 Prozent (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Unentgeltliche Wertabgaben - Sonstige Leistungen nach § 3 Absatz 9a UStG zu 7 Prozent (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3003803")
    GeldBetragOhneCent12DETyp? e3003803;

    /**
    * Unentgeltliche Wertabgaben - Sonstige Leistungen nach § 3 Absatz 9a UStG zu 7 Prozent (Steuer)
    */
    // @ApiMember(Description="Unentgeltliche Wertabgaben - Sonstige Leistungen nach § 3 Absatz 9a UStG zu 7 Prozent (Steuer)", Name="E3003804")
    GeldBetragMitCent12DETyp? e3003804;

    UmsErm2021({this.e3004401,this.e3004402,this.e3003703,this.e3003704,this.e3003803,this.e3003804});
    UmsErm2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3004401 = JsonConverters.fromJson(json['e3004401'],'GeldBetragOhneCent12DETyp',context!);
        e3004402 = JsonConverters.fromJson(json['e3004402'],'GeldBetragMitCent12DETyp',context!);
        e3003703 = JsonConverters.fromJson(json['e3003703'],'GeldBetragOhneCent12DETyp',context!);
        e3003704 = JsonConverters.fromJson(json['e3003704'],'GeldBetragMitCent12DETyp',context!);
        e3003803 = JsonConverters.fromJson(json['e3003803'],'GeldBetragOhneCent12DETyp',context!);
        e3003804 = JsonConverters.fromJson(json['e3003804'],'GeldBetragMitCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3004401': JsonConverters.toJson(e3004401,'GeldBetragOhneCent12DETyp',context!),
        'e3004402': JsonConverters.toJson(e3004402,'GeldBetragMitCent12DETyp',context!),
        'e3003703': JsonConverters.toJson(e3003703,'GeldBetragOhneCent12DETyp',context!),
        'e3003704': JsonConverters.toJson(e3003704,'GeldBetragMitCent12DETyp',context!),
        'e3003803': JsonConverters.toJson(e3003803,'GeldBetragOhneCent12DETyp',context!),
        'e3003804': JsonConverters.toJson(e3003804,'GeldBetragMitCent12DETyp',context!)
    };

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

/**
* Umsätze zu anderen Steuersätzen
*/
// @Api(Description="Umsätze zu anderen Steuersätzen")
class UmsAnd2021 implements IConvertible
{
    /**
    * Umsätze zu anderen Steuersätzen (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Umsätze zu anderen Steuersätzen (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3005001")
    GeldBetragOhneCent12DETyp? e3005001;

    /**
    * Umsätze zu anderen Steuersätzen (Steuer)
    */
    // @ApiMember(Description="Umsätze zu anderen Steuersätzen (Steuer)", Name="E3005002")
    GeldBetragMitCent12DETyp? e3005002;

    UmsAnd2021({this.e3005001,this.e3005002});
    UmsAnd2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3005001 = JsonConverters.fromJson(json['e3005001'],'GeldBetragOhneCent12DETyp',context!);
        e3005002 = JsonConverters.fromJson(json['e3005002'],'GeldBetragMitCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3005001': JsonConverters.toJson(e3005001,'GeldBetragOhneCent12DETyp',context!),
        'e3005002': JsonConverters.toJson(e3005002,'GeldBetragMitCent12DETyp',context!)
    };

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

/**
* Umsätze land- und forstwirtschaftlicher Betriebe nach § 24 UStG
*/
// @Api(Description="Umsätze land- und forstwirtschaftlicher Betriebe nach § 24 UStG")
class UmsLuf2021 implements IConvertible
{
    /**
    * Lieferungen in das übrige Gemeinschaftsgebiet an Abnehmer mit USt-Identifikationsnummer (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Lieferungen in das übrige Gemeinschaftsgebiet an Abnehmer mit USt-Identifikationsnummer (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3005201")
    GeldBetragOhneCent12DETyp? e3005201;

    /**
    * Steuerpflichtige Lieferungen (einschließlich unentgeltlicher Wertabgaben) von Sägewerkserzeugnissen, die in der Anlage 2 zum UStG nicht aufgeführt sind (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Steuerpflichtige Lieferungen (einschließlich unentgeltlicher Wertabgaben) von Sägewerkserzeugnissen, die in der Anlage 2 zum UStG nicht aufgeführt sind (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3005301")
    GeldBetragOhneCent12DETyp? e3005301;

    /**
    * Steuerpflichtige Lieferungen (einschließlich unentgeltlicher Wertabgaben) von Sägewerkserzeugnissen, die in der Anlage 2 zum UStG nicht aufgeführt sind (Steuer)
    */
    // @ApiMember(Description="Steuerpflichtige Lieferungen (einschließlich unentgeltlicher Wertabgaben) von Sägewerkserzeugnissen, die in der Anlage 2 zum UStG nicht aufgeführt sind (Steuer)", Name="E3005302")
    GeldBetragMitCent12DETyp? e3005302;

    /**
    * Steuerpflichtige Umsätze (einschließlich unentgeltlicher Wertabgaben) von Getränken, die in der Anlage 2 zum UStG nicht aufgeführt sind, sowie von alkoholischen Flüssigkeiten (zum Beispiel Wein) zu 8,3 Prozent (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Steuerpflichtige Umsätze (einschließlich unentgeltlicher Wertabgaben) von Getränken, die in der Anlage 2 zum UStG nicht aufgeführt sind, sowie von alkoholischen Flüssigkeiten (zum Beispiel Wein) zu 8,3 Prozent (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3005003")
    GeldBetragOhneCent12DETyp? e3005003;

    /**
    * Steuerpflichtige Umsätze (einschließlich unentgeltlicher Wertabgaben) von Getränken, die in der Anlage 2 zum UStG nicht aufgeführt sind, sowie von alkoholischen Flüssigkeiten (zum Beispiel Wein) zu 8,3 Prozent (Steuer)
    */
    // @ApiMember(Description="Steuerpflichtige Umsätze (einschließlich unentgeltlicher Wertabgaben) von Getränken, die in der Anlage 2 zum UStG nicht aufgeführt sind, sowie von alkoholischen Flüssigkeiten (zum Beispiel Wein) zu 8,3 Prozent (Steuer)", Name="E3005004")
    GeldBetragMitCent12DETyp? e3005004;

    /**
    * Steuerpflichtige Umsätze (einschließlich unentgeltlicher Wertabgaben) von Getränken, die in der Anlage 2 zum UStG nicht aufgeführt sind, sowie von alkoholischen Flüssigkeiten (zum Beispiel Wein) - Umsätze zu anderen Steuersätzen (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Steuerpflichtige Umsätze (einschließlich unentgeltlicher Wertabgaben) von Getränken, die in der Anlage 2 zum UStG nicht aufgeführt sind, sowie von alkoholischen Flüssigkeiten (zum Beispiel Wein) - Umsätze zu anderen Steuersätzen (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3005701")
    GeldBetragOhneCent12DETyp? e3005701;

    /**
    * Steuerpflichtige Umsätze (einschließlich unentgeltlicher Wertabgaben) von Getränken, die in der Anlage 2 zum UStG nicht aufgeführt sind, sowie von alkoholischen Flüssigkeiten (zum Beispiel Wein) - Umsätze zu anderen Steuersätzen (Steuer)
    */
    // @ApiMember(Description="Steuerpflichtige Umsätze (einschließlich unentgeltlicher Wertabgaben) von Getränken, die in der Anlage 2 zum UStG nicht aufgeführt sind, sowie von alkoholischen Flüssigkeiten (zum Beispiel Wein) - Umsätze zu anderen Steuersätzen (Steuer)", Name="E3005702")
    GeldBetragMitCent12DETyp? e3005702;

    /**
    * Übrige steuerpflichtige Umsätze land- und forstwirtschaftlicher Betriebe, für die keine Steuer zu entrichten ist (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Übrige steuerpflichtige Umsätze land- und forstwirtschaftlicher Betriebe, für die keine Steuer zu entrichten ist (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3005801")
    GeldBetragOhneCent12DETyp? e3005801;

    UmsLuf2021({this.e3005201,this.e3005301,this.e3005302,this.e3005003,this.e3005004,this.e3005701,this.e3005702,this.e3005801});
    UmsLuf2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3005201 = JsonConverters.fromJson(json['e3005201'],'GeldBetragOhneCent12DETyp',context!);
        e3005301 = JsonConverters.fromJson(json['e3005301'],'GeldBetragOhneCent12DETyp',context!);
        e3005302 = JsonConverters.fromJson(json['e3005302'],'GeldBetragMitCent12DETyp',context!);
        e3005003 = JsonConverters.fromJson(json['e3005003'],'GeldBetragOhneCent12DETyp',context!);
        e3005004 = JsonConverters.fromJson(json['e3005004'],'GeldBetragMitCent12DETyp',context!);
        e3005701 = JsonConverters.fromJson(json['e3005701'],'GeldBetragOhneCent12DETyp',context!);
        e3005702 = JsonConverters.fromJson(json['e3005702'],'GeldBetragMitCent12DETyp',context!);
        e3005801 = JsonConverters.fromJson(json['e3005801'],'GeldBetragOhneCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3005201': JsonConverters.toJson(e3005201,'GeldBetragOhneCent12DETyp',context!),
        'e3005301': JsonConverters.toJson(e3005301,'GeldBetragOhneCent12DETyp',context!),
        'e3005302': JsonConverters.toJson(e3005302,'GeldBetragMitCent12DETyp',context!),
        'e3005003': JsonConverters.toJson(e3005003,'GeldBetragOhneCent12DETyp',context!),
        'e3005004': JsonConverters.toJson(e3005004,'GeldBetragMitCent12DETyp',context!),
        'e3005701': JsonConverters.toJson(e3005701,'GeldBetragOhneCent12DETyp',context!),
        'e3005702': JsonConverters.toJson(e3005702,'GeldBetragMitCent12DETyp',context!),
        'e3005801': JsonConverters.toJson(e3005801,'GeldBetragOhneCent12DETyp',context!)
    };

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

/**
* Represents an unsigned amount of money with cents whose value has a maximum length of 14 digits. That is, 1 to 12 digits before the decimal separator and 2 digits after the decimal separator. Minus sign NOT allowed.
*/
// @Api(Description="Represents an unsigned amount of money with cents whose value has a maximum length of 14 digits. That is, 1 to 12 digits before the decimal separator and 2 digits after the decimal separator. Minus sign NOT allowed.")
class PositiverGeldBetragMitCent12DE extends GeldBetragMitCent implements IConvertible
{
    /**
    * The intrinsic currency value.
    */
    // @ApiMember(Description="The intrinsic currency value.")
    double? wert;

    PositiverGeldBetragMitCent12DE({this.wert});
    PositiverGeldBetragMitCent12DE.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        wert = JsonConverters.toDouble(json['wert']);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'wert': wert
    });

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

/**
* Absoluter Geldbetrag mit Cent mit 12 Vorkommastellen. Mindestens eine Ziffer und maximal 12 Ziffern vor dem Dezimaltrennzeichen. 2 Ziffern nach dem Dezimaltrennzeichen. Minusvorzeichen NICHT erlaubt. ',' als Dezimaltrennzeichen.
*/
// @Api(Description="Absoluter Geldbetrag mit Cent mit 12 Vorkommastellen. Mindestens eine Ziffer und maximal 12 Ziffern vor dem Dezimaltrennzeichen. 2 Ziffern nach dem Dezimaltrennzeichen. Minusvorzeichen NICHT erlaubt. ',' als Dezimaltrennzeichen.")
class PositiverGeldBetragMitCent12DETyp extends CustomTypBase implements IConvertible
{
    /**
    * Wert des Datentyps.  Mindestens eine Ziffer und maximal 12 Ziffern vor dem Dezimaltrennzeichen. 2 Ziffern nach dem Dezimaltrennzeichen. Minusvorzeichen NICHT erlaubt.
    */
    // @ApiMember(Description="Wert des Datentyps.  Mindestens eine Ziffer und maximal 12 Ziffern vor dem Dezimaltrennzeichen. 2 Ziffern nach dem Dezimaltrennzeichen. Minusvorzeichen NICHT erlaubt.", IsRequired=true, Name="Betrag")
    PositiverGeldBetragMitCent12DE? betrag;

    /**
    * Identifizierung der Zeile / Typ im Fremdprogramm.
    */
    // @ApiMember(Description="Identifizierung der Zeile / Typ im Fremdprogramm.", Name="Alias")
    String? alias;

    PositiverGeldBetragMitCent12DETyp({this.betrag,this.alias});
    PositiverGeldBetragMitCent12DETyp.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        betrag = JsonConverters.fromJson(json['betrag'],'PositiverGeldBetragMitCent12DE',context!);
        alias = json['alias'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'betrag': JsonConverters.toJson(betrag,'PositiverGeldBetragMitCent12DE',context!),
        'alias': alias
    });

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

/**
* Steuer infolge Wechsels der Besteuerungsform
*/
// @Api(Description="Steuer infolge Wechsels der Besteuerungsform")
class WechsBestForm2021 implements IConvertible
{
    /**
    * Steuer (Nachsteuer) auf vereinnahmte Anzahlungen infolge des Wechsels der Besteuerungsform
    */
    // @ApiMember(Description="Steuer (Nachsteuer) auf vereinnahmte Anzahlungen infolge des Wechsels der Besteuerungsform", Name="E3102901")
    PositiverGeldBetragMitCent12DETyp? e3102901;

    WechsBestForm2021({this.e3102901});
    WechsBestForm2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3102901 = JsonConverters.fromJson(json['e3102901'],'PositiverGeldBetragMitCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3102901': JsonConverters.toJson(e3102901,'PositiverGeldBetragMitCent12DETyp',context!)
    };

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

/**
* Nachsteuer auf versteuerte Anzahlungen und ähnlich wegen Steuersatzänderung
*/
// @Api(Description="Nachsteuer auf versteuerte Anzahlungen und ähnlich wegen Steuersatzänderung")
class NachstStSatzAend2021 implements IConvertible
{
    /**
    * Nachsteuer auf versteuerte Anzahlungen und ähnlich wegen Steuersatzänderung (Steuer)
    */
    // @ApiMember(Description="Nachsteuer auf versteuerte Anzahlungen und ähnlich wegen Steuersatzänderung (Steuer)", Name="E3005901")
    GeldBetragMitCent12DETyp? e3005901;

    NachstStSatzAend2021({this.e3005901});
    NachstStSatzAend2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3005901 = JsonConverters.fromJson(json['e3005901'],'GeldBetragMitCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3005901': JsonConverters.toJson(e3005901,'GeldBetragMitCent12DETyp',context!)
    };

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

/**
* Summe
*/
// @Api(Description="Summe")
class UmsSum2021 implements IConvertible
{
    /**
    * Summe der Steuer (zu übertragen in Zeile 152)
    */
    // @ApiMember(Description="Summe der Steuer (zu übertragen in Zeile 152)", Name="E3006001")
    GeldBetragMitCent12DETyp? e3006001;

    UmsSum2021({this.e3006001});
    UmsSum2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3006001 = JsonConverters.fromJson(json['e3006001'],'GeldBetragMitCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3006001': JsonConverters.toJson(e3006001,'GeldBetragMitCent12DETyp',context!)
    };

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

/**
* Steuerpflichtige Lieferungen, sonstige Leistungen und unentgeltliche Wertabgaben
*/
// @Api(Description="Steuerpflichtige Lieferungen, sonstige Leistungen und unentgeltliche Wertabgaben")
class Umsaetze2021 implements IConvertible
{
    /**
    * Umsätze zum allgemeinen Steuersatz
    */
    // @ApiMember(Description="Umsätze zum allgemeinen Steuersatz", Name="UmsAllg")
    UmsAllg2021? umsAllg;

    /**
    * Umsätze zum ermäßigten Steuersatz
    */
    // @ApiMember(Description="Umsätze zum ermäßigten Steuersatz", Name="UmsErm")
    UmsErm2021? umsErm;

    /**
    * Umsätze zu anderen Steuersätzen
    */
    // @ApiMember(Description="Umsätze zu anderen Steuersätzen", Name="UmsAnd")
    UmsAnd2021? umsAnd;

    /**
    * Umsätze land- und forstwirtschaftlicher Betriebe nach § 24 UStG
    */
    // @ApiMember(Description="Umsätze land- und forstwirtschaftlicher Betriebe nach § 24 UStG", Name="UmsLuf")
    UmsLuf2021? umsLuf;

    /**
    * Steuer infolge Wechsels der Besteuerungsform
    */
    // @ApiMember(Description="Steuer infolge Wechsels der Besteuerungsform", Name="WechsBestForm")
    WechsBestForm2021? wechsBestForm;

    /**
    * Nachsteuer auf versteuerte Anzahlungen und ähnlich wegen Steuersatzänderung
    */
    // @ApiMember(Description="Nachsteuer auf versteuerte Anzahlungen und ähnlich wegen Steuersatzänderung", Name="NachstStSatzAend")
    NachstStSatzAend2021? nachstStSatzAend;

    /**
    * Summe
    */
    // @ApiMember(Description="Summe", Name="UmsSum")
    UmsSum2021? umsSum;

    Umsaetze2021({this.umsAllg,this.umsErm,this.umsAnd,this.umsLuf,this.wechsBestForm,this.nachstStSatzAend,this.umsSum});
    Umsaetze2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        umsAllg = JsonConverters.fromJson(json['umsAllg'],'UmsAllg2021',context!);
        umsErm = JsonConverters.fromJson(json['umsErm'],'UmsErm2021',context!);
        umsAnd = JsonConverters.fromJson(json['umsAnd'],'UmsAnd2021',context!);
        umsLuf = JsonConverters.fromJson(json['umsLuf'],'UmsLuf2021',context!);
        wechsBestForm = JsonConverters.fromJson(json['wechsBestForm'],'WechsBestForm2021',context!);
        nachstStSatzAend = JsonConverters.fromJson(json['nachstStSatzAend'],'NachstStSatzAend2021',context!);
        umsSum = JsonConverters.fromJson(json['umsSum'],'UmsSum2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'umsAllg': JsonConverters.toJson(umsAllg,'UmsAllg2021',context!),
        'umsErm': JsonConverters.toJson(umsErm,'UmsErm2021',context!),
        'umsAnd': JsonConverters.toJson(umsAnd,'UmsAnd2021',context!),
        'umsLuf': JsonConverters.toJson(umsLuf,'UmsLuf2021',context!),
        'wechsBestForm': JsonConverters.toJson(wechsBestForm,'WechsBestForm2021',context!),
        'nachstStSatzAend': JsonConverters.toJson(nachstStSatzAend,'NachstStSatzAend2021',context!),
        'umsSum': JsonConverters.toJson(umsSum,'UmsSum2021',context!)
    };

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

/**
* Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG)
*/
// @Api(Description="Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG)")
class IgLfg2021 implements IConvertible
{
    /**
    * an Abnehmer mit USt-Identifikationsnummer (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="an Abnehmer mit USt-Identifikationsnummer (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3103301")
    GeldBetragOhneCent12DETyp? e3103301;

    /**
    * neuer Fahrzeuge an Abnehmer ohne USt-Identifikationsnummer (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="neuer Fahrzeuge an Abnehmer ohne USt-Identifikationsnummer (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3103401")
    GeldBetragOhneCent12DETyp? e3103401;

    /**
    * neuer Fahrzeuge außerhalb eines Unternehmens (§ 2a UStG) (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="neuer Fahrzeuge außerhalb eines Unternehmens (§ 2a UStG) (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3103501")
    GeldBetragOhneCent12DETyp? e3103501;

    IgLfg2021({this.e3103301,this.e3103401,this.e3103501});
    IgLfg2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3103301 = JsonConverters.fromJson(json['e3103301'],'GeldBetragOhneCent12DETyp',context!);
        e3103401 = JsonConverters.fromJson(json['e3103401'],'GeldBetragOhneCent12DETyp',context!);
        e3103501 = JsonConverters.fromJson(json['e3103501'],'GeldBetragOhneCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3103301': JsonConverters.toJson(e3103301,'GeldBetragOhneCent12DETyp',context!),
        'e3103401': JsonConverters.toJson(e3103401,'GeldBetragOhneCent12DETyp',context!),
        'e3103501': JsonConverters.toJson(e3103501,'GeldBetragOhneCent12DETyp',context!)
    };

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

/**
* Weitere steuerfreie Umsätze mit Vorsteuerabzug (zum Beispiel nach § 4 Nummer 1 Buchstabe a, 2 bis 7 UStG)
*/
// @Api(Description="Weitere steuerfreie Umsätze mit Vorsteuerabzug (zum Beispiel nach § 4 Nummer 1 Buchstabe a, 2 bis 7 UStG)")
class UmsStFreiWeit2021 implements IConvertible
{
    /**
    * Ausfuhrlieferungen und Lohnveredelungen an Gegenständen der Ausfuhr (§ 4 Nummer 1 Buchstabe a UStG) (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Ausfuhrlieferungen und Lohnveredelungen an Gegenständen der Ausfuhr (§ 4 Nummer 1 Buchstabe a UStG) (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3103801")
    GeldBetragOhneCent12DETyp? e3103801;

    /**
    * Umsätze nach § ... UStG:
    */
    // @ApiMember(Description="Umsätze nach § ... UStG:", Name="E3103901")
    StringTyp? e3103901;

    /**
    * Umsätze nach § ... UStG (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Umsätze nach § ... UStG (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3103902")
    GeldBetragOhneCent12DETyp? e3103902;

    /**
    * Umsätze im Sinne des Offshore-Steuerabkommens, des Zusatzabkommens zum NATO-Truppenstatut und des Ergänzungsabkommens zum Protokoll über die NATO-Hauptquartiere (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Umsätze im Sinne des Offshore-Steuerabkommens, des Zusatzabkommens zum NATO-Truppenstatut und des Ergänzungsabkommens zum Protokoll über die NATO-Hauptquartiere (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3104001")
    GeldBetragOhneCent12DETyp? e3104001;

    /**
    * Reiseleistungen nach § 25 Absatz 2 UStG (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Reiseleistungen nach § 25 Absatz 2 UStG (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3104101")
    GeldBetragOhneCent12DETyp? e3104101;

    /**
    * Summe der Zeilen 67 bis 70 (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Summe der Zeilen 67 bis 70 (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3104201")
    GeldBetragOhneCent12DETyp? e3104201;

    UmsStFreiWeit2021({this.e3103801,this.e3103901,this.e3103902,this.e3104001,this.e3104101,this.e3104201});
    UmsStFreiWeit2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3103801 = JsonConverters.fromJson(json['e3103801'],'GeldBetragOhneCent12DETyp',context!);
        e3103901 = JsonConverters.fromJson(json['e3103901'],'StringTyp',context!);
        e3103902 = JsonConverters.fromJson(json['e3103902'],'GeldBetragOhneCent12DETyp',context!);
        e3104001 = JsonConverters.fromJson(json['e3104001'],'GeldBetragOhneCent12DETyp',context!);
        e3104101 = JsonConverters.fromJson(json['e3104101'],'GeldBetragOhneCent12DETyp',context!);
        e3104201 = JsonConverters.fromJson(json['e3104201'],'GeldBetragOhneCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3103801': JsonConverters.toJson(e3103801,'GeldBetragOhneCent12DETyp',context!),
        'e3103901': JsonConverters.toJson(e3103901,'StringTyp',context!),
        'e3103902': JsonConverters.toJson(e3103902,'GeldBetragOhneCent12DETyp',context!),
        'e3104001': JsonConverters.toJson(e3104001,'GeldBetragOhneCent12DETyp',context!),
        'e3104101': JsonConverters.toJson(e3104101,'GeldBetragOhneCent12DETyp',context!),
        'e3104201': JsonConverters.toJson(e3104201,'GeldBetragOhneCent12DETyp',context!)
    };

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

/**
* Steuerfreie Umsätze mit Vorsteuerabzug
*/
// @Api(Description="Steuerfreie Umsätze mit Vorsteuerabzug")
class MitVoStAbz2021 implements IConvertible
{
    /**
    * a) Liste innergemeinschaftlicher Lieferungen (§ 4 Nummer 1 Buchstabe b UStG)
    */
    // @ApiMember(Description="a) Liste innergemeinschaftlicher Lieferungen (§ 4 Nummer 1 Buchstabe b UStG)", Name="IgLfg")
    IgLfg2021? igLfg;

    /**
    * b) Liste weiterer steuerfreien Umsätze mit Vorsteuerabzug (zum Beispiel nach § 4 Nummer 1 Buchstabe a, 2 bis 7 UStG)
    */
    // @ApiMember(Description="b) Liste weiterer steuerfreien Umsätze mit Vorsteuerabzug (zum Beispiel nach § 4 Nummer 1 Buchstabe a, 2 bis 7 UStG)", Name="IgLfg")
    UmsStFreiWeit2021? umsStFreiWeit;

    MitVoStAbz2021({this.igLfg,this.umsStFreiWeit});
    MitVoStAbz2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        igLfg = JsonConverters.fromJson(json['igLfg'],'IgLfg2021',context!);
        umsStFreiWeit = JsonConverters.fromJson(json['umsStFreiWeit'],'UmsStFreiWeit2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'igLfg': JsonConverters.toJson(igLfg,'IgLfg2021',context!),
        'umsStFreiWeit': JsonConverters.toJson(umsStFreiWeit,'UmsStFreiWeit2021',context!)
    };

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

/**
* Steuerfreie Umsätze ohne Vorsteuerabzug nicht zum Gesamtumsatz (§ 19 Absatz 3 UStG) gehörend
*/
// @Api(Description="Steuerfreie Umsätze ohne Vorsteuerabzug nicht zum Gesamtumsatz (§ 19 Absatz 3 UStG) gehörend")
class NichtGesUms2021 implements IConvertible
{
    /**
    * nach § 4 Nummer 12 UStG (Vermietung und Verpachtung von Grundstücken und so weiter) (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="nach § 4 Nummer 12 UStG (Vermietung und Verpachtung von Grundstücken und so weiter) (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3104401")
    GeldBetragOhneCent12DETyp? e3104401;

    /**
    * nach § 4 Nummer ... UStG
    */
    // @ApiMember(Description="nach § 4 Nummer ... UStG", Name="E3104501")
    StringTyp? e3104501;

    /**
    * nach § 4 Nummer ... UStG (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="nach § 4 Nummer ... UStG (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3104502")
    GeldBetragOhneCent12DETyp? e3104502;

    /**
    * Summe der Zeilen 73 und 74 (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Summe der Zeilen 73 und 74 (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3104601")
    GeldBetragOhneCent12DETyp? e3104601;

    NichtGesUms2021({this.e3104401,this.e3104501,this.e3104502,this.e3104601});
    NichtGesUms2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3104401 = JsonConverters.fromJson(json['e3104401'],'GeldBetragOhneCent12DETyp',context!);
        e3104501 = JsonConverters.fromJson(json['e3104501'],'StringTyp',context!);
        e3104502 = JsonConverters.fromJson(json['e3104502'],'GeldBetragOhneCent12DETyp',context!);
        e3104601 = JsonConverters.fromJson(json['e3104601'],'GeldBetragOhneCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3104401': JsonConverters.toJson(e3104401,'GeldBetragOhneCent12DETyp',context!),
        'e3104501': JsonConverters.toJson(e3104501,'StringTyp',context!),
        'e3104502': JsonConverters.toJson(e3104502,'GeldBetragOhneCent12DETyp',context!),
        'e3104601': JsonConverters.toJson(e3104601,'GeldBetragOhneCent12DETyp',context!)
    };

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

class GesUms2021 implements IConvertible
{
    /**
    * nach § ... UStG
    */
    // @ApiMember(Description="nach § ... UStG", Name="E3104901")
    StringTyp? e3104901;

    /**
    * nach § ... UStG (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="nach § ... UStG (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3104902")
    GeldBetragOhneCent12DETyp? e3104902;

    GesUms2021({this.e3104901,this.e3104902});
    GesUms2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3104901 = JsonConverters.fromJson(json['e3104901'],'StringTyp',context!);
        e3104902 = JsonConverters.fromJson(json['e3104902'],'GeldBetragOhneCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3104901': JsonConverters.toJson(e3104901,'StringTyp',context!),
        'e3104902': JsonConverters.toJson(e3104902,'GeldBetragOhneCent12DETyp',context!)
    };

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

/**
* Steuerfreie Umsätze ohne Vorsteuerabzug
*/
// @Api(Description="Steuerfreie Umsätze ohne Vorsteuerabzug")
class OhneVoStAbz2021 implements IConvertible
{
    /**
    * a) Steuerfreie Umsätze ohne Vorsteuerabzug nicht zum Gesamtumsatz (§ 19 Absatz 3 UStG) gehörend
    */
    // @ApiMember(Description="a) Steuerfreie Umsätze ohne Vorsteuerabzug nicht zum Gesamtumsatz (§ 19 Absatz 3 UStG) gehörend", Name="NichtGesUms")
    NichtGesUms2021? nichtGesUms;

    /**
    * b) Steuerfreie Umsätze ohne Vorsteuerabzug zum Gesamtumsatz(§ 19 Absatz 3 UStG) gehörend
    */
    // @ApiMember(Description="b) Steuerfreie Umsätze ohne Vorsteuerabzug zum Gesamtumsatz(§ 19 Absatz 3 UStG) gehörend", Name="GesUms")
    GesUms2021? gesUms;

    OhneVoStAbz2021({this.nichtGesUms,this.gesUms});
    OhneVoStAbz2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        nichtGesUms = JsonConverters.fromJson(json['nichtGesUms'],'NichtGesUms2021',context!);
        gesUms = JsonConverters.fromJson(json['gesUms'],'GesUms2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'nichtGesUms': JsonConverters.toJson(nichtGesUms,'NichtGesUms2021',context!),
        'gesUms': JsonConverters.toJson(gesUms,'GesUms2021',context!)
    };

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

/**
* Steuerfreie Lieferungen, sonstige Leistungen und unentgeltliche Wertabgaben.
*/
// @Api(Description="Steuerfreie Lieferungen, sonstige Leistungen und unentgeltliche Wertabgaben.")
class UmsStfrei2021 implements IConvertible
{
    /**
    * Steuerfreie Umsätze mit Vorsteuerabzug
    */
    // @ApiMember(Description="Steuerfreie Umsätze mit Vorsteuerabzug", Name="MitVoStAbz")
    MitVoStAbz2021? mitVoStAbz;

    /**
    * Steuerfreie Umsätze ohne Vorsteuerabzug
    */
    // @ApiMember(Description="Steuerfreie Umsätze ohne Vorsteuerabzug", Name="OhneVoStAbz")
    OhneVoStAbz2021? ohneVoStAbz;

    UmsStfrei2021({this.mitVoStAbz,this.ohneVoStAbz});
    UmsStfrei2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        mitVoStAbz = JsonConverters.fromJson(json['mitVoStAbz'],'MitVoStAbz2021',context!);
        ohneVoStAbz = JsonConverters.fromJson(json['ohneVoStAbz'],'OhneVoStAbz2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'mitVoStAbz': JsonConverters.toJson(mitVoStAbz,'MitVoStAbz2021',context!),
        'ohneVoStAbz': JsonConverters.toJson(ohneVoStAbz,'OhneVoStAbz2021',context!)
    };

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

class Stfrei2021 implements IConvertible
{
    /**
    * von bestimmten Gegenständen und Anlagegold nach §§ 4b und 25c UStG (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="von bestimmten Gegenständen und Anlagegold nach §§ 4b und 25c UStG (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3100901")
    GeldBetragOhneCent12DETyp? e3100901;

    Stfrei2021({this.e3100901});
    Stfrei2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3100901 = JsonConverters.fromJson(json['e3100901'],'GeldBetragOhneCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3100901': JsonConverters.toJson(e3100901,'GeldBetragOhneCent12DETyp',context!)
    };

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

/**
* Steuerpflichtige innergemeinschaftliche Erwerbe (§ 1a UStG)
*/
// @Api(Description="Steuerpflichtige innergemeinschaftliche Erwerbe (§ 1a UStG)")
class Stpfl2021 implements IConvertible
{
    /**
    * zum Steuersatz von 19 Prozent (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="zum Steuersatz von 19 Prozent (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3100902")
    GeldBetragOhneCent12DETyp? e3100902;

    /**
    * zum Steuersatz von 19 Prozent (Steuer)
    */
    // @ApiMember(Description="zum Steuersatz von 19 Prozent (Steuer)", Name="E3100903")
    GeldBetragMitCent12DETyp? e3100903;

    /**
    * zum Steuersatz von 7 Prozent (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="zum Steuersatz von 7 Prozent (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3101301")
    GeldBetragOhneCent12DETyp? e3101301;

    /**
    * zum Steuersatz von 7 Prozent (Steuer)
    */
    // @ApiMember(Description="zum Steuersatz von 7 Prozent (Steuer)", Name="E3101302")
    GeldBetragMitCent12DETyp? e3101302;

    /**
    * zu anderen Steuersätzen (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="zu anderen Steuersätzen (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3101303")
    GeldBetragOhneCent12DETyp? e3101303;

    /**
    * zu anderen Steuersätzen (Steuer)
    */
    // @ApiMember(Description="zu anderen Steuersätzen (Steuer)", Name="E3101304")
    GeldBetragMitCent12DETyp? e3101304;

    /**
    * neuer Fahrzeuge (§ 1b Absatz 2 und 3 UStG) von Lieferern ohne USt-Identifikationsnummer zum allgemeinen Steuersatz (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="neuer Fahrzeuge (§ 1b Absatz 2 und 3 UStG) von Lieferern ohne USt-Identifikationsnummer zum allgemeinen Steuersatz (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3101401")
    GeldBetragOhneCent12DETyp? e3101401;

    /**
    * neuer Fahrzeuge (§ 1b Absatz 2 und 3 UStG) von Lieferern ohne USt-Identifikationsnummer zum allgemeinen Steuersatz (Steuer)
    */
    // @ApiMember(Description="neuer Fahrzeuge (§ 1b Absatz 2 und 3 UStG) von Lieferern ohne USt-Identifikationsnummer zum allgemeinen Steuersatz (Steuer)", Name="E3101402")
    GeldBetragMitCent12DETyp? e3101402;

    Stpfl2021({this.e3100902,this.e3100903,this.e3101301,this.e3101302,this.e3101303,this.e3101304,this.e3101401,this.e3101402});
    Stpfl2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3100902 = JsonConverters.fromJson(json['e3100902'],'GeldBetragOhneCent12DETyp',context!);
        e3100903 = JsonConverters.fromJson(json['e3100903'],'GeldBetragMitCent12DETyp',context!);
        e3101301 = JsonConverters.fromJson(json['e3101301'],'GeldBetragOhneCent12DETyp',context!);
        e3101302 = JsonConverters.fromJson(json['e3101302'],'GeldBetragMitCent12DETyp',context!);
        e3101303 = JsonConverters.fromJson(json['e3101303'],'GeldBetragOhneCent12DETyp',context!);
        e3101304 = JsonConverters.fromJson(json['e3101304'],'GeldBetragMitCent12DETyp',context!);
        e3101401 = JsonConverters.fromJson(json['e3101401'],'GeldBetragOhneCent12DETyp',context!);
        e3101402 = JsonConverters.fromJson(json['e3101402'],'GeldBetragMitCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3100902': JsonConverters.toJson(e3100902,'GeldBetragOhneCent12DETyp',context!),
        'e3100903': JsonConverters.toJson(e3100903,'GeldBetragMitCent12DETyp',context!),
        'e3101301': JsonConverters.toJson(e3101301,'GeldBetragOhneCent12DETyp',context!),
        'e3101302': JsonConverters.toJson(e3101302,'GeldBetragMitCent12DETyp',context!),
        'e3101303': JsonConverters.toJson(e3101303,'GeldBetragOhneCent12DETyp',context!),
        'e3101304': JsonConverters.toJson(e3101304,'GeldBetragMitCent12DETyp',context!),
        'e3101401': JsonConverters.toJson(e3101401,'GeldBetragOhneCent12DETyp',context!),
        'e3101402': JsonConverters.toJson(e3101402,'GeldBetragMitCent12DETyp',context!)
    };

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

/**
* Summe
*/
// @Api(Description="Summe")
class IgErwSum2021 implements IConvertible
{
    /**
    * Summe der Steuer (zu übertragen in Zeile 153)
    */
    // @ApiMember(Description="Summe der Steuer (zu übertragen in Zeile 153)", Name="E3101501")
    GeldBetragMitCent12DETyp? e3101501;

    IgErwSum2021({this.e3101501});
    IgErwSum2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3101501 = JsonConverters.fromJson(json['e3101501'],'GeldBetragMitCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3101501': JsonConverters.toJson(e3101501,'GeldBetragMitCent12DETyp',context!)
    };

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

/**
* Innergemeinschaftliche Erwerbe
*/
// @Api(Description="Innergemeinschaftliche Erwerbe")
class IgErw2021 implements IConvertible
{
    /**
    * Steuerfreie innergemeinschaftliche Erwerbe
    */
    // @ApiMember(Description="Steuerfreie innergemeinschaftliche Erwerbe", Name="Stfrei")
    Stfrei2021? stfrei;

    /**
    * Steuerpflichtige innergemeinschaftliche Erwerbe (§ 1a UStG)
    */
    // @ApiMember(Description="Steuerpflichtige innergemeinschaftliche Erwerbe (§ 1a UStG)", Name="Stpfl")
    Stpfl2021? stpfl;

    /**
    * Summe
    */
    // @ApiMember(Description="Summe", Name="IgErwSum")
    IgErwSum2021? igErwSum;

    IgErw2021({this.stfrei,this.stpfl,this.igErwSum});
    IgErw2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        stfrei = JsonConverters.fromJson(json['stfrei'],'Stfrei2021',context!);
        stpfl = JsonConverters.fromJson(json['stpfl'],'Stpfl2021',context!);
        igErwSum = JsonConverters.fromJson(json['igErwSum'],'IgErwSum2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'stfrei': JsonConverters.toJson(stfrei,'Stfrei2021',context!),
        'stpfl': JsonConverters.toJson(stpfl,'Stpfl2021',context!),
        'igErwSum': JsonConverters.toJson(igErwSum,'IgErwSum2021',context!)
    };

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

/**
* Summe der Steuer (zu übertragen in Zeile 154)
*/
// @Api(Description="Summe der Steuer (zu übertragen in Zeile 154)")
class Auslag13aSum2021 implements IConvertible
{
    /**
    * Summe der Steuer (zu übertragen in Zeile 154)
    */
    // @ApiMember(Description="Summe der Steuer (zu übertragen in Zeile 154)", Name="E3102904")
    GeldBetragMitCent12DETyp? e3102904;

    Auslag13aSum2021({this.e3102904});
    Auslag13aSum2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3102904 = JsonConverters.fromJson(json['e3102904'],'GeldBetragMitCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3102904': JsonConverters.toJson(e3102904,'GeldBetragMitCent12DETyp',context!)
    };

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

/**
* Steuerschuldner bei Auslagerung (§ 13a Absatz 1 Nummer 6 UStG)
*/
// @Api(Description="Steuerschuldner bei Auslagerung (§ 13a Absatz 1 Nummer 6 UStG)")
class Auslag13a2021 implements IConvertible
{
    /**
    * Lieferungen, die der Auslagerung vorangegangen sind (§ 4 Nummer 4a Satz 1 Buchstabe a Satz 2 UStG) (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Lieferungen, die der Auslagerung vorangegangen sind (§ 4 Nummer 4a Satz 1 Buchstabe a Satz 2 UStG) (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3102804")
    GeldBetragOhneCent12DETyp? e3102804;

    /**
    * Lieferungen, die der Auslagerung vorangegangen sind (§ 4 Nummer 4a Satz 1 Buchstabe a Satz 2 UStG) (Steuer)
    */
    // @ApiMember(Description="Lieferungen, die der Auslagerung vorangegangen sind (§ 4 Nummer 4a Satz 1 Buchstabe a Satz 2 UStG) (Steuer)", Name="E3102805")
    GeldBetragMitCent12DETyp? e3102805;

    /**
    * Summe der Steuer (zu übertragen in Zeile 154)
    */
    // @ApiMember(Description="Summe der Steuer (zu übertragen in Zeile 154)", Name="Auslag13aSum")
    Auslag13aSum2021? auslag13aSum;

    Auslag13a2021({this.e3102804,this.e3102805,this.auslag13aSum});
    Auslag13a2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3102804 = JsonConverters.fromJson(json['e3102804'],'GeldBetragOhneCent12DETyp',context!);
        e3102805 = JsonConverters.fromJson(json['e3102805'],'GeldBetragMitCent12DETyp',context!);
        auslag13aSum = JsonConverters.fromJson(json['auslag13aSum'],'Auslag13aSum2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3102804': JsonConverters.toJson(e3102804,'GeldBetragOhneCent12DETyp',context!),
        'e3102805': JsonConverters.toJson(e3102805,'GeldBetragMitCent12DETyp',context!),
        'auslag13aSum': JsonConverters.toJson(auslag13aSum,'Auslag13aSum2021',context!)
    };

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

/**
* Lieferungen des ersten Abnehmers
*/
// @Api(Description="Lieferungen des ersten Abnehmers")
class LfgErstAbn2021 implements IConvertible
{
    /**
    * Bemessungsgrundlage ohne Umsatzsteuer (volle EUR)
    */
    // @ApiMember(Description="Bemessungsgrundlage ohne Umsatzsteuer (volle EUR)", Name="E3101801")
    GeldBetragOhneCent12DETyp? e3101801;

    LfgErstAbn2021({this.e3101801});
    LfgErstAbn2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3101801 = JsonConverters.fromJson(json['e3101801'],'GeldBetragOhneCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3101801': JsonConverters.toJson(e3101801,'GeldBetragOhneCent12DETyp',context!)
    };

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

/**
* Lieferungen, für die der letzte Abnehmer die Umsatzsteuer schuldet
*/
// @Api(Description="Lieferungen, für die der letzte Abnehmer die Umsatzsteuer schuldet")
class LfgLetztAbn2021 implements IConvertible
{
    /**
    * zum Steuersatz von 19 Prozent (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="zum Steuersatz von 19 Prozent (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3101701")
    GeldBetragOhneCent12DETyp? e3101701;

    /**
    * zum Steuersatz von 19 Prozent (Steuer)
    */
    // @ApiMember(Description="zum Steuersatz von 19 Prozent (Steuer)", Name="E3101702")
    GeldBetragMitCent12DETyp? e3101702;

    /**
    * zum Steuersatz von 7 Prozent (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="zum Steuersatz von 7 Prozent (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3102301")
    GeldBetragOhneCent12DETyp? e3102301;

    /**
    * zum Steuersatz von 7 Prozent (Steuer)
    */
    // @ApiMember(Description="zum Steuersatz von 7 Prozent (Steuer)", Name="E3102302")
    GeldBetragMitCent12DETyp? e3102302;

    /**
    * zu anderen Steuersätzen (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="zu anderen Steuersätzen (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3102303")
    GeldBetragOhneCent12DETyp? e3102303;

    /**
    * zu anderen Steuersätzen (Steuer)
    */
    // @ApiMember(Description="zu anderen Steuersätzen (Steuer)", Name="E3102304")
    GeldBetragMitCent12DETyp? e3102304;

    LfgLetztAbn2021({this.e3101701,this.e3101702,this.e3102301,this.e3102302,this.e3102303,this.e3102304});
    LfgLetztAbn2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3101701 = JsonConverters.fromJson(json['e3101701'],'GeldBetragOhneCent12DETyp',context!);
        e3101702 = JsonConverters.fromJson(json['e3101702'],'GeldBetragMitCent12DETyp',context!);
        e3102301 = JsonConverters.fromJson(json['e3102301'],'GeldBetragOhneCent12DETyp',context!);
        e3102302 = JsonConverters.fromJson(json['e3102302'],'GeldBetragMitCent12DETyp',context!);
        e3102303 = JsonConverters.fromJson(json['e3102303'],'GeldBetragOhneCent12DETyp',context!);
        e3102304 = JsonConverters.fromJson(json['e3102304'],'GeldBetragMitCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3101701': JsonConverters.toJson(e3101701,'GeldBetragOhneCent12DETyp',context!),
        'e3101702': JsonConverters.toJson(e3101702,'GeldBetragMitCent12DETyp',context!),
        'e3102301': JsonConverters.toJson(e3102301,'GeldBetragOhneCent12DETyp',context!),
        'e3102302': JsonConverters.toJson(e3102302,'GeldBetragMitCent12DETyp',context!),
        'e3102303': JsonConverters.toJson(e3102303,'GeldBetragOhneCent12DETyp',context!),
        'e3102304': JsonConverters.toJson(e3102304,'GeldBetragMitCent12DETyp',context!)
    };

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

/**
* Summe
*/
// @Api(Description="Summe")
class IgDreiSum2021 implements IConvertible
{
    /**
    * Summe der Steuer (zu übertragen in Zeile 155)
    */
    // @ApiMember(Description="Summe der Steuer (zu übertragen in Zeile 155)", Name="E3102401")
    GeldBetragMitCent12DETyp? e3102401;

    IgDreiSum2021({this.e3102401});
    IgDreiSum2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3102401 = JsonConverters.fromJson(json['e3102401'],'GeldBetragMitCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3102401': JsonConverters.toJson(e3102401,'GeldBetragMitCent12DETyp',context!)
    };

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

/**
* Innergemeinschaftliche Dreiecksgeschäfte (§ 25b UStG)
*/
// @Api(Description="Innergemeinschaftliche Dreiecksgeschäfte (§ 25b UStG)")
class IgDrei2021 implements IConvertible
{
    /**
    * Lieferungen des ersten Abnehmers
    */
    // @ApiMember(Description="Lieferungen des ersten Abnehmers", Name="LfgErstAbn")
    LfgErstAbn2021? lfgErstAbn;

    /**
    * Lieferungen, für die der letzte Abnehmer die Umsatzsteuer schuldet
    */
    // @ApiMember(Description="Lieferungen, für die der letzte Abnehmer die Umsatzsteuer schuldet", Name="LfgLetztAbn")
    LfgLetztAbn2021? lfgLetztAbn;

    /**
    * Summe
    */
    // @ApiMember(Description="Summe", Name="IgDreiSum")
    IgDreiSum2021? igDreiSum;

    IgDrei2021({this.lfgErstAbn,this.lfgLetztAbn,this.igDreiSum});
    IgDrei2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        lfgErstAbn = JsonConverters.fromJson(json['lfgErstAbn'],'LfgErstAbn2021',context!);
        lfgLetztAbn = JsonConverters.fromJson(json['lfgLetztAbn'],'LfgLetztAbn2021',context!);
        igDreiSum = JsonConverters.fromJson(json['igDreiSum'],'IgDreiSum2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'lfgErstAbn': JsonConverters.toJson(lfgErstAbn,'LfgErstAbn2021',context!),
        'lfgLetztAbn': JsonConverters.toJson(lfgLetztAbn,'LfgLetztAbn2021',context!),
        'igDreiSum': JsonConverters.toJson(igDreiSum,'IgDreiSum2021',context!)
    };

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

/**
* Summe der Steuer (zu übertragen in Zeile 156)
*/
// @Api(Description="Summe der Steuer (zu übertragen in Zeile 156)")
class Ums13bSum2021 implements IConvertible
{
    /**
    * Summe der Steuer (zu übertragen in Zeile 156)
    */
    // @ApiMember(Description="Summe der Steuer (zu übertragen in Zeile 156)", Name="E3102601")
    GeldBetragMitCent12DETyp? e3102601;

    Ums13bSum2021({this.e3102601});
    Ums13bSum2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3102601 = JsonConverters.fromJson(json['e3102601'],'GeldBetragMitCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3102601': JsonConverters.toJson(e3102601,'GeldBetragMitCent12DETyp',context!)
    };

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

class Ums13b2021 implements IConvertible
{
    /**
    * Steuerpflichtige sonstige Leistungen eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (§ 13b Absatz 1 UStG) (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Steuerpflichtige sonstige Leistungen eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (§ 13b Absatz 1 UStG) (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3102205")
    GeldBetragOhneCent12DETyp? e3102205;

    /**
    * Steuerpflichtige sonstige Leistungen eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (§ 13b Absatz 1 UStG) (Steuer)
    */
    // @ApiMember(Description="Steuerpflichtige sonstige Leistungen eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (§ 13b Absatz 1 UStG) (Steuer)", Name="E3102206")
    GeldBetragMitCent12DETyp? e3102206;

    /**
    * Umsätze, die unter das GrEStG fallen (§ 13b Absatz 2 Nummer 3 UStG) (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Umsätze, die unter das GrEStG fallen (§ 13b Absatz 2 Nummer 3 UStG) (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3102307")
    GeldBetragOhneCent12DETyp? e3102307;

    /**
    * Umsätze, die unter das GrEStG fallen (§ 13b Absatz 2 Nummer 3 UStG) (Steuer)
    */
    // @ApiMember(Description="Umsätze, die unter das GrEStG fallen (§ 13b Absatz 2 Nummer 3 UStG) (Steuer)", Name="E3102308")
    GeldBetragMitCent12DETyp? e3102308;

    /**
    * Andere Leistungen (§ 13b Absatz 2 Nummer 1, 2, 4 bis 12 UStG) (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Andere Leistungen (§ 13b Absatz 2 Nummer 1, 2, 4 bis 12 UStG) (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3102503")
    GeldBetragOhneCent12DETyp? e3102503;

    /**
    * Andere Leistungen (§ 13b Absatz 2 Nummer 1, 2, 4 bis 12 UStG) (Steuer)
    */
    // @ApiMember(Description="Andere Leistungen (§ 13b Absatz 2 Nummer 1, 2, 4 bis 12 UStG) (Steuer)", Name="E3102504")
    GeldBetragMitCent12DETyp? e3102504;

    /**
    * Summe
    */
    // @ApiMember(Description="Summe", Name="Ums13bSum")
    Ums13bSum2021? ums13bSum;

    Ums13b2021({this.e3102205,this.e3102206,this.e3102307,this.e3102308,this.e3102503,this.e3102504,this.ums13bSum});
    Ums13b2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3102205 = JsonConverters.fromJson(json['e3102205'],'GeldBetragOhneCent12DETyp',context!);
        e3102206 = JsonConverters.fromJson(json['e3102206'],'GeldBetragMitCent12DETyp',context!);
        e3102307 = JsonConverters.fromJson(json['e3102307'],'GeldBetragOhneCent12DETyp',context!);
        e3102308 = JsonConverters.fromJson(json['e3102308'],'GeldBetragMitCent12DETyp',context!);
        e3102503 = JsonConverters.fromJson(json['e3102503'],'GeldBetragOhneCent12DETyp',context!);
        e3102504 = JsonConverters.fromJson(json['e3102504'],'GeldBetragMitCent12DETyp',context!);
        ums13bSum = JsonConverters.fromJson(json['ums13bSum'],'Ums13bSum2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3102205': JsonConverters.toJson(e3102205,'GeldBetragOhneCent12DETyp',context!),
        'e3102206': JsonConverters.toJson(e3102206,'GeldBetragMitCent12DETyp',context!),
        'e3102307': JsonConverters.toJson(e3102307,'GeldBetragOhneCent12DETyp',context!),
        'e3102308': JsonConverters.toJson(e3102308,'GeldBetragMitCent12DETyp',context!),
        'e3102503': JsonConverters.toJson(e3102503,'GeldBetragOhneCent12DETyp',context!),
        'e3102504': JsonConverters.toJson(e3102504,'GeldBetragMitCent12DETyp',context!),
        'ums13bSum': JsonConverters.toJson(ums13bSum,'Ums13bSum2021',context!)
    };

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

/**
* Represents an unsigned amount of money without cents whose value has a maximum length of 12 digits. That is, 1 to 12 digits. Minus sign NOT allowed.
*/
// @Api(Description="Represents an unsigned amount of money without cents whose value has a maximum length of 12 digits. That is, 1 to 12 digits. Minus sign NOT allowed.")
class PositiverGeldBetragOhneCent12DE extends GrossGeldBetragOhneCent implements IConvertible
{
    /**
    * The intrinsic currency value.
    */
    // @ApiMember(Description="The intrinsic currency value.")
    int? wert;

    PositiverGeldBetragOhneCent12DE({this.wert});
    PositiverGeldBetragOhneCent12DE.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        wert = json['wert'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'wert': wert
    });

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

/**
* Positiver Geldbetrag ohne Cent mit 13 Stellen. Mindestens eine Ziffer und maximal 12 Ziffern. Minusvorzeichen NICHT erlaubt.
*/
// @Api(Description="Positiver Geldbetrag ohne Cent mit 13 Stellen. Mindestens eine Ziffer und maximal 12 Ziffern. Minusvorzeichen NICHT erlaubt.")
class PositiverGeldBetragOhneCent12DETyp extends CustomTypBase implements IConvertible
{
    /**
    * Wert des Datentyps. Mindestens eine Ziffer und maximal 12 Ziffern. Minusvorzeichen NICHT erlaubt.
    */
    // @ApiMember(Description="Wert des Datentyps. Mindestens eine Ziffer und maximal 12 Ziffern. Minusvorzeichen NICHT erlaubt.", IsRequired=true)
    PositiverGeldBetragOhneCent12DE? betrag;

    /**
    * Identifizierung der Zeile / Typ im Fremdprogramm.
    */
    // @ApiMember(Description="Identifizierung der Zeile / Typ im Fremdprogramm.", Name="Alias")
    String? alias;

    PositiverGeldBetragOhneCent12DETyp({this.betrag,this.alias});
    PositiverGeldBetragOhneCent12DETyp.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        betrag = JsonConverters.fromJson(json['betrag'],'PositiverGeldBetragOhneCent12DE',context!);
        alias = json['alias'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'betrag': JsonConverters.toJson(betrag,'PositiverGeldBetragOhneCent12DE',context!),
        'alias': alias
    });

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

/**
* Ergänzende Angaben zu Umsätzen
*/
// @Api(Description="Ergänzende Angaben zu Umsätzen")
class ErgAngUms2021 implements IConvertible
{
    /**
    * Umsätze, die auf Grund eines Verzichts auf Steuerbefreiung (§ 9 UStG) als steuerpflichtig behandelt worden sind (Betrag volle EUR)
    */
    // @ApiMember(Description="Umsätze, die auf Grund eines Verzichts auf Steuerbefreiung (§ 9 UStG) als steuerpflichtig behandelt worden sind (Betrag volle EUR)", Name="E3105201")
    GeldBetragOhneCent12DETyp? e3105201;

    /**
    * Steuerpflichtige Umsätze, für die der Leistungsempfänger die Steuer nach § 13b Absatz 5 UStG schuldet (Betrag volle EUR)
    */
    // @ApiMember(Description="Steuerpflichtige Umsätze, für die der Leistungsempfänger die Steuer nach § 13b Absatz 5 UStG schuldet (Betrag volle EUR)", Name="E3105301")
    GeldBetragOhneCent12DETyp? e3105301;

    /**
    * Beförderungs- und Versendungslieferungen in das übrige Gemeinschaftsgebiet bis zum 30.06.2021 (§ 3c UStG) in Abschnitt B oder C enthalten (Betrag volle EUR)
    */
    // @ApiMember(Description="Beförderungs- und Versendungslieferungen in das übrige Gemeinschaftsgebiet bis zum 30.06.2021 (§ 3c UStG) in Abschnitt B oder C enthalten (Betrag volle EUR)", Name="E3105501")
    GeldBetragOhneCent12DETyp? e3105501;

    /**
    * Beförderungs- und Versendungslieferungen in das übrige Gemeinschaftsgebiet bis zum 30.06.2021 (§ 3c UStG) in anderen EU-Mitgliedstaaten zu versteuern (Betrag volle EUR)
    */
    // @ApiMember(Description="Beförderungs- und Versendungslieferungen in das übrige Gemeinschaftsgebiet bis zum 30.06.2021 (§ 3c UStG) in anderen EU-Mitgliedstaaten zu versteuern (Betrag volle EUR)", Name="E3105601")
    GeldBetragOhneCent12DETyp? e3105601;

    /**
    * Telekommunikations-, Rundfunk- und Fernsehdienstleistungen sowie auf elektronischem Weg erbrachte sonstige Leistungen an im übrigen Gemeinschaftsgebiet ansässige Nichtunternehmer sowie ab dem 1.7.2021 innergemeinschaftliche Fernverkäufe in das übrige Gemeinschaftsgebiet unter der Voraussetzung des § 3a Absatz 5 Sätze 3 und 4 UStG und § 3c Absatz 4 Sätze 1 und 2 UStG in Abschnitt B oder C enthalten (Betrag volle EUR)
    */
    // @ApiMember(Description="Telekommunikations-, Rundfunk- und Fernsehdienstleistungen sowie auf elektronischem Weg erbrachte sonstige Leistungen an im übrigen Gemeinschaftsgebiet ansässige Nichtunternehmer sowie ab dem 1.7.2021 innergemeinschaftliche Fernverkäufe in das übrige Gemeinschaftsgebiet unter der Voraussetzung des § 3a Absatz 5 Sätze 3 und 4 UStG und § 3c Absatz 4 Sätze 1 und 2 UStG in Abschnitt B oder C enthalten (Betrag volle EUR)", Name="E3105101")
    GeldBetragOhneCent12DETyp? e3105101;

    /**
    * Telekommunikations-, Rundfunk- und Fernsehdienstleistungen sowie auf elektronischem Weg erbrachte sonstige Leistungen an im übrigen Gemeinschaftsgebiet ansässige Nichtunternehmer unter der Voraussetzung des § 3a Absatz 5 Sätze 3 und 4 UStG in anderen EU-Mitgliedstaaten zu versteuern (Betrag volle EUR)
    */
    // @ApiMember(Description="Telekommunikations-, Rundfunk- und Fernsehdienstleistungen sowie auf elektronischem Weg erbrachte sonstige Leistungen an im übrigen Gemeinschaftsgebiet ansässige Nichtunternehmer unter der Voraussetzung des § 3a Absatz 5 Sätze 3 und 4 UStG in anderen EU-Mitgliedstaaten zu versteuern (Betrag volle EUR)", Name="E3105102")
    GeldBetragOhneCent12DETyp? e3105102;

    /**
    * Nicht steuerbare Geschäftsveräußerung im Ganzen gemäß § 1 Absatz 1a UStG (Betrag volle EUR)
    */
    // @ApiMember(Description="Nicht steuerbare Geschäftsveräußerung im Ganzen gemäß § 1 Absatz 1a UStG (Betrag volle EUR)", Name="E3105602")
    GeldBetragOhneCent12DETyp? e3105602;

    /**
    * Nicht steuerbare sonstige Leistungen gemäß § 18b Satz 1 Nummer 2 UStG (Betrag volle EUR)
    */
    // @ApiMember(Description="Nicht steuerbare sonstige Leistungen gemäß § 18b Satz 1 Nummer 2 UStG (Betrag volle EUR)", Name="E3105702")
    GeldBetragOhneCent12DETyp? e3105702;

    /**
    * Übrige nicht steuerbare Umsätze (Leistungsort nicht im Inland) (Betrag volle EUR)
    */
    // @ApiMember(Description="Übrige nicht steuerbare Umsätze (Leistungsort nicht im Inland) (Betrag volle EUR)", Name="E3105801")
    GeldBetragOhneCent12DETyp? e3105801;

    /**
    * In den Zeilen 108, 112, 114 und 115 enthaltene Umsätze, die nach § 15 Absatz 2 und 3 UStG den Vorsteuerabzug ausschließen (Betrag volle EUR)
    */
    // @ApiMember(Description="In den Zeilen 108, 112, 114 und 115 enthaltene Umsätze, die nach § 15 Absatz 2 und 3 UStG den Vorsteuerabzug ausschließen (Betrag volle EUR)", Name="E3105901")
    GeldBetragOhneCent12DETyp? e3105901;

    /**
    * Auf den inländischen Streckenanteil entfallende Umsätze grenzüberschreitender Personenbeförderungen im Luftverkehr (§ 26 Absatz 3 UStG) (Betrag volle EUR)
    */
    // @ApiMember(Description="Auf den inländischen Streckenanteil entfallende Umsätze grenzüberschreitender Personenbeförderungen im Luftverkehr (§ 26 Absatz 3 UStG) (Betrag volle EUR)", Name="E3106001")
    GeldBetragOhneCent12DETyp? e3106001;

    /**
    * Minderung der Bemessungsgrundlage nach § 17 Absatz 1 Satz 1 in Verbindung mit Absatz 2 Nummer 1 Satz 1 UStG (in Abschnitt B oder C enthalten) (Betrag volle EUR)
    */
    // @ApiMember(Description="Minderung der Bemessungsgrundlage nach § 17 Absatz 1 Satz 1 in Verbindung mit Absatz 2 Nummer 1 Satz 1 UStG (in Abschnitt B oder C enthalten) (Betrag volle EUR)", Name="E3106101")
    PositiverGeldBetragOhneCent12DETyp? e3106101;

    ErgAngUms2021({this.e3105201,this.e3105301,this.e3105501,this.e3105601,this.e3105101,this.e3105102,this.e3105602,this.e3105702,this.e3105801,this.e3105901,this.e3106001,this.e3106101});
    ErgAngUms2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3105201 = JsonConverters.fromJson(json['e3105201'],'GeldBetragOhneCent12DETyp',context!);
        e3105301 = JsonConverters.fromJson(json['e3105301'],'GeldBetragOhneCent12DETyp',context!);
        e3105501 = JsonConverters.fromJson(json['e3105501'],'GeldBetragOhneCent12DETyp',context!);
        e3105601 = JsonConverters.fromJson(json['e3105601'],'GeldBetragOhneCent12DETyp',context!);
        e3105101 = JsonConverters.fromJson(json['e3105101'],'GeldBetragOhneCent12DETyp',context!);
        e3105102 = JsonConverters.fromJson(json['e3105102'],'GeldBetragOhneCent12DETyp',context!);
        e3105602 = JsonConverters.fromJson(json['e3105602'],'GeldBetragOhneCent12DETyp',context!);
        e3105702 = JsonConverters.fromJson(json['e3105702'],'GeldBetragOhneCent12DETyp',context!);
        e3105801 = JsonConverters.fromJson(json['e3105801'],'GeldBetragOhneCent12DETyp',context!);
        e3105901 = JsonConverters.fromJson(json['e3105901'],'GeldBetragOhneCent12DETyp',context!);
        e3106001 = JsonConverters.fromJson(json['e3106001'],'GeldBetragOhneCent12DETyp',context!);
        e3106101 = JsonConverters.fromJson(json['e3106101'],'PositiverGeldBetragOhneCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3105201': JsonConverters.toJson(e3105201,'GeldBetragOhneCent12DETyp',context!),
        'e3105301': JsonConverters.toJson(e3105301,'GeldBetragOhneCent12DETyp',context!),
        'e3105501': JsonConverters.toJson(e3105501,'GeldBetragOhneCent12DETyp',context!),
        'e3105601': JsonConverters.toJson(e3105601,'GeldBetragOhneCent12DETyp',context!),
        'e3105101': JsonConverters.toJson(e3105101,'GeldBetragOhneCent12DETyp',context!),
        'e3105102': JsonConverters.toJson(e3105102,'GeldBetragOhneCent12DETyp',context!),
        'e3105602': JsonConverters.toJson(e3105602,'GeldBetragOhneCent12DETyp',context!),
        'e3105702': JsonConverters.toJson(e3105702,'GeldBetragOhneCent12DETyp',context!),
        'e3105801': JsonConverters.toJson(e3105801,'GeldBetragOhneCent12DETyp',context!),
        'e3105901': JsonConverters.toJson(e3105901,'GeldBetragOhneCent12DETyp',context!),
        'e3106001': JsonConverters.toJson(e3106001,'GeldBetragOhneCent12DETyp',context!),
        'e3106101': JsonConverters.toJson(e3106101,'PositiverGeldBetragOhneCent12DETyp',context!)
    };

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

/**
* Summe der Vorsteuerbeträge (zu übertragen in Zeile 158)
*/
// @Api(Description="Summe der Vorsteuerbeträge (zu übertragen in Zeile 158)")
class AbzVoStSum2021 implements IConvertible
{
    /**
    * Summe der Vorsteuerbeträge (zu übertragen in Zeile 158)
    */
    // @ApiMember(Description="Summe der Vorsteuerbeträge (zu übertragen in Zeile 158)", Name="E3006901")
    GeldBetragMitCent12DETyp? e3006901;

    AbzVoStSum2021({this.e3006901});
    AbzVoStSum2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3006901 = JsonConverters.fromJson(json['e3006901'],'GeldBetragMitCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3006901': JsonConverters.toJson(e3006901,'GeldBetragMitCent12DETyp',context!)
    };

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

class ErgAng2021 implements IConvertible
{
    /**
    * Minderung der abziehbaren Vorsteuerbeträge nach § 17 Absatz 1 Satz 2 in Verbindung mit Absatz 2 Nummer 1 Satz 1 UStG (in den Zeilen 122, 127 bis 129 enthalten)
    */
    // @ApiMember(Description="Minderung der abziehbaren Vorsteuerbeträge nach § 17 Absatz 1 Satz 2 in Verbindung mit Absatz 2 Nummer 1 Satz 1 UStG (in den Zeilen 122, 127 bis 129 enthalten)", Name="E3007001")
    PositiverGeldBetragMitCent12DETyp? e3007001;

    ErgAng2021({this.e3007001});
    ErgAng2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3007001 = JsonConverters.fromJson(json['e3007001'],'PositiverGeldBetragMitCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3007001': JsonConverters.toJson(e3007001,'PositiverGeldBetragMitCent12DETyp',context!)
    };

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

/**
* Abziehbare Vorsteuerbeträge
*/
// @Api(Description="Abziehbare Vorsteuerbeträge")
class AbzVoSt2021 implements IConvertible
{
    /**
    * Vorsteuerbeträge aus Rechnungen von anderen Unternehmern (§ 15 Absatz 1 Satz 1 Nummer 1 UStG)
    */
    // @ApiMember(Description="Vorsteuerbeträge aus Rechnungen von anderen Unternehmern (§ 15 Absatz 1 Satz 1 Nummer 1 UStG)", Name="E3006201")
    GeldBetragMitCent12DETyp? e3006201;

    /**
    * Vorsteuerbeträge aus innergemeinschaftlichen Erwerben von Gegenständen (§ 15 Absatz 1 Satz 1 Nummer 3 UStG) 
    */
    // @ApiMember(Description="Vorsteuerbeträge aus innergemeinschaftlichen Erwerben von Gegenständen (§ 15 Absatz 1 Satz 1 Nummer 3 UStG) ", Name="E3006301")
    GeldBetragMitCent12DETyp? e3006301;

    /**
    * Entstandene Einfuhrumsatzsteuer (§ 15 Absatz 1 Satz 1 Nummer 2 UStG)
    */
    // @ApiMember(Description="Entstandene Einfuhrumsatzsteuer (§ 15 Absatz 1 Satz 1 Nummer 2 UStG)", Name="E3006401")
    GeldBetragMitCent12DETyp? e3006401;

    /**
    * Vorsteuerabzug für die Steuer, die der Abnehmer als Auslagerer nach § 13a Absatz 1 Nummer 6 UStG schuldet (§ 15 Absatz 1 Satz 1 Nummer 5 UStG)
    */
    // @ApiMember(Description="Vorsteuerabzug für die Steuer, die der Abnehmer als Auslagerer nach § 13a Absatz 1 Nummer 6 UStG schuldet (§ 15 Absatz 1 Satz 1 Nummer 5 UStG)", Name="E3006503")
    GeldBetragMitCent12DETyp? e3006503;

    /**
    * Vorsteuerbeträge aus Leistungen im Sinne des § 13b UStG (§ 15 Absatz 1 Satz 1 Nummer 4 UStG)
    */
    // @ApiMember(Description="Vorsteuerbeträge aus Leistungen im Sinne des § 13b UStG (§ 15 Absatz 1 Satz 1 Nummer 4 UStG)", Name="E3006502")
    GeldBetragMitCent12DETyp? e3006502;

    /**
    * Vorsteuerbeträge, die nach den allgemeinen Durchschnittssätzen berechnet sind (§ 23 UStG)
    */
    // @ApiMember(Description="Vorsteuerbeträge, die nach den allgemeinen Durchschnittssätzen berechnet sind (§ 23 UStG)", Name="E3006501")
    GeldBetragMitCent12DETyp? e3006501;

    /**
    * Vorsteuerbeträge nach dem Durchschnittssatz für bestimmte Körperschaften, Personenvereinigungen und Vermögensmassen (§ 23a UStG)
    */
    // @ApiMember(Description="Vorsteuerbeträge nach dem Durchschnittssatz für bestimmte Körperschaften, Personenvereinigungen und Vermögensmassen (§ 23a UStG)", Name="E3006601")
    GeldBetragMitCent12DETyp? e3006601;

    /**
    * Vorsteuerabzug für innergemeinschaftliche Lieferungen neuer Fahrzeuge außerhalb eines Unternehmens (§ 2a UStG) sowie von Kleinunternehmern im Sinne des § 19 Absatz 1 UStG (§ 15 Absatz 4a UStG)
    */
    // @ApiMember(Description="Vorsteuerabzug für innergemeinschaftliche Lieferungen neuer Fahrzeuge außerhalb eines Unternehmens (§ 2a UStG) sowie von Kleinunternehmern im Sinne des § 19 Absatz 1 UStG (§ 15 Absatz 4a UStG)", Name="E3006701")
    GeldBetragMitCent12DETyp? e3006701;

    /**
    * Vorsteuerbeträge aus innergemeinschaftlichen Dreiecksgeschäften (§ 25b Absatz 5 UStG)
    */
    // @ApiMember(Description="Vorsteuerbeträge aus innergemeinschaftlichen Dreiecksgeschäften (§ 25b Absatz 5 UStG)", Name="E3006801")
    GeldBetragMitCent12DETyp? e3006801;

    /**
    * Summe der Vorsteuerbeträge (zu übertragen in Zeile 158)
    */
    // @ApiMember(Description="Summe der Vorsteuerbeträge (zu übertragen in Zeile 158)", Name="AbzVoStSum")
    AbzVoStSum2021? abzVoStSum;

    /**
    * Ergänzende Angabe
    */
    // @ApiMember(Description="Ergänzende Angabe", Name="AbzVoStSum")
    ErgAng2021? ergAng;

    AbzVoSt2021({this.e3006201,this.e3006301,this.e3006401,this.e3006503,this.e3006502,this.e3006501,this.e3006601,this.e3006701,this.e3006801,this.abzVoStSum,this.ergAng});
    AbzVoSt2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3006201 = JsonConverters.fromJson(json['e3006201'],'GeldBetragMitCent12DETyp',context!);
        e3006301 = JsonConverters.fromJson(json['e3006301'],'GeldBetragMitCent12DETyp',context!);
        e3006401 = JsonConverters.fromJson(json['e3006401'],'GeldBetragMitCent12DETyp',context!);
        e3006503 = JsonConverters.fromJson(json['e3006503'],'GeldBetragMitCent12DETyp',context!);
        e3006502 = JsonConverters.fromJson(json['e3006502'],'GeldBetragMitCent12DETyp',context!);
        e3006501 = JsonConverters.fromJson(json['e3006501'],'GeldBetragMitCent12DETyp',context!);
        e3006601 = JsonConverters.fromJson(json['e3006601'],'GeldBetragMitCent12DETyp',context!);
        e3006701 = JsonConverters.fromJson(json['e3006701'],'GeldBetragMitCent12DETyp',context!);
        e3006801 = JsonConverters.fromJson(json['e3006801'],'GeldBetragMitCent12DETyp',context!);
        abzVoStSum = JsonConverters.fromJson(json['abzVoStSum'],'AbzVoStSum2021',context!);
        ergAng = JsonConverters.fromJson(json['ergAng'],'ErgAng2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3006201': JsonConverters.toJson(e3006201,'GeldBetragMitCent12DETyp',context!),
        'e3006301': JsonConverters.toJson(e3006301,'GeldBetragMitCent12DETyp',context!),
        'e3006401': JsonConverters.toJson(e3006401,'GeldBetragMitCent12DETyp',context!),
        'e3006503': JsonConverters.toJson(e3006503,'GeldBetragMitCent12DETyp',context!),
        'e3006502': JsonConverters.toJson(e3006502,'GeldBetragMitCent12DETyp',context!),
        'e3006501': JsonConverters.toJson(e3006501,'GeldBetragMitCent12DETyp',context!),
        'e3006601': JsonConverters.toJson(e3006601,'GeldBetragMitCent12DETyp',context!),
        'e3006701': JsonConverters.toJson(e3006701,'GeldBetragMitCent12DETyp',context!),
        'e3006801': JsonConverters.toJson(e3006801,'GeldBetragMitCent12DETyp',context!),
        'abzVoStSum': JsonConverters.toJson(abzVoStSum,'AbzVoStSum2021',context!),
        'ergAng': JsonConverters.toJson(ergAng,'ErgAng2021',context!)
    };

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

/**
* Datum-Uhrzeit-Typ. Format: TT.MM.JJJJ.
*/
// @Api(Description="Datum-Uhrzeit-Typ. Format: TT.MM.JJJJ.")
class DatumUhrzeitTyp extends CustomTypBase implements IConvertible
{
    /**
    * Wert des Datentyps.
    */
    // @ApiMember(Description="Wert des Datentyps.", IsRequired=true, Name="Wert")
    DateTime? wert;

    /**
    * Identifizierung der Zeile / Typ im Fremdprogramm.
    */
    // @ApiMember(Description="Identifizierung der Zeile / Typ im Fremdprogramm.", Name="Alias")
    String? alias;

    DatumUhrzeitTyp({this.wert,this.alias});
    DatumUhrzeitTyp.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        wert = JsonConverters.fromJson(json['wert'],'DateTime',context!);
        alias = json['alias'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'wert': JsonConverters.toJson(wert,'DateTime',context!),
        'alias': alias
    });

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

/**
* Represents an unsigned amount of money with cents whose value has a maximum length of 15 digits. That is, 1 to 13 digits before the decimal separator and 2 digits after the decimal separator. Minus sign NOT allowed.
*/
// @Api(Description="Represents an unsigned amount of money with cents whose value has a maximum length of 15 digits. That is, 1 to 13 digits before the decimal separator and 2 digits after the decimal separator. Minus sign NOT allowed.")
class PositiverGeldBetragMitCent13DE extends GeldBetragMitCent implements IConvertible
{
    /**
    * The intrinsic currency value.
    */
    // @ApiMember(Description="The intrinsic currency value.")
    double? wert;

    PositiverGeldBetragMitCent13DE({this.wert});
    PositiverGeldBetragMitCent13DE.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        wert = JsonConverters.toDouble(json['wert']);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'wert': wert
    });

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

/**
* Absoluter Geldbetrag mit Cent mit 13 Vorkommastellen. Mindestens eine Ziffer und maximal 13 Ziffern vor dem Dezimaltrennzeichen. 2 Ziffern nach dem Dezimaltrennzeichen. Minusvorzeichen NICHT erlaubt. ',' als Dezimaltrennzeichen.
*/
// @Api(Description="Absoluter Geldbetrag mit Cent mit 13 Vorkommastellen. Mindestens eine Ziffer und maximal 13 Ziffern vor dem Dezimaltrennzeichen. 2 Ziffern nach dem Dezimaltrennzeichen. Minusvorzeichen NICHT erlaubt. ',' als Dezimaltrennzeichen.")
class PositiverGeldBetragMitCent13DETyp extends CustomTypBase implements IConvertible
{
    /**
    * Wert des Datentyps.  Mindestens eine Ziffer und maximal 13 Ziffern vor dem Dezimaltrennzeichen. 2 Ziffern nach dem Dezimaltrennzeichen. Minusvorzeichen NICHT erlaubt.
    */
    // @ApiMember(Description="Wert des Datentyps.  Mindestens eine Ziffer und maximal 13 Ziffern vor dem Dezimaltrennzeichen. 2 Ziffern nach dem Dezimaltrennzeichen. Minusvorzeichen NICHT erlaubt.", IsRequired=true)
    PositiverGeldBetragMitCent13DE? betrag;

    /**
    * Identifizierung der Zeile / Typ im Fremdprogramm.
    */
    // @ApiMember(Description="Identifizierung der Zeile / Typ im Fremdprogramm.", Name="Alias")
    String? alias;

    PositiverGeldBetragMitCent13DETyp({this.betrag,this.alias});
    PositiverGeldBetragMitCent13DETyp.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        betrag = JsonConverters.fromJson(json['betrag'],'PositiverGeldBetragMitCent13DE',context!);
        alias = json['alias'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'betrag': JsonConverters.toJson(betrag,'PositiverGeldBetragMitCent13DE',context!),
        'alias': alias
    });

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

/**
* Angaben zum Grundstück oder Gebäude.
*/
// @Api(Description="Angaben zum Grundstück oder Gebäude.")
class AngGrdst2021 implements IConvertible
{
    /**
    * Lage des Grundstücks oder Gebäudes
    */
    // @ApiMember(Description="Lage des Grundstücks oder Gebäudes", Name="E3007401")
    StringTyp? e3007401;

    /**
    * Zeitpunkt der erstmaligen tatsächlichen Verwendung
    */
    // @ApiMember(Description="Zeitpunkt der erstmaligen tatsächlichen Verwendung", Name="E3007402")
    DatumUhrzeitTyp? e3007402;

    /**
    * Art der Verwendung im Erstjahr
    */
    // @ApiMember(Description="Art der Verwendung im Erstjahr", Name="E3007403")
    StringTyp? e3007403;

    /**
    * Umfang der Verwendung im Erstjahr
    */
    // @ApiMember(Description="Umfang der Verwendung im Erstjahr", Name="E3007404")
    PositiverGeldBetragMitCent13DETyp? e3007404;

    /**
    * insgesamt angefallene Vorsteuer
    */
    // @ApiMember(Description="insgesamt angefallene Vorsteuer", Name="E3007405")
    GeldBetragOhneCent12DETyp? e3007405;

    /**
    * in den Vorjahren - Investitionsphase - bereits abgezogene Vorsteuer
    */
    // @ApiMember(Description="in den Vorjahren - Investitionsphase - bereits abgezogene Vorsteuer", Name="E3007406")
    GeldBetragOhneCent12DETyp? e3007406;

    AngGrdst2021({this.e3007401,this.e3007402,this.e3007403,this.e3007404,this.e3007405,this.e3007406});
    AngGrdst2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3007401 = JsonConverters.fromJson(json['e3007401'],'StringTyp',context!);
        e3007402 = JsonConverters.fromJson(json['e3007402'],'DatumUhrzeitTyp',context!);
        e3007403 = JsonConverters.fromJson(json['e3007403'],'StringTyp',context!);
        e3007404 = JsonConverters.fromJson(json['e3007404'],'PositiverGeldBetragMitCent13DETyp',context!);
        e3007405 = JsonConverters.fromJson(json['e3007405'],'GeldBetragOhneCent12DETyp',context!);
        e3007406 = JsonConverters.fromJson(json['e3007406'],'GeldBetragOhneCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3007401': JsonConverters.toJson(e3007401,'StringTyp',context!),
        'e3007402': JsonConverters.toJson(e3007402,'DatumUhrzeitTyp',context!),
        'e3007403': JsonConverters.toJson(e3007403,'StringTyp',context!),
        'e3007404': JsonConverters.toJson(e3007404,'PositiverGeldBetragMitCent13DETyp',context!),
        'e3007405': JsonConverters.toJson(e3007405,'GeldBetragOhneCent12DETyp',context!),
        'e3007406': JsonConverters.toJson(e3007406,'GeldBetragOhneCent12DETyp',context!)
    };

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

/**
* Sind im Kalenderjahr 2021 Grundstücke, Grundstücksteile, Gebäude oder Gebäudeteile, für die Vorsteuer abgezogen worden ist, erstmals tatsächlich verwendet worden?
*/
// @Api(Description="Sind im Kalenderjahr 2021 Grundstücke, Grundstücksteile, Gebäude oder Gebäudeteile, für die Vorsteuer abgezogen worden ist, erstmals tatsächlich verwendet worden?")
class GrdstErstmVerw2021 implements IConvertible
{
    /**
    * Falls ja, bitte eine 1 eintragen
    */
    // @ApiMember(Description="Falls ja, bitte eine 1 eintragen", Name="E3007301")
    Bool1Typ? e3007301;

    /**
    * Angaben zum Grundstück oder Gebäude.
    */
    // @ApiMember(Description="Angaben zum Grundstück oder Gebäude.", Name="AngGrdst")
    AngGrdst2021? angGrdst;

    GrdstErstmVerw2021({this.e3007301,this.angGrdst});
    GrdstErstmVerw2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3007301 = JsonConverters.fromJson(json['e3007301'],'Bool1Typ',context!);
        angGrdst = JsonConverters.fromJson(json['angGrdst'],'AngGrdst2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3007301': JsonConverters.toJson(e3007301,'Bool1Typ',context!),
        'angGrdst': JsonConverters.toJson(angGrdst,'AngGrdst2021',context!)
    };

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

/**
* Haben sich im Jahr 2021 die für den ursprünglichen Vorsteuerabzug maßgebenden Verhältnisse geändert bei.
*/
// @Api(Description="Haben sich im Jahr 2021 die für den ursprünglichen Vorsteuerabzug maßgebenden Verhältnisse geändert bei.")
class AendVerh2021 implements IConvertible
{
    /**
    * 1. Grundstücken, Grundstücksteilen, Gebäuden oder Gebäudeteilen, die innerhalb der letzten 10 Jahre erstmals tatsächlich und nicht nur einmalig zur Ausführung von Umsätzen verwendet worden sind? Falls ja, bitte eine 'true' eintragen
    */
    // @ApiMember(Description="1. Grundstücken, Grundstücksteilen, Gebäuden oder Gebäudeteilen, die innerhalb der letzten 10 Jahre erstmals tatsächlich und nicht nur einmalig zur Ausführung von Umsätzen verwendet worden sind? Falls ja, bitte eine 'true' eintragen", Name="E3007601")
    Bool1Typ? e3007601;

    /**
    * 2. anderen Wirtschaftsgütern und sonstigen Leistungen, die innerhalb der letzten 5 Jahre erstmals tatsächlich und nicht nur einmalig zur Ausführung von Umsätzen verwendet worden sind? Falls ja, bitte eine 'true' eintragen)
    */
    // @ApiMember(Description="2. anderen Wirtschaftsgütern und sonstigen Leistungen, die innerhalb der letzten 5 Jahre erstmals tatsächlich und nicht nur einmalig zur Ausführung von Umsätzen verwendet worden sind? Falls ja, bitte eine 'true' eintragen)", Name="E3008501")
    Bool1Typ? e3008501;

    /**
    * 3. Wirtschaftsgütern und sonstigen Leistungen, die nur einmalig zur Ausführung von Umsätzen verwendet worden sind? Falls ja, bitte eine 1 eintragen
    */
    // @ApiMember(Description="3. Wirtschaftsgütern und sonstigen Leistungen, die nur einmalig zur Ausführung von Umsätzen verwendet worden sind? Falls ja, bitte eine 1 eintragen", Name="E3008601")
    Bool1Typ? e3008601;

    AendVerh2021({this.e3007601,this.e3008501,this.e3008601});
    AendVerh2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3007601 = JsonConverters.fromJson(json['e3007601'],'Bool1Typ',context!);
        e3008501 = JsonConverters.fromJson(json['e3008501'],'Bool1Typ',context!);
        e3008601 = JsonConverters.fromJson(json['e3008601'],'Bool1Typ',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3007601': JsonConverters.toJson(e3007601,'Bool1Typ',context!),
        'e3008501': JsonConverters.toJson(e3008501,'Bool1Typ',context!),
        'e3008601': JsonConverters.toJson(e3008601,'Bool1Typ',context!)
    };

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

/**
* Nutzungsänderung.
*/
// @Api(Description="Nutzungsänderung.")
class NutzAend2021 implements IConvertible
{
    /**
    * Nutzungsänderung, und zwar
    */
    // @ApiMember(Description="Nutzungsänderung, und zwar", Name="E3007901")
    BoolXTyp? e3007901;

    /**
    * Übergang von steuerpflichtiger zu steuerfreier Vermietung oder umgekehrt beziehungsweise Änderung des Verwendungsschlüssels bei gemischt genutzten Grundstücken (insbesondere bei Mieterwechsel)
    */
    // @ApiMember(Description="Übergang von steuerpflichtiger zu steuerfreier Vermietung oder umgekehrt beziehungsweise Änderung des Verwendungsschlüssels bei gemischt genutzten Grundstücken (insbesondere bei Mieterwechsel)", Name="E3008001")
    BoolXTyp? e3008001;

    /**
    * steuerfreie Vermietung bisher eigengewerblich genutzter Räume oder umgekehrt; Übergang von einer Vermietung für NATO- oder ähnliche Zwecke zu einer nach  § 4 Nummer 12 UStG steuerfreien Vermietung
    */
    // @ApiMember(Description="steuerfreie Vermietung bisher eigengewerblich genutzter Räume oder umgekehrt; Übergang von einer Vermietung für NATO- oder ähnliche Zwecke zu einer nach  § 4 Nummer 12 UStG steuerfreien Vermietung", Name="E3008202")
    BoolXTyp? e3008202;

    /**
    * Andere Gründe für die geänderte Beurteilung des Vorsteuerabzugs:
    */
    // @ApiMember(Description="Andere Gründe für die geänderte Beurteilung des Vorsteuerabzugs:", Name="E3008401")
    BoolXTyp? e3008401;

    /**
    * Begründung
    */
    // @ApiMember(Description="Begründung", Name="E3008402")
    StringTyp? e3008402;

    NutzAend2021({this.e3007901,this.e3008001,this.e3008202,this.e3008401,this.e3008402});
    NutzAend2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3007901 = JsonConverters.fromJson(json['e3007901'],'BoolXTyp',context!);
        e3008001 = JsonConverters.fromJson(json['e3008001'],'BoolXTyp',context!);
        e3008202 = JsonConverters.fromJson(json['e3008202'],'BoolXTyp',context!);
        e3008401 = JsonConverters.fromJson(json['e3008401'],'BoolXTyp',context!);
        e3008402 = JsonConverters.fromJson(json['e3008402'],'StringTyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3007901': JsonConverters.toJson(e3007901,'BoolXTyp',context!),
        'e3008001': JsonConverters.toJson(e3008001,'BoolXTyp',context!),
        'e3008202': JsonConverters.toJson(e3008202,'BoolXTyp',context!),
        'e3008401': JsonConverters.toJson(e3008401,'BoolXTyp',context!),
        'e3008402': JsonConverters.toJson(e3008402,'StringTyp',context!)
    };

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

/**
* Die Verhältnisse, die ursprünglich für die Beurteilung des Vorsteuerabzugs maßgebend waren, haben sich seitdem geändert durch:
*/
// @Api(Description="Die Verhältnisse, die ursprünglich für die Beurteilung des Vorsteuerabzugs maßgebend waren, haben sich seitdem geändert durch:")
class GrundAendVerh2021 implements IConvertible
{
    /**
    * Veräußerung
    */
    // @ApiMember(Description="Veräußerung", Name="E3007801")
    BoolXTyp? e3007801;

    /**
    * Lieferung im Sinne des § 3 Absatz 1b UStG
    */
    // @ApiMember(Description="Lieferung im Sinne des § 3 Absatz 1b UStG", Name="E3007802")
    BoolXTyp? e3007802;

    /**
    * Wechsel der Besteuerungsform, § 15a Absatz 7 UStG
    */
    // @ApiMember(Description="Wechsel der Besteuerungsform, § 15a Absatz 7 UStG", Name="E3007803")
    BoolXTyp? e3007803;

    /**
    * Nutzungsänderungen
    */
    // @ApiMember(Description="Nutzungsänderungen", Name="NutzAend")
    NutzAend2021? nutzAend;

    GrundAendVerh2021({this.e3007801,this.e3007802,this.e3007803,this.nutzAend});
    GrundAendVerh2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3007801 = JsonConverters.fromJson(json['e3007801'],'BoolXTyp',context!);
        e3007802 = JsonConverters.fromJson(json['e3007802'],'BoolXTyp',context!);
        e3007803 = JsonConverters.fromJson(json['e3007803'],'BoolXTyp',context!);
        nutzAend = JsonConverters.fromJson(json['nutzAend'],'NutzAend2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3007801': JsonConverters.toJson(e3007801,'BoolXTyp',context!),
        'e3007802': JsonConverters.toJson(e3007802,'BoolXTyp',context!),
        'e3007803': JsonConverters.toJson(e3007803,'BoolXTyp',context!),
        'nutzAend': JsonConverters.toJson(nutzAend,'NutzAend2021',context!)
    };

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

/**
* Summe
*/
// @Api(Description="Summe")
class VoStBerBetrSum2021 implements IConvertible
{
    /**
    * Summe nachträglich abziehbar (zu übertragen in Zeile 159)
    */
    // @ApiMember(Description="Summe nachträglich abziehbar (zu übertragen in Zeile 159)", Name="E3008901")
    PositiverGeldBetragMitCent12DETyp? e3008901;

    /**
    * Summe zurückzuzahlen (zu übertragen in Zeile 161)
    */
    // @ApiMember(Description="Summe zurückzuzahlen (zu übertragen in Zeile 161)", Name="E3008902")
    PositiverGeldBetragMitCent12DETyp? e3008902;

    VoStBerBetrSum2021({this.e3008901,this.e3008902});
    VoStBerBetrSum2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3008901 = JsonConverters.fromJson(json['e3008901'],'PositiverGeldBetragMitCent12DETyp',context!);
        e3008902 = JsonConverters.fromJson(json['e3008902'],'PositiverGeldBetragMitCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3008901': JsonConverters.toJson(e3008901,'PositiverGeldBetragMitCent12DETyp',context!),
        'e3008902': JsonConverters.toJson(e3008902,'PositiverGeldBetragMitCent12DETyp',context!)
    };

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

/**
* Vorsteuerberichtigungsbeträge.
*/
// @Api(Description="Vorsteuerberichtigungsbeträge.")
class VoStBerBetr2021 implements IConvertible
{
    /**
    * zu 1. Grundstücke und so weiter, § 15a Absatz 1 Satz 2 UStG (nachträglich abziehbar)
    */
    // @ApiMember(Description="zu 1. Grundstücke und so weiter, § 15a Absatz 1 Satz 2 UStG (nachträglich abziehbar)", Name="E3008701")
    PositiverGeldBetragMitCent12DETyp? e3008701;

    /**
    * zu 1. Grundstücke und so weiter, § 15a Absatz 1 Satz 2 UStG (zurückzuzahlen)
    */
    // @ApiMember(Description="zu 1. Grundstücke und so weiter, § 15a Absatz 1 Satz 2 UStG (zurückzuzahlen)", Name="E3008702")
    PositiverGeldBetragMitCent12DETyp? e3008702;

    /**
    * zu 2. andere Wirtschaftsgüter und so weiter, § 15a Absatz 1 Satz 1 UStG (nachträglich abziehbar)
    */
    // @ApiMember(Description="zu 2. andere Wirtschaftsgüter und so weiter, § 15a Absatz 1 Satz 1 UStG (nachträglich abziehbar)", Name="E3008801")
    PositiverGeldBetragMitCent12DETyp? e3008801;

    /**
    * zu 2. andere Wirtschaftsgüter und so weiter, § 15a Absatz 1 Satz 1 UStG (zurückzuzahlen)
    */
    // @ApiMember(Description="zu 2. andere Wirtschaftsgüter und so weiter, § 15a Absatz 1 Satz 1 UStG (zurückzuzahlen)", Name="E3008802")
    PositiverGeldBetragMitCent12DETyp? e3008802;

    /**
    * zu 3. Wirtschaftsgüter und so weiter, § 15a Absatz 2 UStG (nachträglich abziehbar)
    */
    // @ApiMember(Description="zu 3. Wirtschaftsgüter und so weiter, § 15a Absatz 2 UStG (nachträglich abziehbar)", Name="E3008803")
    PositiverGeldBetragMitCent12DETyp? e3008803;

    /**
    * zu 3. Wirtschaftsgüter und so weiter, § 15a Absatz 2 UStG (zurückzuzahlen)
    */
    // @ApiMember(Description="zu 3. Wirtschaftsgüter und so weiter, § 15a Absatz 2 UStG (zurückzuzahlen)", Name="E3008804")
    PositiverGeldBetragMitCent12DETyp? e3008804;

    /**
    * Summe
    */
    // @ApiMember(Description="Summe", Name="VoStBerBetrSum")
    VoStBerBetrSum2021? voStBerBetrSum;

    VoStBerBetr2021({this.e3008701,this.e3008702,this.e3008801,this.e3008802,this.e3008803,this.e3008804,this.voStBerBetrSum});
    VoStBerBetr2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3008701 = JsonConverters.fromJson(json['e3008701'],'PositiverGeldBetragMitCent12DETyp',context!);
        e3008702 = JsonConverters.fromJson(json['e3008702'],'PositiverGeldBetragMitCent12DETyp',context!);
        e3008801 = JsonConverters.fromJson(json['e3008801'],'PositiverGeldBetragMitCent12DETyp',context!);
        e3008802 = JsonConverters.fromJson(json['e3008802'],'PositiverGeldBetragMitCent12DETyp',context!);
        e3008803 = JsonConverters.fromJson(json['e3008803'],'PositiverGeldBetragMitCent12DETyp',context!);
        e3008804 = JsonConverters.fromJson(json['e3008804'],'PositiverGeldBetragMitCent12DETyp',context!);
        voStBerBetrSum = JsonConverters.fromJson(json['voStBerBetrSum'],'VoStBerBetrSum2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3008701': JsonConverters.toJson(e3008701,'PositiverGeldBetragMitCent12DETyp',context!),
        'e3008702': JsonConverters.toJson(e3008702,'PositiverGeldBetragMitCent12DETyp',context!),
        'e3008801': JsonConverters.toJson(e3008801,'PositiverGeldBetragMitCent12DETyp',context!),
        'e3008802': JsonConverters.toJson(e3008802,'PositiverGeldBetragMitCent12DETyp',context!),
        'e3008803': JsonConverters.toJson(e3008803,'PositiverGeldBetragMitCent12DETyp',context!),
        'e3008804': JsonConverters.toJson(e3008804,'PositiverGeldBetragMitCent12DETyp',context!),
        'voStBerBetrSum': JsonConverters.toJson(voStBerBetrSum,'VoStBerBetrSum2021',context!)
    };

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

/**
* Berichtigung des Vorsteuerabzugs (§ 15a UStG).
*/
// @Api(Description="Berichtigung des Vorsteuerabzugs (§ 15a UStG).")
class BerVoSt15a2021 implements IConvertible
{
    /**
    * Sind im Kalenderjahr 2021 Grundstücke, Grundstücksteile, Gebäude oder Gebäudeteile, für die Vorsteuer abgezogen worden ist, erstmals tatsächlich verwendet worden?
    */
    // @ApiMember(Description="Sind im Kalenderjahr 2021 Grundstücke, Grundstücksteile, Gebäude oder Gebäudeteile, für die Vorsteuer abgezogen worden ist, erstmals tatsächlich verwendet worden?", Name="GrdstErstmVerw")
    GrdstErstmVerw2021? grdstErstmVerw;

    /**
    * Haben sich im Jahr 2021 die für den ursprünglichen Vorsteuerabzug maßgebenden Verhältnisse geändert bei
    */
    // @ApiMember(Description="Haben sich im Jahr 2021 die für den ursprünglichen Vorsteuerabzug maßgebenden Verhältnisse geändert bei", Name="AendVerh")
    AendVerh2021? aendVerh;

    /**
    * Die Verhältnisse, die ursprünglich für die Beurteilung des Vorsteuerabzugs maßgebend waren, haben sich seitdem geändert durch:
    */
    // @ApiMember(Description="Die Verhältnisse, die ursprünglich für die Beurteilung des Vorsteuerabzugs maßgebend waren, haben sich seitdem geändert durch:", Name="GrundAendVerh")
    GrundAendVerh2021? grundAendVerh;

    /**
    * Nutzungsänderung
    */
    // @ApiMember(Description="Nutzungsänderung", Name="VoStBerBetr")
    VoStBerBetr2021? voStBerBetr;

    BerVoSt15a2021({this.grdstErstmVerw,this.aendVerh,this.grundAendVerh,this.voStBerBetr});
    BerVoSt15a2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        grdstErstmVerw = JsonConverters.fromJson(json['grdstErstmVerw'],'GrdstErstmVerw2021',context!);
        aendVerh = JsonConverters.fromJson(json['aendVerh'],'AendVerh2021',context!);
        grundAendVerh = JsonConverters.fromJson(json['grundAendVerh'],'GrundAendVerh2021',context!);
        voStBerBetr = JsonConverters.fromJson(json['voStBerBetr'],'VoStBerBetr2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'grdstErstmVerw': JsonConverters.toJson(grdstErstmVerw,'GrdstErstmVerw2021',context!),
        'aendVerh': JsonConverters.toJson(aendVerh,'AendVerh2021',context!),
        'grundAendVerh': JsonConverters.toJson(grundAendVerh,'GrundAendVerh2021',context!),
        'voStBerBetr': JsonConverters.toJson(voStBerBetr,'VoStBerBetr2021',context!)
    };

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

/**
* Verbleibende Umsatzsteuer / Verbleibender Überschuss.
*/
// @Api(Description="Verbleibende Umsatzsteuer / Verbleibender Überschuss.")
class VerblUSt2021 implements IConvertible
{
    /**
    * Verbleibende Umsatzsteuer / Verbleibender Überschuss (bei verbleibendem Überschuss - bitte dem Betrag ein Minuszeichen voranstellen)
    */
    // @ApiMember(Description="Verbleibende Umsatzsteuer / Verbleibender Überschuss (bei verbleibendem Überschuss - bitte dem Betrag ein Minuszeichen voranstellen)", IsRequired=true, Name="E3011101")
    // @Validate(Validator="NotNull")
    GeldBetragMitCent12DETyp? e3011101;

    /**
    * Vorauszahlungssoll 2021 (einschließlich Sondervorauszahlung)
    */
    // @ApiMember(Description="Vorauszahlungssoll 2021 (einschließlich Sondervorauszahlung)", IsRequired=true, Name="E3011301")
    // @Validate(Validator="NotNull")
    GeldBetragMitCent12DETyp? e3011301;

    VerblUSt2021({this.e3011101,this.e3011301});
    VerblUSt2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3011101 = JsonConverters.fromJson(json['e3011101'],'GeldBetragMitCent12DETyp',context!);
        e3011301 = JsonConverters.fromJson(json['e3011301'],'GeldBetragMitCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3011101': JsonConverters.toJson(e3011101,'GeldBetragMitCent12DETyp',context!),
        'e3011301': JsonConverters.toJson(e3011301,'GeldBetragMitCent12DETyp',context!)
    };

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

/**
* Noch an die Finanzkasse zu entrichten - Abschlusszahlung / Erstattungsanspruch -
*/
// @Api(Description="Noch an die Finanzkasse zu entrichten - Abschlusszahlung / Erstattungsanspruch -")
class ZahlErstatt2021 implements IConvertible
{
    /**
    * Noch an die Finanzkasse zu entrichten - Abschlusszahlung / Erstattungsanspruch (bei Erstattungsanspruch - bitte dem Betrag ein Minuszeichen voranstellen)
    */
    // @ApiMember(Description="Noch an die Finanzkasse zu entrichten - Abschlusszahlung / Erstattungsanspruch (bei Erstattungsanspruch - bitte dem Betrag ein Minuszeichen voranstellen)", IsRequired=true, Name="E3011401")
    // @Validate(Validator="NotNull")
    GeldBetragMitCent12DETyp? e3011401;

    ZahlErstatt2021({this.e3011401});
    ZahlErstatt2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3011401 = JsonConverters.fromJson(json['e3011401'],'GeldBetragMitCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3011401': JsonConverters.toJson(e3011401,'GeldBetragMitCent12DETyp',context!)
    };

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

/**
* Berechnung der zu entrichtenden Umsatzsteuer.
*/
// @Api(Description="Berechnung der zu entrichtenden Umsatzsteuer.")
class BerechUSt2021 implements IConvertible
{
    /**
    * Umsatzsteuer auf steuerpflichtige Lieferungen, sonstige Leistungen und unentgeltliche Wertabgaben (aus Zeile 60)
    */
    // @ApiMember(Description="Umsatzsteuer auf steuerpflichtige Lieferungen, sonstige Leistungen und unentgeltliche Wertabgaben (aus Zeile 60)", Name="E3009201")
    GeldBetragMitCent12DETyp? e3009201;

    /**
    * Umsatzsteuer auf innergemeinschaftliche Erwerbe (aus Zeile 86)
    */
    // @ApiMember(Description="Umsatzsteuer auf innergemeinschaftliche Erwerbe (aus Zeile 86)", Name="E3009401")
    GeldBetragMitCent12DETyp? e3009401;

    /**
    * Umsatzsteuer, die vom Auslagerer oder Lagerhalter geschuldet wird (§ 13a Absatz 1 Nummer 6 UStG) (aus Zeile 90)
    */
    // @ApiMember(Description="Umsatzsteuer, die vom Auslagerer oder Lagerhalter geschuldet wird (§ 13a Absatz 1 Nummer 6 UStG) (aus Zeile 90)", Name="E3009602")
    GeldBetragMitCent12DETyp? e3009602;

    /**
    * Umsatzsteuer, die vom letzten Abnehmer im innergemeinschaftlichen Dreiecksgeschäft geschuldet wird (§ 25b Absatz 2 UStG) (aus Zeile 97)
    */
    // @ApiMember(Description="Umsatzsteuer, die vom letzten Abnehmer im innergemeinschaftlichen Dreiecksgeschäft geschuldet wird (§ 25b Absatz 2 UStG) (aus Zeile 97)", Name="E3009501")
    GeldBetragMitCent12DETyp? e3009501;

    /**
    * Umsatzsteuer, die vom Leistungsempfänger nach § 13b UStG geschuldet wird (aus Zeile 103)
    */
    // @ApiMember(Description="Umsatzsteuer, die vom Leistungsempfänger nach § 13b UStG geschuldet wird (aus Zeile 103)", Name="E3009502")
    GeldBetragMitCent12DETyp? e3009502;

    /**
    * Zwischensumme
    */
    // @ApiMember(Description="Zwischensumme", Name="E3009801")
    GeldBetragMitCent12DETyp? e3009801;

    /**
    * Abziehbare Vorsteuerbeträge (aus Zeile 131)
    */
    // @ApiMember(Description="Abziehbare Vorsteuerbeträge (aus Zeile 131)", Name="E3009901")
    GeldBetragMitCent12DETyp? e3009901;

    /**
    * Vorsteuerbeträge, die auf Grund des § 15a UStG nachträglich abziehbar sind (aus Zeile 150)
    */
    // @ApiMember(Description="Vorsteuerbeträge, die auf Grund des § 15a UStG nachträglich abziehbar sind (aus Zeile 150)", Name="E3010001")
    PositiverGeldBetragMitCent12DETyp? e3010001;

    /**
    * Verbleibender Betrag
    */
    // @ApiMember(Description="Verbleibender Betrag", Name="E3010201")
    GeldBetragMitCent12DETyp? e3010201;

    /**
    * Vorsteuerbeträge, die auf Grund des § 15a UStG zurückzuzahlen sind (aus Zeile 150)
    */
    // @ApiMember(Description="Vorsteuerbeträge, die auf Grund des § 15a UStG zurückzuzahlen sind (aus Zeile 150)", Name="E3009701")
    PositiverGeldBetragMitCent12DETyp? e3009701;

    /**
    * In Rechnungen unrichtig oder unberechtigt ausgewiesene Steuerbeträge (§ 14c UStG) sowie Steuerbeträge, die nach § 6a Absatz 4 Satz 2 UStG geschuldet werden
    */
    // @ApiMember(Description="In Rechnungen unrichtig oder unberechtigt ausgewiesene Steuerbeträge (§ 14c UStG) sowie Steuerbeträge, die nach § 6a Absatz 4 Satz 2 UStG geschuldet werden", Name="E3010301")
    GeldBetragMitCent12DETyp? e3010301;

    /**
    * Steuerbeträge, die nach § 17 Absatz 1 Satz 7 UStG geschuldet werden
    */
    // @ApiMember(Description="Steuerbeträge, die nach § 17 Absatz 1 Satz 7 UStG geschuldet werden", Name="E3010401")
    GeldBetragMitCent12DETyp? e3010401;

    /**
    * Steuer- und Vorsteuerbeträge, die auf frühere Besteuerungszeiträume entfallen (nur für Kleinunternehmer, die § 19 Absatz 1 UStG anwenden)
    */
    // @ApiMember(Description="Steuer- und Vorsteuerbeträge, die auf frühere Besteuerungszeiträume entfallen (nur für Kleinunternehmer, die § 19 Absatz 1 UStG anwenden)", Name="E3010501")
    GeldBetragMitCent12DETyp? e3010501;

    /**
    * Umsatzsteuer / Überschuss (bei Überschuss - bitte dem Betrag ein Minuszeichen voranstellen)
    */
    // @ApiMember(Description="Umsatzsteuer / Überschuss (bei Überschuss - bitte dem Betrag ein Minuszeichen voranstellen)", Name="E3010601")
    GeldBetragMitCent12DETyp? e3010601;

    /**
    * Anrechenbare Beträge (aus Zeile 23 der Anlage UN)
    */
    // @ApiMember(Description="Anrechenbare Beträge (aus Zeile 23 der Anlage UN)", Name="E3010602")
    GeldBetragMitCent12DETyp? e3010602;

    /**
    * Verbleibende Umsatzsteuer / Verbleibender Überschuss
    */
    // @ApiMember(Description="Verbleibende Umsatzsteuer / Verbleibender Überschuss", Name="VerblUSt")
    VerblUSt2021? verblUSt;

    /**
    * Noch an die Finanzkasse zu entrichten - Abschlusszahlung / Erstattungsanspruch -
    */
    // @ApiMember(Description="Noch an die Finanzkasse zu entrichten - Abschlusszahlung / Erstattungsanspruch -", Name="ZahlErstatt")
    ZahlErstatt2021? zahlErstatt;

    BerechUSt2021({this.e3009201,this.e3009401,this.e3009602,this.e3009501,this.e3009502,this.e3009801,this.e3009901,this.e3010001,this.e3010201,this.e3009701,this.e3010301,this.e3010401,this.e3010501,this.e3010601,this.e3010602,this.verblUSt,this.zahlErstatt});
    BerechUSt2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3009201 = JsonConverters.fromJson(json['e3009201'],'GeldBetragMitCent12DETyp',context!);
        e3009401 = JsonConverters.fromJson(json['e3009401'],'GeldBetragMitCent12DETyp',context!);
        e3009602 = JsonConverters.fromJson(json['e3009602'],'GeldBetragMitCent12DETyp',context!);
        e3009501 = JsonConverters.fromJson(json['e3009501'],'GeldBetragMitCent12DETyp',context!);
        e3009502 = JsonConverters.fromJson(json['e3009502'],'GeldBetragMitCent12DETyp',context!);
        e3009801 = JsonConverters.fromJson(json['e3009801'],'GeldBetragMitCent12DETyp',context!);
        e3009901 = JsonConverters.fromJson(json['e3009901'],'GeldBetragMitCent12DETyp',context!);
        e3010001 = JsonConverters.fromJson(json['e3010001'],'PositiverGeldBetragMitCent12DETyp',context!);
        e3010201 = JsonConverters.fromJson(json['e3010201'],'GeldBetragMitCent12DETyp',context!);
        e3009701 = JsonConverters.fromJson(json['e3009701'],'PositiverGeldBetragMitCent12DETyp',context!);
        e3010301 = JsonConverters.fromJson(json['e3010301'],'GeldBetragMitCent12DETyp',context!);
        e3010401 = JsonConverters.fromJson(json['e3010401'],'GeldBetragMitCent12DETyp',context!);
        e3010501 = JsonConverters.fromJson(json['e3010501'],'GeldBetragMitCent12DETyp',context!);
        e3010601 = JsonConverters.fromJson(json['e3010601'],'GeldBetragMitCent12DETyp',context!);
        e3010602 = JsonConverters.fromJson(json['e3010602'],'GeldBetragMitCent12DETyp',context!);
        verblUSt = JsonConverters.fromJson(json['verblUSt'],'VerblUSt2021',context!);
        zahlErstatt = JsonConverters.fromJson(json['zahlErstatt'],'ZahlErstatt2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3009201': JsonConverters.toJson(e3009201,'GeldBetragMitCent12DETyp',context!),
        'e3009401': JsonConverters.toJson(e3009401,'GeldBetragMitCent12DETyp',context!),
        'e3009602': JsonConverters.toJson(e3009602,'GeldBetragMitCent12DETyp',context!),
        'e3009501': JsonConverters.toJson(e3009501,'GeldBetragMitCent12DETyp',context!),
        'e3009502': JsonConverters.toJson(e3009502,'GeldBetragMitCent12DETyp',context!),
        'e3009801': JsonConverters.toJson(e3009801,'GeldBetragMitCent12DETyp',context!),
        'e3009901': JsonConverters.toJson(e3009901,'GeldBetragMitCent12DETyp',context!),
        'e3010001': JsonConverters.toJson(e3010001,'PositiverGeldBetragMitCent12DETyp',context!),
        'e3010201': JsonConverters.toJson(e3010201,'GeldBetragMitCent12DETyp',context!),
        'e3009701': JsonConverters.toJson(e3009701,'PositiverGeldBetragMitCent12DETyp',context!),
        'e3010301': JsonConverters.toJson(e3010301,'GeldBetragMitCent12DETyp',context!),
        'e3010401': JsonConverters.toJson(e3010401,'GeldBetragMitCent12DETyp',context!),
        'e3010501': JsonConverters.toJson(e3010501,'GeldBetragMitCent12DETyp',context!),
        'e3010601': JsonConverters.toJson(e3010601,'GeldBetragMitCent12DETyp',context!),
        'e3010602': JsonConverters.toJson(e3010602,'GeldBetragMitCent12DETyp',context!),
        'verblUSt': JsonConverters.toJson(verblUSt,'VerblUSt2021',context!),
        'zahlErstatt': JsonConverters.toJson(zahlErstatt,'ZahlErstatt2021',context!)
    };

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

/**
* Bankverbindung.
*/
// @Api(Description="Bankverbindung.")
class Bank2021 implements IConvertible
{
    /**
    * IBAN
    */
    // @ApiMember(Description="IBAN", Name="E3201001")
    StringTyp? e3201001;

    /**
    * BIC (nur bei Bankverbindungen außerhalb des Europäischen Wirtschaftsraums)
    */
    // @ApiMember(Description="BIC (nur bei Bankverbindungen außerhalb des Europäischen Wirtschaftsraums)", Name="E3201002")
    StringTyp? e3201002;

    /**
    * Name des Geldinstituts (Zweigstelle) und Ort
    */
    // @ApiMember(Description="Name des Geldinstituts (Zweigstelle) und Ort", Name="E3200901")
    StringTyp? e3200901;

    /**
    * Kontonummer (nur bei Bankverbindungen außerhalb des Europäischen Zahlungsverkehrsraums - SEPA)
    */
    // @ApiMember(Description="Kontonummer (nur bei Bankverbindungen außerhalb des Europäischen Zahlungsverkehrsraums - SEPA)", Name="E3200902")
    StringTyp? e3200902;

    /**
    * Kontoinhaber ist der Unternehmer laut den allgemeinen Angaben auf Vordruck USt2A
    */
    // @ApiMember(Description="Kontoinhaber ist der Unternehmer laut den allgemeinen Angaben auf Vordruck USt2A", Name="E3200904")
    BoolXTyp? e3200904;

    /**
    * Name des Kontoinhabers
    */
    // @ApiMember(Description="Name des Kontoinhabers", Name="E3200905")
    StringTyp? e3200905;

    Bank2021({this.e3201001,this.e3201002,this.e3200901,this.e3200902,this.e3200904,this.e3200905});
    Bank2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3201001 = JsonConverters.fromJson(json['e3201001'],'StringTyp',context!);
        e3201002 = JsonConverters.fromJson(json['e3201002'],'StringTyp',context!);
        e3200901 = JsonConverters.fromJson(json['e3200901'],'StringTyp',context!);
        e3200902 = JsonConverters.fromJson(json['e3200902'],'StringTyp',context!);
        e3200904 = JsonConverters.fromJson(json['e3200904'],'BoolXTyp',context!);
        e3200905 = JsonConverters.fromJson(json['e3200905'],'StringTyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3201001': JsonConverters.toJson(e3201001,'StringTyp',context!),
        'e3201002': JsonConverters.toJson(e3201002,'StringTyp',context!),
        'e3200901': JsonConverters.toJson(e3200901,'StringTyp',context!),
        'e3200902': JsonConverters.toJson(e3200902,'StringTyp',context!),
        'e3200904': JsonConverters.toJson(e3200904,'BoolXTyp',context!),
        'e3200905': JsonConverters.toJson(e3200905,'StringTyp',context!)
    };

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

/**
* Angaben zur Unterschrift.
*/
// @Api(Description="Angaben zur Unterschrift.")
class AngUnterschr2021 implements IConvertible
{
    /**
    * Die Umsatzsteuererklärung wurde vom Bevollmächtigten elektronisch authentifiziert übermittelt. Die Voraussetzungen des § 150 Absatz 3 AO liegen vor.
    */
    // @ApiMember(Description="Die Umsatzsteuererklärung wurde vom Bevollmächtigten elektronisch authentifiziert übermittelt. Die Voraussetzungen des § 150 Absatz 3 AO liegen vor.", Name="E3201701")
    BoolXTyp? e3201701;

    AngUnterschr2021({this.e3201701});
    AngUnterschr2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3201701 = JsonConverters.fromJson(json['e3201701'],'BoolXTyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3201701': JsonConverters.toJson(e3201701,'BoolXTyp',context!)
    };

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

/**
* Bevollmächtigter/Empfangsbevollmächtigter.
*/
// @Api(Description="Bevollmächtigter/Empfangsbevollmächtigter.")
class Vollm2021 implements IConvertible
{
    /**
    * Zur Wahrnehmung der steuerlichen Pflichten und Rechte als Bevollmächtigter (§ 80 AO) ist bestellt:
    */
    // @ApiMember(Description="Zur Wahrnehmung der steuerlichen Pflichten und Rechte als Bevollmächtigter (§ 80 AO) ist bestellt:", Name="E3201301")
    BoolXTyp? e3201301;

    /**
    * Zum Empfang von Schriftstücken als Empfangsbevollmächtigter (§ 123 AO) ist bestellt:
    */
    // @ApiMember(Description="Zum Empfang von Schriftstücken als Empfangsbevollmächtigter (§ 123 AO) ist bestellt:", Name="E3201401")
    BoolXTyp? e3201401;

    /**
    * Name
    */
    // @ApiMember(Description="Name", Name="E3201501")
    StringTyp? e3201501;

    /**
    * Straße
    */
    // @ApiMember(Description="Straße", Name="E3201601")
    StringTyp? e3201601;

    /**
    * Hausnummer
    */
    // @ApiMember(Description="Hausnummer", Name="E3201302")
    StringTyp? e3201302;

    /**
    * Hausnummerzusatz
    */
    // @ApiMember(Description="Hausnummerzusatz", Name="E3201303")
    StringTyp? e3201303;

    /**
    * Adressergänzung
    */
    // @ApiMember(Description="Adressergänzung", Name="E3201304")
    StringTyp? e3201304;

    /**
    * Postleitzahl, Ort
    */
    // @ApiMember(Description="Postleitzahl, Ort", Name="E3201402")
    StringTyp? e3201402;

    /**
    * Postleitzahl zu Postfach
    */
    // @ApiMember(Description="Postleitzahl zu Postfach", Name="E3201503")
    StringTyp? e3201503;

    /**
    * Postfach
    */
    // @ApiMember(Description="Postfach", Name="E3201504")
    StringTyp? e3201504;

    /**
    * Telefon
    */
    // @ApiMember(Description="Telefon", Name="E3201602")
    StringTyp? e3201602;

    /**
    * E-Mail-Adresse
    */
    // @ApiMember(Description="E-Mail-Adresse", Name="E3201502")
    StringTyp? e3201502;

    /**
    * Angaben zur Unterschrift
    */
    // @ApiMember(Description="Angaben zur Unterschrift", Name="AngUnterschr")
    AngUnterschr2021? angUnterschr;

    Vollm2021({this.e3201301,this.e3201401,this.e3201501,this.e3201601,this.e3201302,this.e3201303,this.e3201304,this.e3201402,this.e3201503,this.e3201504,this.e3201602,this.e3201502,this.angUnterschr});
    Vollm2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3201301 = JsonConverters.fromJson(json['e3201301'],'BoolXTyp',context!);
        e3201401 = JsonConverters.fromJson(json['e3201401'],'BoolXTyp',context!);
        e3201501 = JsonConverters.fromJson(json['e3201501'],'StringTyp',context!);
        e3201601 = JsonConverters.fromJson(json['e3201601'],'StringTyp',context!);
        e3201302 = JsonConverters.fromJson(json['e3201302'],'StringTyp',context!);
        e3201303 = JsonConverters.fromJson(json['e3201303'],'StringTyp',context!);
        e3201304 = JsonConverters.fromJson(json['e3201304'],'StringTyp',context!);
        e3201402 = JsonConverters.fromJson(json['e3201402'],'StringTyp',context!);
        e3201503 = JsonConverters.fromJson(json['e3201503'],'StringTyp',context!);
        e3201504 = JsonConverters.fromJson(json['e3201504'],'StringTyp',context!);
        e3201602 = JsonConverters.fromJson(json['e3201602'],'StringTyp',context!);
        e3201502 = JsonConverters.fromJson(json['e3201502'],'StringTyp',context!);
        angUnterschr = JsonConverters.fromJson(json['angUnterschr'],'AngUnterschr2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3201301': JsonConverters.toJson(e3201301,'BoolXTyp',context!),
        'e3201401': JsonConverters.toJson(e3201401,'BoolXTyp',context!),
        'e3201501': JsonConverters.toJson(e3201501,'StringTyp',context!),
        'e3201601': JsonConverters.toJson(e3201601,'StringTyp',context!),
        'e3201302': JsonConverters.toJson(e3201302,'StringTyp',context!),
        'e3201303': JsonConverters.toJson(e3201303,'StringTyp',context!),
        'e3201304': JsonConverters.toJson(e3201304,'StringTyp',context!),
        'e3201402': JsonConverters.toJson(e3201402,'StringTyp',context!),
        'e3201503': JsonConverters.toJson(e3201503,'StringTyp',context!),
        'e3201504': JsonConverters.toJson(e3201504,'StringTyp',context!),
        'e3201602': JsonConverters.toJson(e3201602,'StringTyp',context!),
        'e3201502': JsonConverters.toJson(e3201502,'StringTyp',context!),
        'angUnterschr': JsonConverters.toJson(angUnterschr,'AngUnterschr2021',context!)
    };

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

/**
* Allgemeine Angaben.
*/
// @Api(Description="Allgemeine Angaben.")
class UnAllg2021 implements IConvertible
{
    /**
    * Bankverbindung
    */
    // @ApiMember(Description="Bankverbindung", Name="Bank")
    Bank2021? bank;

    /**
    * Bevollmächtigter/Empfangsbevollmächtigter
    */
    // @ApiMember(Description="Bevollmächtigter/Empfangsbevollmächtigter", Name="Vollm")
    Vollm2021? vollm;

    UnAllg2021({this.bank,this.vollm});
    UnAllg2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        bank = JsonConverters.fromJson(json['bank'],'Bank2021',context!);
        vollm = JsonConverters.fromJson(json['vollm'],'Vollm2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'bank': JsonConverters.toJson(bank,'Bank2021',context!),
        'vollm': JsonConverters.toJson(vollm,'Vollm2021',context!)
    };

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

/**
* Boolescher Datentyp, welcher als '1' (Ja) oder '2' (Nein) im Jahressteuererklärung angeschrieben wird.
*/
// @Api(Description="Boolescher Datentyp, welcher als '1' (Ja) oder '2' (Nein) im Jahressteuererklärung angeschrieben wird.")
class Bool12Typ extends CustomTypBase implements IConvertible
{
    /**
    * Wenn der Wert true ist, '1' wird im Jahressteuererklärung angeschrieben; ansonsten '2'.
    */
    // @ApiMember(Description="Wenn der Wert true ist, '1' wird im Jahressteuererklärung angeschrieben; ansonsten '2'.", IsRequired=true, Name="Wert")
    bool? wert;

    /**
    * Identifizierung der Zeile / Typ im Fremdprogramm.
    */
    // @ApiMember(Description="Identifizierung der Zeile / Typ im Fremdprogramm.", Name="Alias")
    String? alias;

    Bool12Typ({this.wert,this.alias});
    Bool12Typ.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        wert = json['wert'];
        alias = json['alias'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'wert': wert,
        'alias': alias
    });

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

/**
* Vorsteuer-Vergütungsverfahren beim Bundeszentralamt für Steuern.
*/
// @Api(Description="Vorsteuer-Vergütungsverfahren beim Bundeszentralamt für Steuern.")
class VoStVerguetBZSt2021 implements IConvertible
{
    /**
    * Ist für das Kalenderjahr die Vergütung von Vorsteuern in einem besonderen Verfahren (§ 18 Absatz 9 UStG, §§ 59 bis 61a UStDV) beantragt worden?
    */
    // @ApiMember(Description="Ist für das Kalenderjahr die Vergütung von Vorsteuern in einem besonderen Verfahren (§ 18 Absatz 9 UStG, §§ 59 bis 61a UStDV) beantragt worden?", Name="E3201101")
    Bool12Typ? e3201101;

    VoStVerguetBZSt2021({this.e3201101});
    VoStVerguetBZSt2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3201101 = JsonConverters.fromJson(json['e3201101'],'Bool12Typ',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3201101': JsonConverters.toJson(e3201101,'Bool12Typ',context!)
    };

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

/**
* C. Anrechenbare Beträge.
*/
// @Api(Description="C. Anrechenbare Beträge.")
class AnrechBetr2021 implements IConvertible
{
    /**
    * Bei der Beförderungseinzelbesteuerung entrichtete Umsatzsteuer (§ 18 Absatz 5b Satz 2 UStG) - Belege bitte gesondert übermitteln -
    */
    // @ApiMember(Description="Bei der Beförderungseinzelbesteuerung entrichtete Umsatzsteuer (§ 18 Absatz 5b Satz 2 UStG) - Belege bitte gesondert übermitteln -", Name="E3201902")
    GeldBetragMitCent12DETyp? e3201902;

    /**
    * Entrichtete Sicherheitsleistungen (§ 18 Absatz 12 Satz 5 UStG) - Belege bitte gesondert übermitteln -
    */
    // @ApiMember(Description="Entrichtete Sicherheitsleistungen (§ 18 Absatz 12 Satz 5 UStG) - Belege bitte gesondert übermitteln -", Name="E3202002")
    GeldBetragMitCent12DETyp? e3202002;

    /**
    * Summe (zu übertragen in Zeile 166 der Steuererklärung)
    */
    // @ApiMember(Description="Summe (zu übertragen in Zeile 166 der Steuererklärung)", Name="E3202102")
    GeldBetragMitCent12DETyp? e3202102;

    AnrechBetr2021({this.e3201902,this.e3202002,this.e3202102});
    AnrechBetr2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3201902 = JsonConverters.fromJson(json['e3201902'],'GeldBetragMitCent12DETyp',context!);
        e3202002 = JsonConverters.fromJson(json['e3202002'],'GeldBetragMitCent12DETyp',context!);
        e3202102 = JsonConverters.fromJson(json['e3202102'],'GeldBetragMitCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3201902': JsonConverters.toJson(e3201902,'GeldBetragMitCent12DETyp',context!),
        'e3202002': JsonConverters.toJson(e3202002,'GeldBetragMitCent12DETyp',context!),
        'e3202102': JsonConverters.toJson(e3202102,'GeldBetragMitCent12DETyp',context!)
    };

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

/**
* In den steuerpflichtigen Umsätzen enthaltene Umsätze.
*/
// @Api(Description="In den steuerpflichtigen Umsätzen enthaltene Umsätze.")
class InstpflUmsEnt2021 implements IConvertible
{
    /**
    * Beförderungs- und Versendungslieferungen / Innergemeinschaftliche Fernverkäufe aus dem übrigen Gemeinschaftsgebiet (§ 3c UStG) (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Beförderungs- und Versendungslieferungen / Innergemeinschaftliche Fernverkäufe aus dem übrigen Gemeinschaftsgebiet (§ 3c UStG) (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3201901")
    GeldBetragOhneCent12DETyp? e3201901;

    InstpflUmsEnt2021({this.e3201901});
    InstpflUmsEnt2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3201901 = JsonConverters.fromJson(json['e3201901'],'GeldBetragOhneCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3201901': JsonConverters.toJson(e3201901,'GeldBetragOhneCent12DETyp',context!)
    };

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

/**
* Datum-Uhrzeit-Typ. Format: TT.MM.
*/
// @Api(Description="Datum-Uhrzeit-Typ. Format: TT.MM.")
class YearlessDateTimeTyp extends CustomTypBase implements IConvertible
{
    /**
    * Wert des Datentyps.
    */
    // @ApiMember(Description="Wert des Datentyps.", IsRequired=true, Name="Wert")
    DateTime? wert;

    /**
    * Identifizierung der Zeile / Typ im Fremdprogramm.
    */
    // @ApiMember(Description="Identifizierung der Zeile / Typ im Fremdprogramm.", Name="Alias")
    String? alias;

    YearlessDateTimeTyp({this.wert,this.alias});
    YearlessDateTimeTyp.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        wert = JsonConverters.fromJson(json['wert'],'DateTime',context!);
        alias = json['alias'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'wert': JsonConverters.toJson(wert,'DateTime',context!),
        'alias': alias
    });

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

/**
* Sonstigen Leistungen auf dem Gebiet der Telekommunikation, Rundfunk- und Fernsehdienstleistungen und die auf elektronischem Weg erbrachten sonstigen Leistungen (§ 3a Absatz 5 UStG).
*/
// @Api(Description="Sonstigen Leistungen auf dem Gebiet der Telekommunikation, Rundfunk- und Fernsehdienstleistungen und die auf elektronischem Weg erbrachten sonstigen Leistungen (§ 3a Absatz 5 UStG).")
class SonstLstgElekr2021 implements IConvertible
{
    /**
    * Sonstige Leistungen auf dem Gebiet der Telekommunikation, Rundfunk- und Fernsehdienstleistungen aud auf die elektronischem Weg erbrachten sonstigen Leistungen (§ 3a Abs. 5 UStG), die bei
    */
    // @ApiMember(Description="Sonstige Leistungen auf dem Gebiet der Telekommunikation, Rundfunk- und Fernsehdienstleistungen aud auf die elektronischem Weg erbrachten sonstigen Leistungen (§ 3a Abs. 5 UStG), die bei", Name="E3202901")
    StringTyp? e3202901;

    /**
    * für Besteuerungszeitraum 2021 (vom)
    */
    // @ApiMember(Description="für Besteuerungszeitraum 2021 (vom)", Name="E3202902")
    YearlessDateTimeTyp? e3202902;

    /**
    * bis zum Besteuerungszeitraum 2021 (bis)
    */
    // @ApiMember(Description="bis zum Besteuerungszeitraum 2021 (bis)", Name="E3202903")
    YearlessDateTimeTyp? e3202903;

    /**
    * unter der Registriernummer:
    */
    // @ApiMember(Description="unter der Registriernummer:", Name="E3202904")
    StringTyp? e3202904;

    /**
    * Betrag (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)
    */
    // @ApiMember(Description="Betrag (Bemessungsgrundlage ohne Umsatzsteuer, volle EUR)", Name="E3202905")
    GeldBetragOhneCent12DETyp? e3202905;

    SonstLstgElekr2021({this.e3202901,this.e3202902,this.e3202903,this.e3202904,this.e3202905});
    SonstLstgElekr2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3202901 = JsonConverters.fromJson(json['e3202901'],'StringTyp',context!);
        e3202902 = JsonConverters.fromJson(json['e3202902'],'YearlessDateTimeTyp',context!);
        e3202903 = JsonConverters.fromJson(json['e3202903'],'YearlessDateTimeTyp',context!);
        e3202904 = JsonConverters.fromJson(json['e3202904'],'StringTyp',context!);
        e3202905 = JsonConverters.fromJson(json['e3202905'],'GeldBetragOhneCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3202901': JsonConverters.toJson(e3202901,'StringTyp',context!),
        'e3202902': JsonConverters.toJson(e3202902,'YearlessDateTimeTyp',context!),
        'e3202903': JsonConverters.toJson(e3202903,'YearlessDateTimeTyp',context!),
        'e3202904': JsonConverters.toJson(e3202904,'StringTyp',context!),
        'e3202905': JsonConverters.toJson(e3202905,'GeldBetragOhneCent12DETyp',context!)
    };

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

/**
* In den steuerpflichtigen Umsätzen enthaltene Umsätze.
*/
// @Api(Description="In den steuerpflichtigen Umsätzen enthaltene Umsätze.")
class UnInstpflUmsNichtEnt2021 implements IConvertible
{
    /**
    * Sonstigen Leistungen auf dem Gebiet der Telekommunikation, Rundfunk- und Fernsehdienstleistungen und die auf elektronischem Weg erbrachten sonstigen Leistungen (§ 3a Absatz 5 UStG)
    */
    // @ApiMember(Description="Sonstigen Leistungen auf dem Gebiet der Telekommunikation, Rundfunk- und Fernsehdienstleistungen und die auf elektronischem Weg erbrachten sonstigen Leistungen (§ 3a Absatz 5 UStG)", Name="SonstLstgElekr")
    SonstLstgElekr2021? sonstLstgElekr;

    UnInstpflUmsNichtEnt2021({this.sonstLstgElekr});
    UnInstpflUmsNichtEnt2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        sonstLstgElekr = JsonConverters.fromJson(json['sonstLstgElekr'],'SonstLstgElekr2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'sonstLstgElekr': JsonConverters.toJson(sonstLstgElekr,'SonstLstgElekr2021',context!)
    };

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

/**
* Ergänzende Angaben zu Umsätzen.
*/
// @Api(Description="Ergänzende Angaben zu Umsätzen.")
class UnErgAngUms2021 implements IConvertible
{
    /**
    * In den steuerpflichtigen Umsätzen enthaltene Umsätze
    */
    // @ApiMember(Description="In den steuerpflichtigen Umsätzen enthaltene Umsätze", Name="InstpflUmsEnt")
    InstpflUmsEnt2021? instpflUmsEnt;

    /**
    * In den steuerpflichtigen Umsätzen enthaltene Umsätze
    */
    // @ApiMember(Description="In den steuerpflichtigen Umsätzen enthaltene Umsätze", Name="InstpflUmsNichtEnt")
    UnInstpflUmsNichtEnt2021? instpflUmsNichtEnt;

    UnErgAngUms2021({this.instpflUmsEnt,this.instpflUmsNichtEnt});
    UnErgAngUms2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        instpflUmsEnt = JsonConverters.fromJson(json['instpflUmsEnt'],'InstpflUmsEnt2021',context!);
        instpflUmsNichtEnt = JsonConverters.fromJson(json['instpflUmsNichtEnt'],'UnInstpflUmsNichtEnt2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'instpflUmsEnt': JsonConverters.toJson(instpflUmsEnt,'InstpflUmsEnt2021',context!),
        'instpflUmsNichtEnt': JsonConverters.toJson(instpflUmsNichtEnt,'UnInstpflUmsNichtEnt2021',context!)
    };

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

/**
* Anlage UN zur Umsatzsteuererklärung für im Ausland ansässige Unternehmer.
*/
// @Api(Description="Anlage UN zur Umsatzsteuererklärung für im Ausland ansässige Unternehmer.")
class UN2021 implements IConvertible
{
    /**
    * A. Allgemeine Angaben
    */
    // @ApiMember(Description="A. Allgemeine Angaben", Name="Allg")
    UnAllg2021? allg;

    /**
    * B. Vorsteuer-Vergütungsverfahren beim Bundeszentralamt für Steuern
    */
    // @ApiMember(Description="B. Vorsteuer-Vergütungsverfahren beim Bundeszentralamt für Steuern", Name="VoStVerguetBZSt")
    VoStVerguetBZSt2021? voStVerguetBZSt;

    /**
    * C. Anrechenbare Beträge
    */
    // @ApiMember(Description="C. Anrechenbare Beträge", Name="AnrechBetr")
    AnrechBetr2021? anrechBetr;

    /**
    * D. Ergänzende Angaben zu Umsätzen
    */
    // @ApiMember(Description="D. Ergänzende Angaben zu Umsätzen", Name="ErgAngUms")
    UnErgAngUms2021? ergAngUms;

    UN2021({this.allg,this.voStVerguetBZSt,this.anrechBetr,this.ergAngUms});
    UN2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        allg = JsonConverters.fromJson(json['allg'],'UnAllg2021',context!);
        voStVerguetBZSt = JsonConverters.fromJson(json['voStVerguetBZSt'],'VoStVerguetBZSt2021',context!);
        anrechBetr = JsonConverters.fromJson(json['anrechBetr'],'AnrechBetr2021',context!);
        ergAngUms = JsonConverters.fromJson(json['ergAngUms'],'UnErgAngUms2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'allg': JsonConverters.toJson(allg,'UnAllg2021',context!),
        'voStVerguetBZSt': JsonConverters.toJson(voStVerguetBZSt,'VoStVerguetBZSt2021',context!),
        'anrechBetr': JsonConverters.toJson(anrechBetr,'AnrechBetr2021',context!),
        'ergAngUms': JsonConverters.toJson(ergAngUms,'UnErgAngUms2021',context!)
    };

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

/**
* Einzelner vertretene Unternehmer
*/
// @Api(Description="Einzelner vertretene Unternehmer")
class Einz2021 implements IConvertible
{
    /**
    * Name des vertretenen Unternehmers
    */
    // @ApiMember(Description="Name des vertretenen Unternehmers", Name="E3300201")
    StringTyp? e3300201;

    /**
    * Anschrift des vertretenen Unternehmers
    */
    // @ApiMember(Description="Anschrift des vertretenen Unternehmers", Name="E3300202")
    StringTyp? e3300202;

    /**
    * Umsatzsteuer-Identifikationsnummer des vertretenen Unternehmers
    */
    // @ApiMember(Description="Umsatzsteuer-Identifikationsnummer des vertretenen Unternehmers", Name="E3300203")
    StringTyp? e3300203;

    /**
    * Summe der jeweiligen Bemessungsgrundlagen in EUR
    */
    // @ApiMember(Description="Summe der jeweiligen Bemessungsgrundlagen in EUR", Name="E3300204")
    GeldBetragOhneCent12DETyp? e3300204;

    Einz2021({this.e3300201,this.e3300202,this.e3300203,this.e3300204});
    Einz2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3300201 = JsonConverters.fromJson(json['e3300201'],'StringTyp',context!);
        e3300202 = JsonConverters.fromJson(json['e3300202'],'StringTyp',context!);
        e3300203 = JsonConverters.fromJson(json['e3300203'],'StringTyp',context!);
        e3300204 = JsonConverters.fromJson(json['e3300204'],'GeldBetragOhneCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3300201': JsonConverters.toJson(e3300201,'StringTyp',context!),
        'e3300202': JsonConverters.toJson(e3300202,'StringTyp',context!),
        'e3300203': JsonConverters.toJson(e3300203,'StringTyp',context!),
        'e3300204': JsonConverters.toJson(e3300204,'GeldBetragOhneCent12DETyp',context!)
    };

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

/**
* Summe
*/
// @Api(Description="Summe")
class AufstAllerVertrUntSum2021 implements IConvertible
{
    /**
    *  Summe aller Bemessungsgrundlagen in EUR
    */
    // @ApiMember(Description=" Summe aller Bemessungsgrundlagen in EUR", Name="E3300301")
    GeldBetragOhneCent12DETyp? e3300301;

    AufstAllerVertrUntSum2021({this.e3300301});
    AufstAllerVertrUntSum2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        e3300301 = JsonConverters.fromJson(json['e3300301'],'GeldBetragOhneCent12DETyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'e3300301': JsonConverters.toJson(e3300301,'GeldBetragOhneCent12DETyp',context!)
    };

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

/**
* Aufstellung aller vertretenen Unternehmer
*/
// @Api(Description="Aufstellung aller vertretenen Unternehmer")
class AufstAllerVertrUnt2021 implements IConvertible
{
    /**
    * Die vertretenen Unternehmer
    */
    // @ApiMember(Description="Die vertretenen Unternehmer", Name="Einzs")
    List<Einz2021>? einzs;

    /**
    * Die Summe
    */
    // @ApiMember(Description="Die Summe", Name="Sum")
    AufstAllerVertrUntSum2021? sum;

    AufstAllerVertrUnt2021({this.einzs,this.sum});
    AufstAllerVertrUnt2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        einzs = JsonConverters.fromJson(json['einzs'],'List<Einz2021>',context!);
        sum = JsonConverters.fromJson(json['sum'],'AufstAllerVertrUntSum2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'einzs': JsonConverters.toJson(einzs,'List<Einz2021>',context!),
        'sum': JsonConverters.toJson(sum,'AufstAllerVertrUntSum2021',context!)
    };

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

/**
* Anlage FV zur Umsatzsteuererklärung 2021
*/
// @Api(Description="Anlage FV zur Umsatzsteuererklärung 2021")
class FV2021 implements IConvertible
{
    /**
    * Aufstellung aller vertretenen Unternehmer
    */
    // @ApiMember(Description="Aufstellung aller vertretenen Unternehmer", Name="AufstAllerVertrUnt")
    AufstAllerVertrUnt2021? aufstAllerVertrUnt;

    FV2021({this.aufstAllerVertrUnt});
    FV2021.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        aufstAllerVertrUnt = JsonConverters.fromJson(json['aufstAllerVertrUnt'],'AufstAllerVertrUnt2021',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'aufstAllerVertrUnt': JsonConverters.toJson(aufstAllerVertrUnt,'AufstAllerVertrUnt2021',context!)
    };

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

/**
* Stellt den Vorgang bei einer Veranlagung dar.
*/
enum VeranlagungVorgang
{
    NurVeranlagung,
    VeranlagungMitVorauszahlung,
}

/**
* Datentyp, welches den Vorgang bei einer Veranlagung darstellt.
*/
// @Api(Description="Datentyp, welches den Vorgang bei einer Veranlagung darstellt.")
class VeranlagungVorgangTyp extends CustomTypBase implements IConvertible
{
    /**
    * Wert des Datentyps.
    */
    // @ApiMember(Description="Wert des Datentyps.", IsRequired=true, Name="Wert")
    VeranlagungVorgang? wert;

    /**
    * Identifizierung der Zeile / Typ im Fremdprogramm.
    */
    // @ApiMember(Description="Identifizierung der Zeile / Typ im Fremdprogramm.", Name="Alias")
    String? alias;

    VeranlagungVorgangTyp({this.wert,this.alias});
    VeranlagungVorgangTyp.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        wert = JsonConverters.fromJson(json['wert'],'VeranlagungVorgang',context!);
        alias = json['alias'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'wert': JsonConverters.toJson(wert,'VeranlagungVorgang',context!),
        'alias': alias
    });

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

/**
* Stellt die Art der Ordnungsnummer dar.
*/
enum OrdNrArt
{
    S,
    O,
}

/**
* Datentyp, welches die ermittelten Ordnungsbegriff zu füllen darstellt.
*/
// @Api(Description="Datentyp, welches die ermittelten Ordnungsbegriff zu füllen darstellt.")
class OrdNrArtTyp extends CustomTypBase implements IConvertible
{
    /**
    * Wert des Datentyps.
    */
    // @ApiMember(Description="Wert des Datentyps.", IsRequired=true, Name="Wert")
    OrdNrArt? wert;

    /**
    * Identifizierung der Zeile / Typ im Fremdprogramm.
    */
    // @ApiMember(Description="Identifizierung der Zeile / Typ im Fremdprogramm.", Name="Alias")
    String? alias;

    OrdNrArtTyp({this.wert,this.alias});
    OrdNrArtTyp.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        wert = JsonConverters.fromJson(json['wert'],'OrdNrArt',context!);
        alias = json['alias'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'wert': JsonConverters.toJson(wert,'OrdNrArt',context!),
        'alias': alias
    });

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

/**
* Stellt die Informationen zur Bescheidrückübermittlung für die neue Struktur der Jahrresteuererklärung dar.
*/
// @Api(Description="Stellt die Informationen zur Bescheidrückübermittlung für die neue Struktur der Jahrresteuererklärung dar.")
class E50Rueckuebermittlung implements IConvertible
{
    /**
    * Wird die elektronische Bereitstellung der Bescheiddaten gewünscht?
    */
    // @ApiMember(Description="Wird die elektronische Bereitstellung der Bescheiddaten gewünscht?")
    Bool12Typ? bescheid;

    /**
    * Art der Benachrichtigung über vorliegende Bescheiddaten zur Abholung.
    */
    // @ApiMember(Description="Art der Benachrichtigung über vorliegende Bescheiddaten zur Abholung.")
    StringTyp? artRueckuebermittlung;

    /**
    * Schlüssel unter dem die Bescheiddaten verschlüsselt zur Abholung bereitgestellt werden sollen
    */
    // @ApiMember(Description="Schlüssel unter dem die Bescheiddaten verschlüsselt zur Abholung bereitgestellt werden sollen")
    StringTyp? schluesselRueckuebermittlung;

    /**
    * Benachrichtigungsadresse (in der Regel E-Mail-Adresse) für die Benachrichtigung über die elektronische Bereitstellung der Bescheiddaten.
    */
    // @ApiMember(Description="Benachrichtigungsadresse (in der Regel E-Mail-Adresse) für die Benachrichtigung über die elektronische Bereitstellung der Bescheiddaten.")
    StringTyp? adresseRueckuebermittlung;

    E50Rueckuebermittlung({this.bescheid,this.artRueckuebermittlung,this.schluesselRueckuebermittlung,this.adresseRueckuebermittlung});
    E50Rueckuebermittlung.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        bescheid = JsonConverters.fromJson(json['bescheid'],'Bool12Typ',context!);
        artRueckuebermittlung = JsonConverters.fromJson(json['artRueckuebermittlung'],'StringTyp',context!);
        schluesselRueckuebermittlung = JsonConverters.fromJson(json['schluesselRueckuebermittlung'],'StringTyp',context!);
        adresseRueckuebermittlung = JsonConverters.fromJson(json['adresseRueckuebermittlung'],'StringTyp',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'bescheid': JsonConverters.toJson(bescheid,'Bool12Typ',context!),
        'artRueckuebermittlung': JsonConverters.toJson(artRueckuebermittlung,'StringTyp',context!),
        'schluesselRueckuebermittlung': JsonConverters.toJson(schluesselRueckuebermittlung,'StringTyp',context!),
        'adresseRueckuebermittlung': JsonConverters.toJson(adresseRueckuebermittlung,'StringTyp',context!)
    };

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

/**
* Create XML content that represents an annual VAT return (Umsatzsteuerjahresserklärung) for 2021.
*/
// @Api(Description="Create XML content that represents an annual VAT return (Umsatzsteuerjahresserklärung) for 2021.")
abstract class CreateUmsatzsteuererklaerung2021XmlBase implements IPost
{
    /**
    * Berichtigte Erklärung
    */
    // @ApiMember(Description="Berichtigte Erklärung", Name="BerErkl")
    BerErkl2021? berErkl;

    /**
    * A. Allgemeine Angaben.
    */
    // @ApiMember(Description="A. Allgemeine Angaben.")
    Allg2021? allg;

    /**
    * Angaben zu den Mitwirkenden, die bei der Anfertigung dieser Steuererklärung einschließlich der Anlagen mitgewirkt haben.
    */
    // @ApiMember(Description="Angaben zu den Mitwirkenden, die bei der Anfertigung dieser Steuererklärung einschließlich der Anlagen mitgewirkt haben.")
    Mitwirk2021? mitwirk;

    /**
    * B. Angaben zur Besteuerung der Kleinunternehmer (§ 19 Absatz 1 UStG). Die Zeilen 33 und 34 sind nur auszufüllen, wenn der Umsatz $VZ-1$ (zuzüglich Steuer) nicht mehr als 22.000 € betragen hat und auf die Anwendung des § 19 Absatz 1 UStG nicht verzichtet worden ist.
    */
    // @ApiMember(Description="B. Angaben zur Besteuerung der Kleinunternehmer (§ 19 Absatz 1 UStG). Die Zeilen 33 und 34 sind nur auszufüllen, wenn der Umsatz $VZ-1$ (zuzüglich Steuer) nicht mehr als 22.000 € betragen hat und auf die Anwendung des § 19 Absatz 1 UStG nicht verzichtet worden ist.")
    Kleinuntern2021? kleinuntern;

    /**
    * C. Steuerpflichtige Lieferungen, sonstige Leistungen und unentgeltliche Wertabgaben.
    */
    // @ApiMember(Description="C. Steuerpflichtige Lieferungen, sonstige Leistungen und unentgeltliche Wertabgaben.")
    Umsaetze2021? umsaetze;

    /**
    * D. Steuerfreie Lieferungen, sonstige Leistungen und unentgeltliche Wertabgaben.
    */
    // @ApiMember(Description="D. Steuerfreie Lieferungen, sonstige Leistungen und unentgeltliche Wertabgaben.")
    UmsStfrei2021? umsStfrei;

    /**
    * E. Innergemeinschaftliche Erwerbe.
    */
    // @ApiMember(Description="E. Innergemeinschaftliche Erwerbe.")
    IgErw2021? igErw;

    /**
    * F. Steuerschuldner bei Auslagerung (§ 13a Absatz 1 Nummer 6 UStG).
    */
    // @ApiMember(Description="F. Steuerschuldner bei Auslagerung (§ 13a Absatz 1 Nummer 6 UStG).")
    Auslag13a2021? auslag13a;

    /**
    * G. Innergemeinschaftliche Dreiecksgeschäfte (§ 25b UStG).
    */
    // @ApiMember(Description="G. Innergemeinschaftliche Dreiecksgeschäfte (§ 25b UStG).")
    IgDrei2021? igDrei;

    /**
    * H. Leistungsempfänger als Steuerschuldner (§ 13b UStG).
    */
    // @ApiMember(Description="H. Leistungsempfänger als Steuerschuldner (§ 13b UStG).")
    Ums13b2021? ums13b;

    /**
    * I. Ergänzende Angaben zu Umsätzen.
    */
    // @ApiMember(Description="I. Ergänzende Angaben zu Umsätzen.")
    ErgAngUms2021? ergAngUms;

    /**
    * J. Abziehbare Vorsteuerbeträge
    */
    // @ApiMember(Description="J. Abziehbare Vorsteuerbeträge")
    AbzVoSt2021? abzVoSt;

    /**
    * K. Berichtigung des Vorsteuerabzugs (§ 15a UStG)
    */
    // @ApiMember(Description="K. Berichtigung des Vorsteuerabzugs (§ 15a UStG)")
    BerVoSt15a2021? berVoSt15a;

    /**
    * L. Berechnung der zu entrichtenden Umsatzsteuer
    */
    // @ApiMember(Description="L. Berechnung der zu entrichtenden Umsatzsteuer")
    BerechUSt2021? berechUSt;

    /**
    * Anlage UN zur Umsatzsteuererklärung für im Ausland ansässige Unternehmer
    */
    // @ApiMember(Description="Anlage UN zur Umsatzsteuererklärung für im Ausland ansässige Unternehmer")
    UN2021? un;

    /**
    * Anlage FV zur Umsatzsteuererklärung
    */
    // @ApiMember(Description="Anlage FV zur Umsatzsteuererklärung")
    FV2021? fv;

    /**
    * Der Vorgang bei einer Veranlagung.
    */
    // @ApiMember(Description="Der Vorgang bei einer Veranlagung.")
    VeranlagungVorgangTyp? vorgang;

    /**
    * Die Steuernummer. Bundeseinheitliche 13-stellige Steuernummer im ELSTER-Steuernummernformat
    */
    // @ApiMember(Description="Die Steuernummer. Bundeseinheitliche 13-stellige Steuernummer im ELSTER-Steuernummernformat")
    StringTyp? stNr;

    /**
    * Ordnungsbegriff
    */
    // @ApiMember(Description="Ordnungsbegriff")
    StringTyp? ordnungsbegriff;

    /**
    * Identifikationsnummer steuerpflichtige Person / Ehemann / Person A
    */
    // @ApiMember(Description="Identifikationsnummer steuerpflichtige Person / Ehemann / Person A")
    StringTyp? id;

    /**
    * Identifikationsnummer Ehefrau / Person B
    */
    // @ApiMember(Description="Identifikationsnummer Ehefrau / Person B")
    StringTyp? idEhefrau;

    /**
    * Name, alphanumerisch, max. 45-stellig.
    */
    // @ApiMember(Description="Name, alphanumerisch, max. 45-stellig.")
    StringTyp? absName;

    /**
    * Straße und Hausnummer, alphanumerisch, max. 30-stellig.
    */
    // @ApiMember(Description="Straße und Hausnummer, alphanumerisch, max. 30-stellig.")
    StringTyp? absStr;

    /**
    * Postleitzahl des Absenders der Erklärung, numerisch, 5-stellig.
    */
    // @ApiMember(Description="Postleitzahl des Absenders der Erklärung, numerisch, 5-stellig.")
    StringTyp? absPlz;

    /**
    * Ort, alphanumerisch, max. 29-stellig.
    */
    // @ApiMember(Description="Ort, alphanumerisch, max. 29-stellig.")
    StringTyp? absOrt;

    /**
    * Copyrightmeldung des SW-Herstellers, alphanumerisch, max.50-stellig
    */
    // @ApiMember(Description="Copyrightmeldung des SW-Herstellers, alphanumerisch, max.50-stellig")
    StringTyp? copyright;

    /**
    * TeleNummer (für finanzamtsinterne Zwecke; keine Eingabe durch Anwender)
    */
    // @ApiMember(Description="TeleNummer (für finanzamtsinterne Zwecke; keine Eingabe durch Anwender)")
    StringTyp? teleNummer;

    /**
    * Die Art des ermittelten Ordnungsbegriffs zu füllen.
    */
    // @ApiMember(Description="Die Art des ermittelten Ordnungsbegriffs zu füllen.")
    OrdNrArtTyp? ordNrArt;

    /**
    * Die zur Abholung notwendigen Informationen werden hier angegeben.
    */
    // @ApiMember(Description="Die zur Abholung notwendigen Informationen werden hier angegeben.")
    E50Rueckuebermittlung? rueckuebermittlung;

    /**
    * The four-digit federal tax office number of the receiving tax office.
    */
    // @ApiMember(Description="The four-digit federal tax office number of the receiving tax office.", IsRequired=true)
    String? bundesfinanzamtsnummer;

    /**
    * The details of the provider that submits the tax data.
    */
    // @ApiMember(Description="The details of the provider that submits the tax data.", IsRequired=true)
    String? datenLieferant;

    CreateUmsatzsteuererklaerung2021XmlBase({this.berErkl,this.allg,this.mitwirk,this.kleinuntern,this.umsaetze,this.umsStfrei,this.igErw,this.auslag13a,this.igDrei,this.ums13b,this.ergAngUms,this.abzVoSt,this.berVoSt15a,this.berechUSt,this.un,this.fv,this.vorgang,this.stNr,this.ordnungsbegriff,this.id,this.idEhefrau,this.absName,this.absStr,this.absPlz,this.absOrt,this.copyright,this.teleNummer,this.ordNrArt,this.rueckuebermittlung,this.bundesfinanzamtsnummer,this.datenLieferant});
    CreateUmsatzsteuererklaerung2021XmlBase.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        berErkl = JsonConverters.fromJson(json['berErkl'],'BerErkl2021',context!);
        allg = JsonConverters.fromJson(json['allg'],'Allg2021',context!);
        mitwirk = JsonConverters.fromJson(json['mitwirk'],'Mitwirk2021',context!);
        kleinuntern = JsonConverters.fromJson(json['kleinuntern'],'Kleinuntern2021',context!);
        umsaetze = JsonConverters.fromJson(json['umsaetze'],'Umsaetze2021',context!);
        umsStfrei = JsonConverters.fromJson(json['umsStfrei'],'UmsStfrei2021',context!);
        igErw = JsonConverters.fromJson(json['igErw'],'IgErw2021',context!);
        auslag13a = JsonConverters.fromJson(json['auslag13a'],'Auslag13a2021',context!);
        igDrei = JsonConverters.fromJson(json['igDrei'],'IgDrei2021',context!);
        ums13b = JsonConverters.fromJson(json['ums13b'],'Ums13b2021',context!);
        ergAngUms = JsonConverters.fromJson(json['ergAngUms'],'ErgAngUms2021',context!);
        abzVoSt = JsonConverters.fromJson(json['abzVoSt'],'AbzVoSt2021',context!);
        berVoSt15a = JsonConverters.fromJson(json['berVoSt15a'],'BerVoSt15a2021',context!);
        berechUSt = JsonConverters.fromJson(json['berechUSt'],'BerechUSt2021',context!);
        un = JsonConverters.fromJson(json['un'],'UN2021',context!);
        fv = JsonConverters.fromJson(json['fv'],'FV2021',context!);
        vorgang = JsonConverters.fromJson(json['vorgang'],'VeranlagungVorgangTyp',context!);
        stNr = JsonConverters.fromJson(json['stNr'],'StringTyp',context!);
        ordnungsbegriff = JsonConverters.fromJson(json['ordnungsbegriff'],'StringTyp',context!);
        id = JsonConverters.fromJson(json['id'],'StringTyp',context!);
        idEhefrau = JsonConverters.fromJson(json['idEhefrau'],'StringTyp',context!);
        absName = JsonConverters.fromJson(json['absName'],'StringTyp',context!);
        absStr = JsonConverters.fromJson(json['absStr'],'StringTyp',context!);
        absPlz = JsonConverters.fromJson(json['absPlz'],'StringTyp',context!);
        absOrt = JsonConverters.fromJson(json['absOrt'],'StringTyp',context!);
        copyright = JsonConverters.fromJson(json['copyright'],'StringTyp',context!);
        teleNummer = JsonConverters.fromJson(json['teleNummer'],'StringTyp',context!);
        ordNrArt = JsonConverters.fromJson(json['ordNrArt'],'OrdNrArtTyp',context!);
        rueckuebermittlung = JsonConverters.fromJson(json['rueckuebermittlung'],'E50Rueckuebermittlung',context!);
        bundesfinanzamtsnummer = json['bundesfinanzamtsnummer'];
        datenLieferant = json['datenLieferant'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'berErkl': JsonConverters.toJson(berErkl,'BerErkl2021',context!),
        'allg': JsonConverters.toJson(allg,'Allg2021',context!),
        'mitwirk': JsonConverters.toJson(mitwirk,'Mitwirk2021',context!),
        'kleinuntern': JsonConverters.toJson(kleinuntern,'Kleinuntern2021',context!),
        'umsaetze': JsonConverters.toJson(umsaetze,'Umsaetze2021',context!),
        'umsStfrei': JsonConverters.toJson(umsStfrei,'UmsStfrei2021',context!),
        'igErw': JsonConverters.toJson(igErw,'IgErw2021',context!),
        'auslag13a': JsonConverters.toJson(auslag13a,'Auslag13a2021',context!),
        'igDrei': JsonConverters.toJson(igDrei,'IgDrei2021',context!),
        'ums13b': JsonConverters.toJson(ums13b,'Ums13b2021',context!),
        'ergAngUms': JsonConverters.toJson(ergAngUms,'ErgAngUms2021',context!),
        'abzVoSt': JsonConverters.toJson(abzVoSt,'AbzVoSt2021',context!),
        'berVoSt15a': JsonConverters.toJson(berVoSt15a,'BerVoSt15a2021',context!),
        'berechUSt': JsonConverters.toJson(berechUSt,'BerechUSt2021',context!),
        'un': JsonConverters.toJson(un,'UN2021',context!),
        'fv': JsonConverters.toJson(fv,'FV2021',context!),
        'vorgang': JsonConverters.toJson(vorgang,'VeranlagungVorgangTyp',context!),
        'stNr': JsonConverters.toJson(stNr,'StringTyp',context!),
        'ordnungsbegriff': JsonConverters.toJson(ordnungsbegriff,'StringTyp',context!),
        'id': JsonConverters.toJson(id,'StringTyp',context!),
        'idEhefrau': JsonConverters.toJson(idEhefrau,'StringTyp',context!),
        'absName': JsonConverters.toJson(absName,'StringTyp',context!),
        'absStr': JsonConverters.toJson(absStr,'StringTyp',context!),
        'absPlz': JsonConverters.toJson(absPlz,'StringTyp',context!),
        'absOrt': JsonConverters.toJson(absOrt,'StringTyp',context!),
        'copyright': JsonConverters.toJson(copyright,'StringTyp',context!),
        'teleNummer': JsonConverters.toJson(teleNummer,'StringTyp',context!),
        'ordNrArt': JsonConverters.toJson(ordNrArt,'OrdNrArtTyp',context!),
        'rueckuebermittlung': JsonConverters.toJson(rueckuebermittlung,'E50Rueckuebermittlung',context!),
        'bundesfinanzamtsnummer': bundesfinanzamtsnummer,
        'datenLieferant': datenLieferant
    };

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

/**
* Represents the response from a service that generates XML content.
*/
// @Api(Description="Represents the response from a service that generates XML content.")
class XmlResponse implements IConvertible
{
    /**
    * The XML-based content of the response.
    */
    // @ApiMember(Description="The XML-based content of the response.")
    String? content;

    /**
    * Metadata that contains structured error information on the XML response.
    */
    // @ApiMember(Description="Metadata that contains structured error information on the XML response.")
    ResponseStatus? responseStatus;

    XmlResponse({this.content,this.responseStatus});
    XmlResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

/**
* A synchronous service to create XML content that represents the annual VAT return for 2021.
*/
// @Api(Description="A synchronous service to create XML content that represents the annual VAT return for 2021.")
class CreateUmsatzsteuererklaerung2021Xml extends CreateUmsatzsteuererklaerung2021XmlBase implements IConvertible
{
    /**
    * Berichtigte Erklärung
    */
    // @ApiMember(Description="Berichtigte Erklärung", Name="BerErkl")
    BerErkl2021? berErkl;

    /**
    * A. Allgemeine Angaben.
    */
    // @ApiMember(Description="A. Allgemeine Angaben.")
    Allg2021? allg;

    /**
    * Angaben zu den Mitwirkenden, die bei der Anfertigung dieser Steuererklärung einschließlich der Anlagen mitgewirkt haben.
    */
    // @ApiMember(Description="Angaben zu den Mitwirkenden, die bei der Anfertigung dieser Steuererklärung einschließlich der Anlagen mitgewirkt haben.")
    Mitwirk2021? mitwirk;

    /**
    * B. Angaben zur Besteuerung der Kleinunternehmer (§ 19 Absatz 1 UStG). Die Zeilen 33 und 34 sind nur auszufüllen, wenn der Umsatz $VZ-1$ (zuzüglich Steuer) nicht mehr als 22.000 € betragen hat und auf die Anwendung des § 19 Absatz 1 UStG nicht verzichtet worden ist.
    */
    // @ApiMember(Description="B. Angaben zur Besteuerung der Kleinunternehmer (§ 19 Absatz 1 UStG). Die Zeilen 33 und 34 sind nur auszufüllen, wenn der Umsatz $VZ-1$ (zuzüglich Steuer) nicht mehr als 22.000 € betragen hat und auf die Anwendung des § 19 Absatz 1 UStG nicht verzichtet worden ist.")
    Kleinuntern2021? kleinuntern;

    /**
    * C. Steuerpflichtige Lieferungen, sonstige Leistungen und unentgeltliche Wertabgaben.
    */
    // @ApiMember(Description="C. Steuerpflichtige Lieferungen, sonstige Leistungen und unentgeltliche Wertabgaben.")
    Umsaetze2021? umsaetze;

    /**
    * D. Steuerfreie Lieferungen, sonstige Leistungen und unentgeltliche Wertabgaben.
    */
    // @ApiMember(Description="D. Steuerfreie Lieferungen, sonstige Leistungen und unentgeltliche Wertabgaben.")
    UmsStfrei2021? umsStfrei;

    /**
    * E. Innergemeinschaftliche Erwerbe.
    */
    // @ApiMember(Description="E. Innergemeinschaftliche Erwerbe.")
    IgErw2021? igErw;

    /**
    * F. Steuerschuldner bei Auslagerung (§ 13a Absatz 1 Nummer 6 UStG).
    */
    // @ApiMember(Description="F. Steuerschuldner bei Auslagerung (§ 13a Absatz 1 Nummer 6 UStG).")
    Auslag13a2021? auslag13a;

    /**
    * G. Innergemeinschaftliche Dreiecksgeschäfte (§ 25b UStG).
    */
    // @ApiMember(Description="G. Innergemeinschaftliche Dreiecksgeschäfte (§ 25b UStG).")
    IgDrei2021? igDrei;

    /**
    * H. Leistungsempfänger als Steuerschuldner (§ 13b UStG).
    */
    // @ApiMember(Description="H. Leistungsempfänger als Steuerschuldner (§ 13b UStG).")
    Ums13b2021? ums13b;

    /**
    * I. Ergänzende Angaben zu Umsätzen.
    */
    // @ApiMember(Description="I. Ergänzende Angaben zu Umsätzen.")
    ErgAngUms2021? ergAngUms;

    /**
    * J. Abziehbare Vorsteuerbeträge
    */
    // @ApiMember(Description="J. Abziehbare Vorsteuerbeträge")
    AbzVoSt2021? abzVoSt;

    /**
    * K. Berichtigung des Vorsteuerabzugs (§ 15a UStG)
    */
    // @ApiMember(Description="K. Berichtigung des Vorsteuerabzugs (§ 15a UStG)")
    BerVoSt15a2021? berVoSt15a;

    /**
    * L. Berechnung der zu entrichtenden Umsatzsteuer
    */
    // @ApiMember(Description="L. Berechnung der zu entrichtenden Umsatzsteuer")
    BerechUSt2021? berechUSt;

    /**
    * Anlage UN zur Umsatzsteuererklärung für im Ausland ansässige Unternehmer
    */
    // @ApiMember(Description="Anlage UN zur Umsatzsteuererklärung für im Ausland ansässige Unternehmer")
    UN2021? un;

    /**
    * Anlage FV zur Umsatzsteuererklärung
    */
    // @ApiMember(Description="Anlage FV zur Umsatzsteuererklärung")
    FV2021? fv;

    /**
    * Der Vorgang bei einer Veranlagung.
    */
    // @ApiMember(Description="Der Vorgang bei einer Veranlagung.")
    VeranlagungVorgangTyp? vorgang;

    /**
    * Die Steuernummer. Bundeseinheitliche 13-stellige Steuernummer im ELSTER-Steuernummernformat
    */
    // @ApiMember(Description="Die Steuernummer. Bundeseinheitliche 13-stellige Steuernummer im ELSTER-Steuernummernformat")
    StringTyp? stNr;

    /**
    * Ordnungsbegriff
    */
    // @ApiMember(Description="Ordnungsbegriff")
    StringTyp? ordnungsbegriff;

    /**
    * Identifikationsnummer steuerpflichtige Person / Ehemann / Person A
    */
    // @ApiMember(Description="Identifikationsnummer steuerpflichtige Person / Ehemann / Person A")
    StringTyp? id;

    /**
    * Identifikationsnummer Ehefrau / Person B
    */
    // @ApiMember(Description="Identifikationsnummer Ehefrau / Person B")
    StringTyp? idEhefrau;

    /**
    * Name, alphanumerisch, max. 45-stellig.
    */
    // @ApiMember(Description="Name, alphanumerisch, max. 45-stellig.")
    StringTyp? absName;

    /**
    * Straße und Hausnummer, alphanumerisch, max. 30-stellig.
    */
    // @ApiMember(Description="Straße und Hausnummer, alphanumerisch, max. 30-stellig.")
    StringTyp? absStr;

    /**
    * Postleitzahl des Absenders der Erklärung, numerisch, 5-stellig.
    */
    // @ApiMember(Description="Postleitzahl des Absenders der Erklärung, numerisch, 5-stellig.")
    StringTyp? absPlz;

    /**
    * Ort, alphanumerisch, max. 29-stellig.
    */
    // @ApiMember(Description="Ort, alphanumerisch, max. 29-stellig.")
    StringTyp? absOrt;

    /**
    * Copyrightmeldung des SW-Herstellers, alphanumerisch, max.50-stellig
    */
    // @ApiMember(Description="Copyrightmeldung des SW-Herstellers, alphanumerisch, max.50-stellig")
    StringTyp? copyright;

    /**
    * TeleNummer (für finanzamtsinterne Zwecke; keine Eingabe durch Anwender)
    */
    // @ApiMember(Description="TeleNummer (für finanzamtsinterne Zwecke; keine Eingabe durch Anwender)")
    StringTyp? teleNummer;

    /**
    * Die Art des ermittelten Ordnungsbegriffs zu füllen.
    */
    // @ApiMember(Description="Die Art des ermittelten Ordnungsbegriffs zu füllen.")
    OrdNrArtTyp? ordNrArt;

    /**
    * Die zur Abholung notwendigen Informationen werden hier angegeben.
    */
    // @ApiMember(Description="Die zur Abholung notwendigen Informationen werden hier angegeben.")
    E50Rueckuebermittlung? rueckuebermittlung;

    /**
    * The four-digit federal tax office number of the receiving tax office.
    */
    // @ApiMember(Description="The four-digit federal tax office number of the receiving tax office.", IsRequired=true)
    String? bundesfinanzamtsnummer;

    /**
    * The details of the provider that submits the tax data.
    */
    // @ApiMember(Description="The details of the provider that submits the tax data.", IsRequired=true)
    String? datenLieferant;

    CreateUmsatzsteuererklaerung2021Xml({this.berErkl,this.allg,this.mitwirk,this.kleinuntern,this.umsaetze,this.umsStfrei,this.igErw,this.auslag13a,this.igDrei,this.ums13b,this.ergAngUms,this.abzVoSt,this.berVoSt15a,this.berechUSt,this.un,this.fv,this.vorgang,this.stNr,this.ordnungsbegriff,this.id,this.idEhefrau,this.absName,this.absStr,this.absPlz,this.absOrt,this.copyright,this.teleNummer,this.ordNrArt,this.rueckuebermittlung,this.bundesfinanzamtsnummer,this.datenLieferant});
    CreateUmsatzsteuererklaerung2021Xml.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        berErkl = JsonConverters.fromJson(json['berErkl'],'BerErkl2021',context!);
        allg = JsonConverters.fromJson(json['allg'],'Allg2021',context!);
        mitwirk = JsonConverters.fromJson(json['mitwirk'],'Mitwirk2021',context!);
        kleinuntern = JsonConverters.fromJson(json['kleinuntern'],'Kleinuntern2021',context!);
        umsaetze = JsonConverters.fromJson(json['umsaetze'],'Umsaetze2021',context!);
        umsStfrei = JsonConverters.fromJson(json['umsStfrei'],'UmsStfrei2021',context!);
        igErw = JsonConverters.fromJson(json['igErw'],'IgErw2021',context!);
        auslag13a = JsonConverters.fromJson(json['auslag13a'],'Auslag13a2021',context!);
        igDrei = JsonConverters.fromJson(json['igDrei'],'IgDrei2021',context!);
        ums13b = JsonConverters.fromJson(json['ums13b'],'Ums13b2021',context!);
        ergAngUms = JsonConverters.fromJson(json['ergAngUms'],'ErgAngUms2021',context!);
        abzVoSt = JsonConverters.fromJson(json['abzVoSt'],'AbzVoSt2021',context!);
        berVoSt15a = JsonConverters.fromJson(json['berVoSt15a'],'BerVoSt15a2021',context!);
        berechUSt = JsonConverters.fromJson(json['berechUSt'],'BerechUSt2021',context!);
        un = JsonConverters.fromJson(json['un'],'UN2021',context!);
        fv = JsonConverters.fromJson(json['fv'],'FV2021',context!);
        vorgang = JsonConverters.fromJson(json['vorgang'],'VeranlagungVorgangTyp',context!);
        stNr = JsonConverters.fromJson(json['stNr'],'StringTyp',context!);
        ordnungsbegriff = JsonConverters.fromJson(json['ordnungsbegriff'],'StringTyp',context!);
        id = JsonConverters.fromJson(json['id'],'StringTyp',context!);
        idEhefrau = JsonConverters.fromJson(json['idEhefrau'],'StringTyp',context!);
        absName = JsonConverters.fromJson(json['absName'],'StringTyp',context!);
        absStr = JsonConverters.fromJson(json['absStr'],'StringTyp',context!);
        absPlz = JsonConverters.fromJson(json['absPlz'],'StringTyp',context!);
        absOrt = JsonConverters.fromJson(json['absOrt'],'StringTyp',context!);
        copyright = JsonConverters.fromJson(json['copyright'],'StringTyp',context!);
        teleNummer = JsonConverters.fromJson(json['teleNummer'],'StringTyp',context!);
        ordNrArt = JsonConverters.fromJson(json['ordNrArt'],'OrdNrArtTyp',context!);
        rueckuebermittlung = JsonConverters.fromJson(json['rueckuebermittlung'],'E50Rueckuebermittlung',context!);
        bundesfinanzamtsnummer = json['bundesfinanzamtsnummer'];
        datenLieferant = json['datenLieferant'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'berErkl': JsonConverters.toJson(berErkl,'BerErkl2021',context!),
        'allg': JsonConverters.toJson(allg,'Allg2021',context!),
        'mitwirk': JsonConverters.toJson(mitwirk,'Mitwirk2021',context!),
        'kleinuntern': JsonConverters.toJson(kleinuntern,'Kleinuntern2021',context!),
        'umsaetze': JsonConverters.toJson(umsaetze,'Umsaetze2021',context!),
        'umsStfrei': JsonConverters.toJson(umsStfrei,'UmsStfrei2021',context!),
        'igErw': JsonConverters.toJson(igErw,'IgErw2021',context!),
        'auslag13a': JsonConverters.toJson(auslag13a,'Auslag13a2021',context!),
        'igDrei': JsonConverters.toJson(igDrei,'IgDrei2021',context!),
        'ums13b': JsonConverters.toJson(ums13b,'Ums13b2021',context!),
        'ergAngUms': JsonConverters.toJson(ergAngUms,'ErgAngUms2021',context!),
        'abzVoSt': JsonConverters.toJson(abzVoSt,'AbzVoSt2021',context!),
        'berVoSt15a': JsonConverters.toJson(berVoSt15a,'BerVoSt15a2021',context!),
        'berechUSt': JsonConverters.toJson(berechUSt,'BerechUSt2021',context!),
        'un': JsonConverters.toJson(un,'UN2021',context!),
        'fv': JsonConverters.toJson(fv,'FV2021',context!),
        'vorgang': JsonConverters.toJson(vorgang,'VeranlagungVorgangTyp',context!),
        'stNr': JsonConverters.toJson(stNr,'StringTyp',context!),
        'ordnungsbegriff': JsonConverters.toJson(ordnungsbegriff,'StringTyp',context!),
        'id': JsonConverters.toJson(id,'StringTyp',context!),
        'idEhefrau': JsonConverters.toJson(idEhefrau,'StringTyp',context!),
        'absName': JsonConverters.toJson(absName,'StringTyp',context!),
        'absStr': JsonConverters.toJson(absStr,'StringTyp',context!),
        'absPlz': JsonConverters.toJson(absPlz,'StringTyp',context!),
        'absOrt': JsonConverters.toJson(absOrt,'StringTyp',context!),
        'copyright': JsonConverters.toJson(copyright,'StringTyp',context!),
        'teleNummer': JsonConverters.toJson(teleNummer,'StringTyp',context!),
        'ordNrArt': JsonConverters.toJson(ordNrArt,'OrdNrArtTyp',context!),
        'rueckuebermittlung': JsonConverters.toJson(rueckuebermittlung,'E50Rueckuebermittlung',context!),
        'bundesfinanzamtsnummer': bundesfinanzamtsnummer,
        'datenLieferant': datenLieferant
    });

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

TypeContext _ctx = TypeContext(library: 'taxfiling.pwc.de', types: <String, TypeInfo> {
    'CustomTypBase': TypeInfo(TypeOf.AbstractClass),
    'Bool1Typ': TypeInfo(TypeOf.Class, create:() => Bool1Typ()),
    'BoolXTyp': TypeInfo(TypeOf.Class, create:() => BoolXTyp()),
    'BerErkl2021': TypeInfo(TypeOf.Class, create:() => BerErkl2021()),
    'StringTyp': TypeInfo(TypeOf.Class, create:() => StringTyp()),
    'UnternehmenAdr2021': TypeInfo(TypeOf.Class, create:() => UnternehmenAdr2021()),
    'UnternehmenKontakt2021': TypeInfo(TypeOf.Class, create:() => UnternehmenKontakt2021()),
    'Unternehmen2021': TypeInfo(TypeOf.Class, create:() => Unternehmen2021()),
    'ImAuslAnsUnt2021': TypeInfo(TypeOf.Class, create:() => ImAuslAnsUnt2021()),
    'Fiskalvertr2021': TypeInfo(TypeOf.Class, create:() => Fiskalvertr2021()),
    'ErklaerungZeitraum': TypeInfo(TypeOf.Class, create:() => ErklaerungZeitraum()),
    'ZeitraumTyp': TypeInfo(TypeOf.Class, create:() => ZeitraumTyp()),
    'DauerUntEig2021': TypeInfo(TypeOf.Class, create:() => DauerUntEig2021()),
    'Entgeltart': TypeInfo(TypeOf.Enum, enumValues:Entgeltart.values),
    'EntgeltartTyp': TypeInfo(TypeOf.Class, create:() => EntgeltartTyp()),
    'BestArt2021': TypeInfo(TypeOf.Class, create:() => BestArt2021()),
    'Verrech2021': TypeInfo(TypeOf.Class, create:() => Verrech2021()),
    'ErgAngErkl2021': TypeInfo(TypeOf.Class, create:() => ErgAngErkl2021()),
    'Allg2021': TypeInfo(TypeOf.Class, create:() => Allg2021()),
    'Kanzlei2021': TypeInfo(TypeOf.Class, create:() => Kanzlei2021()),
    'Bearb2021': TypeInfo(TypeOf.Class, create:() => Bearb2021()),
    'MitwirkAdr2021': TypeInfo(TypeOf.Class, create:() => MitwirkAdr2021()),
    'MitwirkKontakt2021': TypeInfo(TypeOf.Class, create:() => MitwirkKontakt2021()),
    'MitwirkErkl2021': TypeInfo(TypeOf.Class, create:() => MitwirkErkl2021()),
    'Mitwirk2021': TypeInfo(TypeOf.Class, create:() => Mitwirk2021()),
    'GeldBetragOhneCent': TypeInfo(TypeOf.AbstractClass),
    'GeldBetragOhneCent5DE': TypeInfo(TypeOf.Class, create:() => GeldBetragOhneCent5DE()),
    'GeldBetragOhneCent5DETyp': TypeInfo(TypeOf.Class, create:() => GeldBetragOhneCent5DETyp()),
    'GrossGeldBetragOhneCent': TypeInfo(TypeOf.AbstractClass),
    'GeldBetragOhneCent12DE': TypeInfo(TypeOf.Class, create:() => GeldBetragOhneCent12DE()),
    'GeldBetragOhneCent12DETyp': TypeInfo(TypeOf.Class, create:() => GeldBetragOhneCent12DETyp()),
    'Kleinuntern2021': TypeInfo(TypeOf.Class, create:() => Kleinuntern2021()),
    'GeldBetragMitCent': TypeInfo(TypeOf.AbstractClass),
    'GeldBetragMitCent12DE': TypeInfo(TypeOf.Class, create:() => GeldBetragMitCent12DE()),
    'GeldBetragMitCent12DETyp': TypeInfo(TypeOf.Class, create:() => GeldBetragMitCent12DETyp()),
    'UmsAllg2021': TypeInfo(TypeOf.Class, create:() => UmsAllg2021()),
    'UmsErm2021': TypeInfo(TypeOf.Class, create:() => UmsErm2021()),
    'UmsAnd2021': TypeInfo(TypeOf.Class, create:() => UmsAnd2021()),
    'UmsLuf2021': TypeInfo(TypeOf.Class, create:() => UmsLuf2021()),
    'PositiverGeldBetragMitCent12DE': TypeInfo(TypeOf.Class, create:() => PositiverGeldBetragMitCent12DE()),
    'PositiverGeldBetragMitCent12DETyp': TypeInfo(TypeOf.Class, create:() => PositiverGeldBetragMitCent12DETyp()),
    'WechsBestForm2021': TypeInfo(TypeOf.Class, create:() => WechsBestForm2021()),
    'NachstStSatzAend2021': TypeInfo(TypeOf.Class, create:() => NachstStSatzAend2021()),
    'UmsSum2021': TypeInfo(TypeOf.Class, create:() => UmsSum2021()),
    'Umsaetze2021': TypeInfo(TypeOf.Class, create:() => Umsaetze2021()),
    'IgLfg2021': TypeInfo(TypeOf.Class, create:() => IgLfg2021()),
    'UmsStFreiWeit2021': TypeInfo(TypeOf.Class, create:() => UmsStFreiWeit2021()),
    'MitVoStAbz2021': TypeInfo(TypeOf.Class, create:() => MitVoStAbz2021()),
    'NichtGesUms2021': TypeInfo(TypeOf.Class, create:() => NichtGesUms2021()),
    'GesUms2021': TypeInfo(TypeOf.Class, create:() => GesUms2021()),
    'OhneVoStAbz2021': TypeInfo(TypeOf.Class, create:() => OhneVoStAbz2021()),
    'UmsStfrei2021': TypeInfo(TypeOf.Class, create:() => UmsStfrei2021()),
    'Stfrei2021': TypeInfo(TypeOf.Class, create:() => Stfrei2021()),
    'Stpfl2021': TypeInfo(TypeOf.Class, create:() => Stpfl2021()),
    'IgErwSum2021': TypeInfo(TypeOf.Class, create:() => IgErwSum2021()),
    'IgErw2021': TypeInfo(TypeOf.Class, create:() => IgErw2021()),
    'Auslag13aSum2021': TypeInfo(TypeOf.Class, create:() => Auslag13aSum2021()),
    'Auslag13a2021': TypeInfo(TypeOf.Class, create:() => Auslag13a2021()),
    'LfgErstAbn2021': TypeInfo(TypeOf.Class, create:() => LfgErstAbn2021()),
    'LfgLetztAbn2021': TypeInfo(TypeOf.Class, create:() => LfgLetztAbn2021()),
    'IgDreiSum2021': TypeInfo(TypeOf.Class, create:() => IgDreiSum2021()),
    'IgDrei2021': TypeInfo(TypeOf.Class, create:() => IgDrei2021()),
    'Ums13bSum2021': TypeInfo(TypeOf.Class, create:() => Ums13bSum2021()),
    'Ums13b2021': TypeInfo(TypeOf.Class, create:() => Ums13b2021()),
    'PositiverGeldBetragOhneCent12DE': TypeInfo(TypeOf.Class, create:() => PositiverGeldBetragOhneCent12DE()),
    'PositiverGeldBetragOhneCent12DETyp': TypeInfo(TypeOf.Class, create:() => PositiverGeldBetragOhneCent12DETyp()),
    'ErgAngUms2021': TypeInfo(TypeOf.Class, create:() => ErgAngUms2021()),
    'AbzVoStSum2021': TypeInfo(TypeOf.Class, create:() => AbzVoStSum2021()),
    'ErgAng2021': TypeInfo(TypeOf.Class, create:() => ErgAng2021()),
    'AbzVoSt2021': TypeInfo(TypeOf.Class, create:() => AbzVoSt2021()),
    'DatumUhrzeitTyp': TypeInfo(TypeOf.Class, create:() => DatumUhrzeitTyp()),
    'PositiverGeldBetragMitCent13DE': TypeInfo(TypeOf.Class, create:() => PositiverGeldBetragMitCent13DE()),
    'PositiverGeldBetragMitCent13DETyp': TypeInfo(TypeOf.Class, create:() => PositiverGeldBetragMitCent13DETyp()),
    'AngGrdst2021': TypeInfo(TypeOf.Class, create:() => AngGrdst2021()),
    'GrdstErstmVerw2021': TypeInfo(TypeOf.Class, create:() => GrdstErstmVerw2021()),
    'AendVerh2021': TypeInfo(TypeOf.Class, create:() => AendVerh2021()),
    'NutzAend2021': TypeInfo(TypeOf.Class, create:() => NutzAend2021()),
    'GrundAendVerh2021': TypeInfo(TypeOf.Class, create:() => GrundAendVerh2021()),
    'VoStBerBetrSum2021': TypeInfo(TypeOf.Class, create:() => VoStBerBetrSum2021()),
    'VoStBerBetr2021': TypeInfo(TypeOf.Class, create:() => VoStBerBetr2021()),
    'BerVoSt15a2021': TypeInfo(TypeOf.Class, create:() => BerVoSt15a2021()),
    'VerblUSt2021': TypeInfo(TypeOf.Class, create:() => VerblUSt2021()),
    'ZahlErstatt2021': TypeInfo(TypeOf.Class, create:() => ZahlErstatt2021()),
    'BerechUSt2021': TypeInfo(TypeOf.Class, create:() => BerechUSt2021()),
    'Bank2021': TypeInfo(TypeOf.Class, create:() => Bank2021()),
    'AngUnterschr2021': TypeInfo(TypeOf.Class, create:() => AngUnterschr2021()),
    'Vollm2021': TypeInfo(TypeOf.Class, create:() => Vollm2021()),
    'UnAllg2021': TypeInfo(TypeOf.Class, create:() => UnAllg2021()),
    'Bool12Typ': TypeInfo(TypeOf.Class, create:() => Bool12Typ()),
    'VoStVerguetBZSt2021': TypeInfo(TypeOf.Class, create:() => VoStVerguetBZSt2021()),
    'AnrechBetr2021': TypeInfo(TypeOf.Class, create:() => AnrechBetr2021()),
    'InstpflUmsEnt2021': TypeInfo(TypeOf.Class, create:() => InstpflUmsEnt2021()),
    'YearlessDateTimeTyp': TypeInfo(TypeOf.Class, create:() => YearlessDateTimeTyp()),
    'SonstLstgElekr2021': TypeInfo(TypeOf.Class, create:() => SonstLstgElekr2021()),
    'UnInstpflUmsNichtEnt2021': TypeInfo(TypeOf.Class, create:() => UnInstpflUmsNichtEnt2021()),
    'UnErgAngUms2021': TypeInfo(TypeOf.Class, create:() => UnErgAngUms2021()),
    'UN2021': TypeInfo(TypeOf.Class, create:() => UN2021()),
    'Einz2021': TypeInfo(TypeOf.Class, create:() => Einz2021()),
    'AufstAllerVertrUntSum2021': TypeInfo(TypeOf.Class, create:() => AufstAllerVertrUntSum2021()),
    'AufstAllerVertrUnt2021': TypeInfo(TypeOf.Class, create:() => AufstAllerVertrUnt2021()),
    'List<Einz2021>': TypeInfo(TypeOf.Class, create:() => <Einz2021>[]),
    'FV2021': TypeInfo(TypeOf.Class, create:() => FV2021()),
    'VeranlagungVorgang': TypeInfo(TypeOf.Enum, enumValues:VeranlagungVorgang.values),
    'VeranlagungVorgangTyp': TypeInfo(TypeOf.Class, create:() => VeranlagungVorgangTyp()),
    'OrdNrArt': TypeInfo(TypeOf.Enum, enumValues:OrdNrArt.values),
    'OrdNrArtTyp': TypeInfo(TypeOf.Class, create:() => OrdNrArtTyp()),
    'E50Rueckuebermittlung': TypeInfo(TypeOf.Class, create:() => E50Rueckuebermittlung()),
    'CreateUmsatzsteuererklaerung2021XmlBase': TypeInfo(TypeOf.AbstractClass),
    'XmlResponse': TypeInfo(TypeOf.Class, create:() => XmlResponse()),
    'CreateUmsatzsteuererklaerung2021Xml': TypeInfo(TypeOf.Class, create:() => CreateUmsatzsteuererklaerung2021Xml()),
});

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

{
	berErkl: 
	{
		e3000601: 
		{
			wert: False,
			alias: String
		},
		e3000013: 
		{
			wert: False,
			alias: String
		}
	},
	allg: 
	{
		unternehmen: 
		{
			e3000901: 
			{
				wert: String,
				alias: String
			},
			e3000902: 
			{
				wert: String,
				alias: String
			},
			e3001001: 
			{
				wert: String,
				alias: String
			},
			adr: 
			{
				e3001101: 
				{
					wert: String,
					alias: String
				},
				e3001203: 
				{
					wert: String,
					alias: String
				},
				e3001204: 
				{
					wert: String,
					alias: String
				},
				e3001205: 
				{
					wert: String,
					alias: String
				},
				e3001201: 
				{
					wert: String,
					alias: String
				},
				e3001403: 
				{
					wert: String,
					alias: String
				},
				e3001404: 
				{
					wert: String,
					alias: String
				}
			},
			kontakt: 
			{
				e3001202: 
				{
					wert: String,
					alias: String
				},
				e3001301: 
				{
					wert: String,
					alias: String
				}
			}
		},
		imAuslAnsUnt: 
		{
			e3001402: 
			{
				wert: False,
				alias: String
			}
		},
		fiskalvetr: 
		{
			e3001801: 
			{
				wert: False,
				alias: String
			}
		},
		dauerUntEig: 
		{
			e3001401: 
			{
				wert: 
				{
					start: 0001-01-01,
					ende: 0001-01-01
				},
				alias: String
			},
			e3001501: 
			{
				wert: 
				{
					start: 0001-01-01,
					ende: 0001-01-01
				},
				alias: String
			}
		},
		bestArt: 
		{
			e3002203: 
			{
				wert: 1,
				alias: String
			}
		},
		verrech: 
		{
			e3001701: 
			{
				wert: False,
				alias: String
			}
		},
		ergAngErkl: 
		{
			e3002201: 
			{
				wert: False,
				alias: String
			},
			e3002202: 
			{
				wert: String,
				alias: String
			}
		}
	},
	mitwirk: 
	{
		kanzlei: 
		{
			e3002509: 
			{
				wert: String,
				alias: String
			},
			e3002506: 
			{
				wert: String,
				alias: String
			},
			e3002507: 
			{
				wert: String,
				alias: String
			}
		},
		bearb: 
		{
			e3002501: 
			{
				wert: String,
				alias: String
			},
			e3002502: 
			{
				wert: String,
				alias: String
			}
		},
		adr: 
		{
			e3002503: 
			{
				wert: String,
				alias: String
			},
			e3002504: 
			{
				wert: String,
				alias: String
			}
		},
		kontakt: 
		{
			e3002505: 
			{
				wert: String,
				alias: String
			},
			e3002508: 
			{
				wert: String,
				alias: String
			}
		},
		mitwirkErkl: 
		{
			e3002602: 
			{
				wert: False,
				alias: String
			}
		}
	},
	kleinuntern: 
	{
		e3002301: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3002401: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		}
	},
	umsaetze: 
	{
		umsAllg: 
		{
			e3003303: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3003304: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3003405: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3003406: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3003505: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3003506: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			}
		},
		umsErm: 
		{
			e3004401: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3004402: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3003703: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3003704: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3003803: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3003804: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			}
		},
		umsAnd: 
		{
			e3005001: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3005002: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			}
		},
		umsLuf: 
		{
			e3005201: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3005301: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3005302: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3005003: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3005004: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3005701: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3005702: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3005801: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			}
		},
		wechsBestForm: 
		{
			e3102901: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			}
		},
		nachstStSatzAend: 
		{
			e3005901: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			}
		},
		umsSum: 
		{
			e3006001: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			}
		}
	},
	umsStfrei: 
	{
		mitVoStAbz: 
		{
			igLfg: 
			{
				e3103301: 
				{
					betrag: 
					{
						wert: 0
					},
					alias: String
				},
				e3103401: 
				{
					betrag: 
					{
						wert: 0
					},
					alias: String
				},
				e3103501: 
				{
					betrag: 
					{
						wert: 0
					},
					alias: String
				}
			},
			umsStFreiWeit: 
			{
				e3103801: 
				{
					betrag: 
					{
						wert: 0
					},
					alias: String
				},
				e3103901: 
				{
					wert: String,
					alias: String
				},
				e3103902: 
				{
					betrag: 
					{
						wert: 0
					},
					alias: String
				},
				e3104001: 
				{
					betrag: 
					{
						wert: 0
					},
					alias: String
				},
				e3104101: 
				{
					betrag: 
					{
						wert: 0
					},
					alias: String
				},
				e3104201: 
				{
					betrag: 
					{
						wert: 0
					},
					alias: String
				}
			}
		},
		ohneVoStAbz: 
		{
			nichtGesUms: 
			{
				e3104401: 
				{
					betrag: 
					{
						wert: 0
					},
					alias: String
				},
				e3104501: 
				{
					wert: String,
					alias: String
				},
				e3104502: 
				{
					betrag: 
					{
						wert: 0
					},
					alias: String
				},
				e3104601: 
				{
					betrag: 
					{
						wert: 0
					},
					alias: String
				}
			},
			gesUms: 
			{
				e3104901: 
				{
					wert: String,
					alias: String
				},
				e3104902: 
				{
					betrag: 
					{
						wert: 0
					},
					alias: String
				}
			}
		}
	},
	igErw: 
	{
		stfrei: 
		{
			e3100901: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			}
		},
		stpfl: 
		{
			e3100902: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3100903: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3101301: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3101302: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3101303: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3101304: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3101401: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3101402: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			}
		},
		igErwSum: 
		{
			e3101501: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			}
		}
	},
	auslag13a: 
	{
		e3102804: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3102805: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		auslag13aSum: 
		{
			e3102904: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			}
		}
	},
	igDrei: 
	{
		lfgErstAbn: 
		{
			e3101801: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			}
		},
		lfgLetztAbn: 
		{
			e3101701: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3101702: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3102301: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3102302: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3102303: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3102304: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			}
		},
		igDreiSum: 
		{
			e3102401: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			}
		}
	},
	ums13b: 
	{
		e3102205: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3102206: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3102307: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3102308: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3102503: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3102504: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		ums13bSum: 
		{
			e3102601: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			}
		}
	},
	ergAngUms: 
	{
		e3105201: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3105301: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3105501: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3105601: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3105101: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3105102: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3105602: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3105702: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3105801: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3105901: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3106001: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3106101: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		}
	},
	abzVoSt: 
	{
		e3006201: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3006301: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3006401: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3006503: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3006502: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3006501: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3006601: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3006701: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3006801: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		abzVoStSum: 
		{
			e3006901: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			}
		},
		ergAng: 
		{
			e3007001: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			}
		}
	},
	berVoSt15a: 
	{
		grdstErstmVerw: 
		{
			e3007301: 
			{
				wert: False,
				alias: String
			},
			angGrdst: 
			{
				e3007401: 
				{
					wert: String,
					alias: String
				},
				e3007402: 
				{
					wert: 0001-01-01,
					alias: String
				},
				e3007403: 
				{
					wert: String,
					alias: String
				},
				e3007404: 
				{
					betrag: 
					{
						wert: 0
					},
					alias: String
				},
				e3007405: 
				{
					betrag: 
					{
						wert: 0
					},
					alias: String
				},
				e3007406: 
				{
					betrag: 
					{
						wert: 0
					},
					alias: String
				}
			}
		},
		aendVerh: 
		{
			e3007601: 
			{
				wert: False,
				alias: String
			},
			e3008501: 
			{
				wert: False,
				alias: String
			},
			e3008601: 
			{
				wert: False,
				alias: String
			}
		},
		grundAendVerh: 
		{
			e3007801: 
			{
				wert: False,
				alias: String
			},
			e3007802: 
			{
				wert: False,
				alias: String
			},
			e3007803: 
			{
				wert: False,
				alias: String
			},
			nutzAend: 
			{
				e3007901: 
				{
					wert: False,
					alias: String
				},
				e3008001: 
				{
					wert: False,
					alias: String
				},
				e3008202: 
				{
					wert: False,
					alias: String
				},
				e3008401: 
				{
					wert: False,
					alias: String
				},
				e3008402: 
				{
					wert: String,
					alias: String
				}
			}
		},
		voStBerBetr: 
		{
			e3008701: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3008702: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3008801: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3008802: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3008803: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3008804: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			voStBerBetrSum: 
			{
				e3008901: 
				{
					betrag: 
					{
						wert: 0
					},
					alias: String
				},
				e3008902: 
				{
					betrag: 
					{
						wert: 0
					},
					alias: String
				}
			}
		}
	},
	berechUSt: 
	{
		e3009201: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3009401: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3009602: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3009501: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3009502: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3009801: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3009901: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3010001: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3010201: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3009701: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3010301: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3010401: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3010501: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3010601: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		e3010602: 
		{
			betrag: 
			{
				wert: 0
			},
			alias: String
		},
		verblUSt: 
		{
			e3011101: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3011301: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			}
		},
		zahlErstatt: 
		{
			e3011401: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			}
		}
	},
	un: 
	{
		allg: 
		{
			bank: 
			{
				e3201001: 
				{
					wert: String,
					alias: String
				},
				e3201002: 
				{
					wert: String,
					alias: String
				},
				e3200901: 
				{
					wert: String,
					alias: String
				},
				e3200902: 
				{
					wert: String,
					alias: String
				},
				e3200904: 
				{
					wert: False,
					alias: String
				},
				e3200905: 
				{
					wert: String,
					alias: String
				}
			},
			vollm: 
			{
				e3201301: 
				{
					wert: False,
					alias: String
				},
				e3201401: 
				{
					wert: False,
					alias: String
				},
				e3201501: 
				{
					wert: String,
					alias: String
				},
				e3201601: 
				{
					wert: String,
					alias: String
				},
				e3201302: 
				{
					wert: String,
					alias: String
				},
				e3201303: 
				{
					wert: String,
					alias: String
				},
				e3201304: 
				{
					wert: String,
					alias: String
				},
				e3201402: 
				{
					wert: String,
					alias: String
				},
				e3201503: 
				{
					wert: String,
					alias: String
				},
				e3201504: 
				{
					wert: String,
					alias: String
				},
				e3201602: 
				{
					wert: String,
					alias: String
				},
				e3201502: 
				{
					wert: String,
					alias: String
				},
				angUnterschr: 
				{
					e3201701: 
					{
						wert: False,
						alias: String
					}
				}
			}
		},
		voStVerguetBZSt: 
		{
			e3201101: 
			{
				wert: False,
				alias: String
			}
		},
		anrechBetr: 
		{
			e3201902: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3202002: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			},
			e3202102: 
			{
				betrag: 
				{
					wert: 0
				},
				alias: String
			}
		},
		ergAngUms: 
		{
			instpflUmsEnt: 
			{
				e3201901: 
				{
					betrag: 
					{
						wert: 0
					},
					alias: String
				}
			},
			instpflUmsNichtEnt: 
			{
				sonstLstgElekr: 
				{
					e3202901: 
					{
						wert: String,
						alias: String
					},
					e3202902: 
					{
						wert: 0001-01-01,
						alias: String
					},
					e3202903: 
					{
						wert: 0001-01-01,
						alias: String
					},
					e3202904: 
					{
						wert: String,
						alias: String
					},
					e3202905: 
					{
						betrag: 
						{
							wert: 0
						},
						alias: String
					}
				}
			}
		}
	},
	fv: 
	{
		aufstAllerVertrUnt: 
		{
			einzs: 
			[
				{
					e3300201: 
					{
						wert: String,
						alias: String
					},
					e3300202: 
					{
						wert: String,
						alias: String
					},
					e3300203: 
					{
						wert: String,
						alias: String
					},
					e3300204: 
					{
						betrag: 
						{
							wert: 0
						},
						alias: String
					}
				}
			],
			sum: 
			{
				e3300301: 
				{
					betrag: 
					{
						wert: 0
					},
					alias: String
				}
			}
		}
	},
	vorgang: 
	{
		wert: NurVeranlagung,
		alias: String
	},
	stNr: 
	{
		wert: String,
		alias: String
	},
	ordnungsbegriff: 
	{
		wert: String,
		alias: String
	},
	id: 
	{
		wert: String,
		alias: String
	},
	idEhefrau: 
	{
		wert: String,
		alias: String
	},
	absName: 
	{
		wert: String,
		alias: String
	},
	absStr: 
	{
		wert: String,
		alias: String
	},
	absPlz: 
	{
		wert: String,
		alias: String
	},
	absOrt: 
	{
		wert: String,
		alias: String
	},
	copyright: 
	{
		wert: String,
		alias: String
	},
	teleNummer: 
	{
		wert: String,
		alias: String
	},
	ordNrArt: 
	{
		wert: S,
		alias: String
	},
	rueckuebermittlung: 
	{
		bescheid: 
		{
			wert: False,
			alias: String
		},
		artRueckuebermittlung: 
		{
			wert: String,
			alias: String
		},
		schluesselRueckuebermittlung: 
		{
			wert: String,
			alias: String
		},
		adresseRueckuebermittlung: 
		{
			wert: String,
			alias: String
		}
	},
	bundesfinanzamtsnummer: String,
	datenLieferant: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	content: String,
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	}
}