Tax Filing Service

<back to all web services

CreateUmsatzsteuervoranmeldung2021XmlAsync

AsyncUmsatzsteuerVoranmeldung2021

An asynchronous service to create xml content that represents the preliminary VAT return (Umsatzsteuervoranmeldung) for 2021.

Requires Authentication
The following routes are available for this service:
POST/CreateUmsatzsteuervoranmeldung2021XmlAsyncAn asynchronous service to create xml content that represents the preliminary VAT return (Umsatzsteuervoranmeldung) for 2021
<?php namespace dtos;

use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};


/** @description Beim DatenLieferanten handelt es sich um diejenige natürliche Person, welche die Software bedient, bzw. in deren Namen die Software bedient wird,um die Daten zu übersenden (auf den Sendeknopf drückt - NICHT jedoch ein etwaiger Erfüllungsgehilfe). */
// @Api(Description="Beim DatenLieferanten handelt es sich um diejenige natürliche Person, welche die Software bedient, bzw. in deren Namen die Software bedient wird,um die Daten zu übersenden (auf den Sendeknopf drückt - NICHT jedoch ein etwaiger Erfüllungsgehilfe).")
class DatenLieferant implements JsonSerializable
{
    public function __construct(
        /** @description Der Name des Datenlieferants. */
        // @ApiMember(Description="Der Name des Datenlieferants.", IsRequired=true, Name="Name")
        /** @var string */
        public string $name='',

        /** @description Der Straßenname des Datenlieferants. */
        // @ApiMember(Description="Der Straßenname des Datenlieferants.", IsRequired=true, Name="Strasse")
        /** @var string */
        public string $strasse='',

        /** @description Die Postleitzahl des Datenlieferants. */
        // @ApiMember(Description="Die Postleitzahl des Datenlieferants.", IsRequired=true, Name="PLZ")
        /** @var string */
        public string $plz='',

        /** @description Der Ort des Datenlieferants. */
        // @ApiMember(Description="Der Ort des Datenlieferants.", IsRequired=true, Name="Ort")
        /** @var string */
        public string $ort='',

        /** @description Die Telefonnummer (optional) des Datenlieferants. */
        // @ApiMember(Description="Die Telefonnummer (optional) des Datenlieferants.", Name="Telefon")
        /** @var string|null */
        public ?string $telefon=null,

        /** @description Die Email-Adresse (optional) des Datenlieferant. */
        // @ApiMember(Description="Die Email-Adresse (optional) des Datenlieferant.", Name="Email")
        /** @var string|null */
        public ?string $email=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['name'])) $this->name = $o['name'];
        if (isset($o['strasse'])) $this->strasse = $o['strasse'];
        if (isset($o['plz'])) $this->plz = $o['plz'];
        if (isset($o['ort'])) $this->ort = $o['ort'];
        if (isset($o['telefon'])) $this->telefon = $o['telefon'];
        if (isset($o['email'])) $this->email = $o['email'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->name)) $o['name'] = $this->name;
        if (isset($this->strasse)) $o['strasse'] = $this->strasse;
        if (isset($this->plz)) $o['plz'] = $this->plz;
        if (isset($this->ort)) $o['ort'] = $this->ort;
        if (isset($this->telefon)) $o['telefon'] = $this->telefon;
        if (isset($this->email)) $o['email'] = $this->email;
        return empty($o) ? new class(){} : $o;
    }
}

/** @description Stellt einen Steuerberater dar. */
// @Api(Description="Stellt einen Steuerberater dar.")
class Berater implements JsonSerializable
{
    public function __construct(
        /** @description Der Bezeichnung (optional) des Beraters (normalerweise der Name des Beraters Unternehmen). */
        // @ApiMember(Description="Der Bezeichnung (optional) des Beraters (normalerweise der Name des Beraters Unternehmen).", Name="Bezeichnung")
        /** @var string|null */
        public ?string $bezeichnung=null,

        /** @description Der Name (optional) des Beraters. */
        // @ApiMember(Description="Der Name (optional) des Beraters.", Name="Name")
        /** @var string|null */
        public ?string $name=null,

        /** @description Der Vorname (optional) des Beraters. */
        // @ApiMember(Description="Der Vorname (optional) des Beraters.", Name="Vorname")
        /** @var string|null */
        public ?string $vorname=null,

        /** @description Der Namenvorsatz (optional) des Beraters. */
        // @ApiMember(Description="Der Namenvorsatz (optional) des Beraters.", Name="Namensvorsatz")
        /** @var string|null */
        public ?string $namensvorsatz=null,

        /** @description Der Namenzusatz (optional) des Beraters. */
        // @ApiMember(Description="Der Namenzusatz (optional) des Beraters.", Name="Namenszusatz")
        /** @var string|null */
        public ?string $namenszusatz=null,

        /** @description Der Straßenname (optional) des Beraters. */
        // @ApiMember(Description="Der Straßenname (optional) des Beraters.", Name="Str")
        /** @var string|null */
        public ?string $str=null,

        /** @description Die Hausnummer (optional) des Beraters. */
        // @ApiMember(Description="Die Hausnummer (optional) des Beraters.", Name="Hausnummer")
        /** @var string|null */
        public ?string $hausnummer=null,

        /** @description Der Hausnummernzusatz (optional) des Beraters. */
        // @ApiMember(Description="Der Hausnummernzusatz (optional) des Beraters.", Name="HNrZusatz")
        /** @var string|null */
        public ?string $hNrZusatz=null,

        /** @description Der Anschriftenzusatz (optional) des Beraters. */
        // @ApiMember(Description="Der Anschriftenzusatz (optional) des Beraters.", Name="AnschriftenZusatz")
        /** @var string|null */
        public ?string $anschriftenZusatz=null,

        /** @description Der Ort (optional) des Beraters. */
        // @ApiMember(Description="Der Ort (optional) des Beraters.", Name="Ort")
        /** @var string|null */
        public ?string $ort=null,

        /** @description Die Postleitzahl (optional) des Beraters. */
        // @ApiMember(Description="Die Postleitzahl (optional) des Beraters.", Name="PLZ")
        /** @var string|null */
        public ?string $plz=null,

        /** @description Die Auslandspostleitzahl (optional) des Beraters. */
        // @ApiMember(Description="Die Auslandspostleitzahl (optional) des Beraters.", Name="AuslandsPLZ")
        /** @var string|null */
        public ?string $auslandsPLZ=null,

        /** @description Der Ländername (falls Anschrift im Ausland) des Beraters - optional. Der Ländername des Beraters kann mit 1-20 alphanumerischen Zeichen geliefert werden. */
        // @ApiMember(Description="Der Ländername (falls Anschrift im Ausland) des Beraters - optional. \nDer Ländername des Beraters kann mit 1-20 alphanumerischen Zeichen geliefert werden.", Name="Land")
        /** @var string|null */
        public ?string $land=null,

        /** @description Der Ort des Postfaches (optional) des Beraters. */
        // @ApiMember(Description="Der Ort des Postfaches (optional) des Beraters.", Name="PostfachOrt")
        /** @var string|null */
        public ?string $postfachOrt=null,

        /** @description Das Postfach (optional) des Beraters. */
        // @ApiMember(Description="Das Postfach (optional) des Beraters.", Name="Postfach")
        /** @var string|null */
        public ?string $postfach=null,

        /** @description Die Postleitzahl (optional) des Beraters. */
        // @ApiMember(Description="Die Postleitzahl (optional) des Beraters.", Name="PostfachPLZ")
        /** @var string|null */
        public ?string $postfachPLZ=null,

        /** @description Die Großkundenpostleitzahl (optional) des Beraters. */
        // @ApiMember(Description="Die Großkundenpostleitzahl (optional) des Beraters.", Name="GKPLZ")
        /** @var string|null */
        public ?string $gkplz=null,

        /** @description Die Telefonnummer (optional) des Beraters. */
        // @ApiMember(Description="Die Telefonnummer (optional) des Beraters.", Name="Telefon")
        /** @var string|null */
        public ?string $telefon=null,

        /** @description Die Emailadresse (optional) des Beraters. */
        // @ApiMember(Description="Die Emailadresse (optional) des Beraters.", Name="Email")
        /** @var string|null */
        public ?string $email=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['bezeichnung'])) $this->bezeichnung = $o['bezeichnung'];
        if (isset($o['name'])) $this->name = $o['name'];
        if (isset($o['vorname'])) $this->vorname = $o['vorname'];
        if (isset($o['namensvorsatz'])) $this->namensvorsatz = $o['namensvorsatz'];
        if (isset($o['namenszusatz'])) $this->namenszusatz = $o['namenszusatz'];
        if (isset($o['str'])) $this->str = $o['str'];
        if (isset($o['hausnummer'])) $this->hausnummer = $o['hausnummer'];
        if (isset($o['hNrZusatz'])) $this->hNrZusatz = $o['hNrZusatz'];
        if (isset($o['anschriftenZusatz'])) $this->anschriftenZusatz = $o['anschriftenZusatz'];
        if (isset($o['ort'])) $this->ort = $o['ort'];
        if (isset($o['plz'])) $this->plz = $o['plz'];
        if (isset($o['auslandsPLZ'])) $this->auslandsPLZ = $o['auslandsPLZ'];
        if (isset($o['land'])) $this->land = $o['land'];
        if (isset($o['postfachOrt'])) $this->postfachOrt = $o['postfachOrt'];
        if (isset($o['postfach'])) $this->postfach = $o['postfach'];
        if (isset($o['postfachPLZ'])) $this->postfachPLZ = $o['postfachPLZ'];
        if (isset($o['gkplz'])) $this->gkplz = $o['gkplz'];
        if (isset($o['telefon'])) $this->telefon = $o['telefon'];
        if (isset($o['email'])) $this->email = $o['email'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->bezeichnung)) $o['bezeichnung'] = $this->bezeichnung;
        if (isset($this->name)) $o['name'] = $this->name;
        if (isset($this->vorname)) $o['vorname'] = $this->vorname;
        if (isset($this->namensvorsatz)) $o['namensvorsatz'] = $this->namensvorsatz;
        if (isset($this->namenszusatz)) $o['namenszusatz'] = $this->namenszusatz;
        if (isset($this->str)) $o['str'] = $this->str;
        if (isset($this->hausnummer)) $o['hausnummer'] = $this->hausnummer;
        if (isset($this->hNrZusatz)) $o['hNrZusatz'] = $this->hNrZusatz;
        if (isset($this->anschriftenZusatz)) $o['anschriftenZusatz'] = $this->anschriftenZusatz;
        if (isset($this->ort)) $o['ort'] = $this->ort;
        if (isset($this->plz)) $o['plz'] = $this->plz;
        if (isset($this->auslandsPLZ)) $o['auslandsPLZ'] = $this->auslandsPLZ;
        if (isset($this->land)) $o['land'] = $this->land;
        if (isset($this->postfachOrt)) $o['postfachOrt'] = $this->postfachOrt;
        if (isset($this->postfach)) $o['postfach'] = $this->postfach;
        if (isset($this->postfachPLZ)) $o['postfachPLZ'] = $this->postfachPLZ;
        if (isset($this->gkplz)) $o['gkplz'] = $this->gkplz;
        if (isset($this->telefon)) $o['telefon'] = $this->telefon;
        if (isset($this->email)) $o['email'] = $this->email;
        return empty($o) ? new class(){} : $o;
    }
}

/** @description Stellt einen Mandant dar. */
// @Api(Description="Stellt einen Mandant dar.")
class Mandant implements JsonSerializable
{
    public function __construct(
        /** @description Der Name (optional) des Mandanten. */
        // @ApiMember(Description="Der Name (optional) des Mandanten.", Name="Name")
        /** @var string|null */
        public ?string $name=null,

        /** @description Der Vorname (optional) des Mandanten. */
        // @ApiMember(Description="Der Vorname (optional) des Mandanten.", Name="Vorname")
        /** @var string|null */
        public ?string $vorname=null,

        /** @description Die Mandantennummer (optional) des Mandanten. */
        // @ApiMember(Description="Die Mandantennummer (optional) des Mandanten.", Name="MandantenNr")
        /** @var string|null */
        public ?string $mandantenNr=null,

        /** @description Das Bearbeiterkennzeichen (optional) des Mandanten. */
        // @ApiMember(Description="Das Bearbeiterkennzeichen (optional) des Mandanten.", Name="Bearbeiterkennzeichen")
        /** @var string|null */
        public ?string $bearbeiterkennzeichen=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['name'])) $this->name = $o['name'];
        if (isset($o['vorname'])) $this->vorname = $o['vorname'];
        if (isset($o['mandantenNr'])) $this->mandantenNr = $o['mandantenNr'];
        if (isset($o['bearbeiterkennzeichen'])) $this->bearbeiterkennzeichen = $o['bearbeiterkennzeichen'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->name)) $o['name'] = $this->name;
        if (isset($this->vorname)) $o['vorname'] = $this->vorname;
        if (isset($this->mandantenNr)) $o['mandantenNr'] = $this->mandantenNr;
        if (isset($this->bearbeiterkennzeichen)) $o['bearbeiterkennzeichen'] = $this->bearbeiterkennzeichen;
        return empty($o) ? new class(){} : $o;
    }
}

/** @description Stellt einen Unternehmer dar. */
// @Api(Description="Stellt einen Unternehmer dar.")
class Unternehmer implements JsonSerializable
{
    public function __construct(
        /** @description Der Bezeichnung (optional) des Unternehmers (normalerweise der Name des Unternehmers Unternehmen). */
        // @ApiMember(Description="Der Bezeichnung (optional) des Unternehmers (normalerweise der Name des Unternehmers Unternehmen).", Name="Bezeichnung")
        /** @var string|null */
        public ?string $bezeichnung=null,

        /** @description Der Name (optional) des Unternehmers. */
        // @ApiMember(Description="Der Name (optional) des Unternehmers.", Name="Name")
        /** @var string|null */
        public ?string $name=null,

        /** @description Der Vorname (optional) des Unternehmers. */
        // @ApiMember(Description="Der Vorname (optional) des Unternehmers.", Name="Vorname")
        /** @var string|null */
        public ?string $vorname=null,

        /** @description Der Namenvorsatz (optional) des Unternehmers. */
        // @ApiMember(Description="Der Namenvorsatz (optional) des Unternehmers.", Name="Namensvorsatz")
        /** @var string|null */
        public ?string $namensvorsatz=null,

        /** @description Der Namenzusatz (optional) des Unternehmers. */
        // @ApiMember(Description="Der Namenzusatz (optional) des Unternehmers.", Name="Namenszusatz")
        /** @var string|null */
        public ?string $namenszusatz=null,

        /** @description Der Straßenname (optional) des Unternehmers. */
        // @ApiMember(Description="Der Straßenname (optional) des Unternehmers.", Name="Str")
        /** @var string|null */
        public ?string $str=null,

        /** @description Die Hausnummer (optional) des Unternehmers. */
        // @ApiMember(Description="Die Hausnummer (optional) des Unternehmers.", Name="Hausnummer")
        /** @var string|null */
        public ?string $hausnummer=null,

        /** @description Der Hausnummernzusatz (optional) des Unternehmers. */
        // @ApiMember(Description="Der Hausnummernzusatz (optional) des Unternehmers.", Name="HNrZusatz")
        /** @var string|null */
        public ?string $hNrZusatz=null,

        /** @description Der Anschriftenzusatz (optional) des Unternehmers. */
        // @ApiMember(Description="Der Anschriftenzusatz (optional) des Unternehmers.", Name="AnschriftenZusatz")
        /** @var string|null */
        public ?string $anschriftenZusatz=null,

        /** @description Der Ort (optional) des Unternehmers. */
        // @ApiMember(Description="Der Ort (optional) des Unternehmers.", Name="Ort")
        /** @var string|null */
        public ?string $ort=null,

        /** @description Die Postleitzahl (optional) des Unternehmers. */
        // @ApiMember(Description="Die Postleitzahl (optional) des Unternehmers.", Name="PLZ")
        /** @var string|null */
        public ?string $plz=null,

        /** @description Die Auslandspostleitzahl (optional) des Unternehmers. */
        // @ApiMember(Description="Die Auslandspostleitzahl (optional) des Unternehmers.", Name="AuslandsPLZ")
        /** @var string|null */
        public ?string $auslandsPLZ=null,

        /** @description Der Ländername (falls Anschrift im Ausland) des Unternehmers - optional. Der Ländername des Unternehmers kann mit 1-20 alphanumerischen Zeichen geliefert werden. */
        // @ApiMember(Description="Der Ländername (falls Anschrift im Ausland) des Unternehmers - optional. \nDer Ländername des Unternehmers kann mit 1-20 alphanumerischen Zeichen geliefert werden.", Name="Land")
        /** @var string|null */
        public ?string $land=null,

        /** @description Der Ort des Postfaches (optional) des Unternehmers. */
        // @ApiMember(Description="Der Ort des Postfaches (optional) des Unternehmers.", Name="PostfachOrt")
        /** @var string|null */
        public ?string $postfachOrt=null,

        /** @description Das Postfach (optional) des Unternehmers. */
        // @ApiMember(Description="Das Postfach (optional) des Unternehmers.", Name="Postfach")
        /** @var string|null */
        public ?string $postfach=null,

        /** @description Die Postleitzahl (optional) des Unternehmers. */
        // @ApiMember(Description="Die Postleitzahl (optional) des Unternehmers.", Name="PostfachPLZ")
        /** @var string|null */
        public ?string $postfachPLZ=null,

        /** @description Die Großkundenpostleitzahl (optional) des Unternehmers. */
        // @ApiMember(Description="Die Großkundenpostleitzahl (optional) des Unternehmers.", Name="GKPLZ")
        /** @var string|null */
        public ?string $gkplz=null,

        /** @description Die Telefonnummer (optional) des Unternehmers. */
        // @ApiMember(Description="Die Telefonnummer (optional) des Unternehmers.", Name="Telefon")
        /** @var string|null */
        public ?string $telefon=null,

        /** @description Die Emailadresse (optional) des Unternehmers. */
        // @ApiMember(Description="Die Emailadresse (optional) des Unternehmers.", Name="Email")
        /** @var string|null */
        public ?string $email=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['bezeichnung'])) $this->bezeichnung = $o['bezeichnung'];
        if (isset($o['name'])) $this->name = $o['name'];
        if (isset($o['vorname'])) $this->vorname = $o['vorname'];
        if (isset($o['namensvorsatz'])) $this->namensvorsatz = $o['namensvorsatz'];
        if (isset($o['namenszusatz'])) $this->namenszusatz = $o['namenszusatz'];
        if (isset($o['str'])) $this->str = $o['str'];
        if (isset($o['hausnummer'])) $this->hausnummer = $o['hausnummer'];
        if (isset($o['hNrZusatz'])) $this->hNrZusatz = $o['hNrZusatz'];
        if (isset($o['anschriftenZusatz'])) $this->anschriftenZusatz = $o['anschriftenZusatz'];
        if (isset($o['ort'])) $this->ort = $o['ort'];
        if (isset($o['plz'])) $this->plz = $o['plz'];
        if (isset($o['auslandsPLZ'])) $this->auslandsPLZ = $o['auslandsPLZ'];
        if (isset($o['land'])) $this->land = $o['land'];
        if (isset($o['postfachOrt'])) $this->postfachOrt = $o['postfachOrt'];
        if (isset($o['postfach'])) $this->postfach = $o['postfach'];
        if (isset($o['postfachPLZ'])) $this->postfachPLZ = $o['postfachPLZ'];
        if (isset($o['gkplz'])) $this->gkplz = $o['gkplz'];
        if (isset($o['telefon'])) $this->telefon = $o['telefon'];
        if (isset($o['email'])) $this->email = $o['email'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->bezeichnung)) $o['bezeichnung'] = $this->bezeichnung;
        if (isset($this->name)) $o['name'] = $this->name;
        if (isset($this->vorname)) $o['vorname'] = $this->vorname;
        if (isset($this->namensvorsatz)) $o['namensvorsatz'] = $this->namensvorsatz;
        if (isset($this->namenszusatz)) $o['namenszusatz'] = $this->namenszusatz;
        if (isset($this->str)) $o['str'] = $this->str;
        if (isset($this->hausnummer)) $o['hausnummer'] = $this->hausnummer;
        if (isset($this->hNrZusatz)) $o['hNrZusatz'] = $this->hNrZusatz;
        if (isset($this->anschriftenZusatz)) $o['anschriftenZusatz'] = $this->anschriftenZusatz;
        if (isset($this->ort)) $o['ort'] = $this->ort;
        if (isset($this->plz)) $o['plz'] = $this->plz;
        if (isset($this->auslandsPLZ)) $o['auslandsPLZ'] = $this->auslandsPLZ;
        if (isset($this->land)) $o['land'] = $this->land;
        if (isset($this->postfachOrt)) $o['postfachOrt'] = $this->postfachOrt;
        if (isset($this->postfach)) $o['postfach'] = $this->postfach;
        if (isset($this->postfachPLZ)) $o['postfachPLZ'] = $this->postfachPLZ;
        if (isset($this->gkplz)) $o['gkplz'] = $this->gkplz;
        if (isset($this->telefon)) $o['telefon'] = $this->telefon;
        if (isset($this->email)) $o['email'] = $this->email;
        return empty($o) ? new class(){} : $o;
    }
}

/** @description Stellt eine Anbindung zum ELSTER Online Portal (EOP) dar. */
// @Api(Description="Stellt eine Anbindung zum ELSTER Online Portal (EOP) dar.")
class EOP implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $transferausgabe=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['transferausgabe'])) $this->transferausgabe = $o['transferausgabe'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->transferausgabe)) $o['transferausgabe'] = $this->transferausgabe;
        return empty($o) ? new class(){} : $o;
    }
}

/** @description reate XML content that represents a VAT registration (Umsatzsteueranmeldung) for 2021. */
// @Api(Description="reate XML content that represents a VAT registration (Umsatzsteueranmeldung) for 2021.")
class CreateUmsatzsteueranmeldung2021XmlBase implements IPost, JsonSerializable
{
    public function __construct(
        /** @description Natürliche Person, welche die Software bedient, bzw. in deren Namen die Software bedient wird, um die Daten zu übersenden (Natural person who operates the software or under whose name the software is operated in order to transmit the data). */
        // @ApiMember(Description="Natürliche Person, welche die Software bedient, bzw. in deren Namen die Software bedient wird, um die Daten zu übersenden (Natural person who operates the software or under whose name the software is operated in order to transmit the data).", IsRequired=true, Name="DatenLieferant")
        /** @var DatenLieferant|null */
        public ?DatenLieferant $datenLieferant=null,

        /** @description Das Datum der Erstellung (Date of creation). */
        // @ApiMember(Description="Das Datum der Erstellung (Date of creation).", IsRequired=true, Name="Erstellungsdatum")
        /** @var DateTime */
        public DateTime $erstellungsdatum=new DateTime(),

        /** @description Der Steuerberater, der den Steuerfall bearbeitet und abgibt (The tax adviser who processes and submits the tax case). */
        // @ApiMember(Description="Der Steuerberater, der den Steuerfall bearbeitet und abgibt (The tax adviser who processes and submits the tax case).", Name="Berater")
        /** @var Berater|null */
        public ?Berater $berater=null,

        /** @description Der Mandant, für den der Steuerfall bearbeitet wird (The client for which the tax case is being processed). */
        // @ApiMember(Description="Der Mandant, für den der Steuerfall bearbeitet wird (The client for which the tax case is being processed).", Name="Mandant")
        /** @var Mandant|null */
        public ?Mandant $mandant=null,

        /** @description Der natürliche oder jüritische Person, der den Steuerfall bearbeitet und abgibt (The natural or legal person who processes and submits the tax case). */
        // @ApiMember(Description="Der natürliche oder jüritische Person, der den Steuerfall bearbeitet und abgibt (The natural or legal person who processes and submits the tax case).", Name="Unternehmer")
        /** @var Unternehmer|null */
        public ?Unternehmer $unternehmer=null,

        /** @description Die vierstellige Bundesfinanzamtsnummer des empfangenden Finanzamtes (The four-digit federal tax office number of the receiving tax office). */
        // @ApiMember(Description="Die vierstellige Bundesfinanzamtsnummer des empfangenden Finanzamtes (The four-digit federal tax office number of the receiving tax office).", IsRequired=true, Name="Bundesfinanzamtsnummer")
        /** @var string */
        public string $bundesfinanzamtsnummer='',

        /** @description Die Anbindung zum ELSTER Online Portal (EOP). */
        // @ApiMember(Description="Die Anbindung zum ELSTER Online Portal (EOP).", Name="EOP")
        /** @var EOP|null */
        public ?EOP $eop=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['datenLieferant'])) $this->datenLieferant = JsonConverters::from('DatenLieferant', $o['datenLieferant']);
        if (isset($o['erstellungsdatum'])) $this->erstellungsdatum = JsonConverters::from('DateTime', $o['erstellungsdatum']);
        if (isset($o['berater'])) $this->berater = JsonConverters::from('Berater', $o['berater']);
        if (isset($o['mandant'])) $this->mandant = JsonConverters::from('Mandant', $o['mandant']);
        if (isset($o['unternehmer'])) $this->unternehmer = JsonConverters::from('Unternehmer', $o['unternehmer']);
        if (isset($o['bundesfinanzamtsnummer'])) $this->bundesfinanzamtsnummer = $o['bundesfinanzamtsnummer'];
        if (isset($o['eop'])) $this->eop = JsonConverters::from('EOP', $o['eop']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->datenLieferant)) $o['datenLieferant'] = JsonConverters::to('DatenLieferant', $this->datenLieferant);
        if (isset($this->erstellungsdatum)) $o['erstellungsdatum'] = JsonConverters::to('DateTime', $this->erstellungsdatum);
        if (isset($this->berater)) $o['berater'] = JsonConverters::to('Berater', $this->berater);
        if (isset($this->mandant)) $o['mandant'] = JsonConverters::to('Mandant', $this->mandant);
        if (isset($this->unternehmer)) $o['unternehmer'] = JsonConverters::to('Unternehmer', $this->unternehmer);
        if (isset($this->bundesfinanzamtsnummer)) $o['bundesfinanzamtsnummer'] = $this->bundesfinanzamtsnummer;
        if (isset($this->eop)) $o['eop'] = JsonConverters::to('EOP', $this->eop);
        return empty($o) ? new class(){} : $o;
    }
}

/** @description Stellt den Zeitraum für eine Anmeldung dar */
enum AnmeldungZeitraum : int
{
    case ZR01 = 1;
    case ZR02 = 2;
    case ZR03 = 3;
    case ZR04 = 4;
    case ZR05 = 5;
    case ZR06 = 6;
    case ZR07 = 7;
    case ZR08 = 8;
    case ZR09 = 9;
    case ZR10 = 10;
    case ZR11 = 11;
    case ZR12 = 12;
    case ZR41 = 41;
    case ZR42 = 42;
    case ZR43 = 43;
    case ZR44 = 44;
}

/** @description Stellt den Pflichtkennzahl Kz09 dar, welche die Angabe diverser Informationen ermöglicht. Beispiele: 74931 74931*Name Berater*Berufsbezeichnung*** 74931*****Name Mandant 74931***Tel.Nr:Berater/Vorwahl*Tel.Nr:Berater/Anschluss*Name Mandant */
// @Api(Description="Stellt den Pflichtkennzahl Kz09 dar, welche die Angabe diverser Informationen ermöglicht. Beispiele: 74931 74931*Name Berater*Berufsbezeichnung*** 74931*****Name Mandant 74931***Tel.Nr:Berater/Vorwahl*Tel.Nr:Berater/Anschluss*Name Mandant")
class Kz09 implements JsonSerializable
{
    public function __construct(
        /** @description Die Bezeichnung des Softwareherstellers (Pflicht), über dessen Software die Steuererklärung oder (Vor)anmeldung abgegeben wird. Die Bezeichnung muss 5-stellig sein. */
        // @ApiMember(Description="Die Bezeichnung des Softwareherstellers (Pflicht), über dessen Software die Steuererklärung oder (Vor)anmeldung abgegeben wird. Die Bezeichnung muss 5-stellig sein.", IsRequired=true, Name="HerstellerId")
        /** @var int */
        public int $herstellerId=0,

        /** @description Der Name des Beraters, welcher die Steuererklärung oder (Vor)anmeldung abgegeben wird. Das Name des Beraters kann von 0- bis 85-stellig sein. */
        // @ApiMember(Description="Der Name des Beraters, welcher die Steuererklärung oder (Vor)anmeldung abgegeben wird. Das Name des Beraters kann von 0- bis 85-stellig sein.", Name="BeraterName")
        /** @var string|null */
        public ?string $beraterName=null,

        /** @description Die Berufbezeichnung des Beraters. Die Berufbezeichnung des Beraterskann von 0- bis 85-stellig sein. */
        // @ApiMember(Description="Die Berufbezeichnung des Beraters. Die Berufbezeichnung des Beraterskann von 0- bis 85-stellig sein.", Name="Berufsbezeichnung")
        /** @var string|null */
        public ?string $berufsbezeichnung=null,

        /** @description Die Telefonnummervorwahl des Beraters. Die Telefonnummervorwahl des Beraters kann von 0- bis 85-stellig sein. */
        // @ApiMember(Description="Die Telefonnummervorwahl des Beraters. Die Telefonnummervorwahl des Beraters kann von 0- bis 85-stellig sein.", Name="Berufsbezeichnung")
        /** @var string|null */
        public ?string $beraterTelNrVorwahl=null,

        /** @description Der Telefonnummeranschluss des Beraters. Der Telefonnummeranschluss des Beraters kann von 0- bis 85-stellig sein. */
        // @ApiMember(Description="Der Telefonnummeranschluss des Beraters. Der Telefonnummeranschluss des Beraters kann von 0- bis 85-stellig sein.", Name="BeraterTelNrAnschluss")
        /** @var string|null */
        public ?string $beraterTelNrAnschluss=null,

        /** @description Der Name des Mandanten. Der Name des Mandanten kann von 0- bis 85-stellig sein. */
        // @ApiMember(Description="Der Name des Mandanten. Der Name des Mandanten kann von 0- bis 85-stellig sein.", Name="MandantName")
        /** @var string|null */
        public ?string $mandantName=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['herstellerId'])) $this->herstellerId = $o['herstellerId'];
        if (isset($o['beraterName'])) $this->beraterName = $o['beraterName'];
        if (isset($o['berufsbezeichnung'])) $this->berufsbezeichnung = $o['berufsbezeichnung'];
        if (isset($o['beraterTelNrVorwahl'])) $this->beraterTelNrVorwahl = $o['beraterTelNrVorwahl'];
        if (isset($o['beraterTelNrAnschluss'])) $this->beraterTelNrAnschluss = $o['beraterTelNrAnschluss'];
        if (isset($o['mandantName'])) $this->mandantName = $o['mandantName'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->herstellerId)) $o['herstellerId'] = $this->herstellerId;
        if (isset($this->beraterName)) $o['beraterName'] = $this->beraterName;
        if (isset($this->berufsbezeichnung)) $o['berufsbezeichnung'] = $this->berufsbezeichnung;
        if (isset($this->beraterTelNrVorwahl)) $o['beraterTelNrVorwahl'] = $this->beraterTelNrVorwahl;
        if (isset($this->beraterTelNrAnschluss)) $o['beraterTelNrAnschluss'] = $this->beraterTelNrAnschluss;
        if (isset($this->mandantName)) $o['mandantName'] = $this->mandantName;
        return empty($o) ? new class(){} : $o;
    }
}

/** @description Specifies an integer data type with limits and a specialized string representation */
// @Api(Description="Specifies an integer data type with limits and a specialized string representation")
class Ganzzahl implements JsonSerializable
{
    public function __construct(
        /** @description The intrinsic integer value. */
        // @ApiMember(Description="The intrinsic integer value.")
        /** @var int */
        public int $wert=0
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['wert'])) $this->wert = $o['wert'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->wert)) $o['wert'] = $this->wert;
        return empty($o) ? new class(){} : $o;
    }
}

/** @description Represents an integer data type whose value has a maximum length of 1 digit. Minus sign allowed. */
// @Api(Description="Represents an integer data type whose value has a maximum length of 1 digit. Minus sign allowed.")
class Ganzzahl1EN extends Ganzzahl implements JsonSerializable
{
    /**
     * @param int $wert
     */
    public function __construct(
        int $wert=0
    ) {
        parent::__construct($wert);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['wert'])) $this->wert = $o['wert'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->wert)) $o['wert'] = $this->wert;
        return empty($o) ? new class(){} : $o;
    }
}

/** @description 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")
class GrossGeldBetragOhneCent implements JsonSerializable
{
    public function __construct(
        /** @description The intrinsic currency value. */
        // @ApiMember(Description="The intrinsic currency value.")
        /** @var int */
        public int $wert=0
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['wert'])) $this->wert = $o['wert'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->wert)) $o['wert'] = $this->wert;
        return empty($o) ? new class(){} : $o;
    }
}

/** @description Represents an amount of money without cents whose value has a maximum length of 13 digits. That is, 1 to 13 digits. Minus sign allowed. */
// @Api(Description="Represents an amount of money without cents whose value has a maximum length of 13 digits. That is, 1 to 13 digits. Minus sign allowed.")
class GeldBetragOhneCent13EN extends GrossGeldBetragOhneCent implements JsonSerializable
{
    /**
     * @param int $wert
     */
    public function __construct(
        int $wert=0
    ) {
        parent::__construct($wert);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['wert'])) $this->wert = $o['wert'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->wert)) $o['wert'] = $this->wert;
        return empty($o) ? new class(){} : $o;
    }
}

/** @description 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")
class GeldBetragMitCent implements JsonSerializable
{
    public function __construct(
        /** @description The intrinsic currency value. */
        // @ApiMember(Description="The intrinsic currency value.")
        /** @var float */
        public float $wert=0.0
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['wert'])) $this->wert = $o['wert'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->wert)) $o['wert'] = $this->wert;
        return empty($o) ? new class(){} : $o;
    }
}

/** @description Represents an amount of money with cents whose value has a maximum length of 13 digits. That is, 1 to 11 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 13 digits. That is, 1 to 11 digits before the decimal separator and 2 digits after the decimal separator. Minus sign allowed.")
class GeldBetragMitCent11EN extends GeldBetragMitCent implements JsonSerializable
{
    /**
     * @param float $wert
     */
    public function __construct(
        float $wert=0.0
    ) {
        parent::__construct($wert);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['wert'])) $this->wert = $o['wert'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->wert)) $o['wert'] = $this->wert;
        return empty($o) ? new class(){} : $o;
    }
}

/** @description Represents an unsigned amount of money with cents whose value has a maximum length of 13 digits. That is, 1 to 11 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 13 digits. That is, 1 to 11 digits before the decimal separator and 2 digits after the decimal separator. Minus sign NOT allowed.")
class PositiverGeldBetragMitCent11EN extends GeldBetragMitCent implements JsonSerializable
{
    /**
     * @param float $wert
     */
    public function __construct(
        float $wert=0.0
    ) {
        parent::__construct($wert);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['wert'])) $this->wert = $o['wert'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->wert)) $o['wert'] = $this->wert;
        return empty($o) ? new class(){} : $o;
    }
}

/** @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. */
// @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 PositiverGeldBetragMitCent13EN extends GeldBetragMitCent implements JsonSerializable
{
    /**
     * @param float $wert
     */
    public function __construct(
        float $wert=0.0
    ) {
        parent::__construct($wert);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['wert'])) $this->wert = $o['wert'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->wert)) $o['wert'] = $this->wert;
        return empty($o) ? new class(){} : $o;
    }
}

/** @description Represents an unsigned amount of money without cents whose value has a maximum length of 13 digits. That is, 1 to 13 digits. Minus sign NOT allowed. */
// @Api(Description="Represents an unsigned amount of money without cents whose value has a maximum length of 13 digits. That is, 1 to 13 digits. Minus sign NOT allowed.")
class PositiverGeldBetragOhneCent13EN extends GrossGeldBetragOhneCent implements JsonSerializable
{
    /**
     * @param int $wert
     */
    public function __construct(
        int $wert=0
    ) {
        parent::__construct($wert);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['wert'])) $this->wert = $o['wert'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->wert)) $o['wert'] = $this->wert;
        return empty($o) ? new class(){} : $o;
    }
}

/** @description Umsatzsteuervoranmeldung für 2021 (Preliminary VAT declaration for 2021). */
// @Api(Description="Umsatzsteuervoranmeldung für 2021 (Preliminary VAT declaration for 2021).")
class Umsatzsteuervoranmeldung2021 implements JsonSerializable
{
    public function __construct(
        /** @description Das Jahr der Veranlagung. */
        // @ApiMember(Description="Das Jahr der Veranlagung.", IsRequired=true, Name="Jahr")
        /** @var int */
        public int $jahr=0,

        /** @description Anmeldungszeitraum. */
        // @ApiMember(Description="Anmeldungszeitraum.", IsRequired=true, Name="Zeitraum")
        /** @var AnmeldungZeitraum|null */
        public ?AnmeldungZeitraum $zeitraum=null,

        /** @description Steuernummer */
        // @ApiMember(Description="Steuernummer", IsRequired=true, Name="Steuernummer")
        /** @var string */
        public string $steuernummer='',

        /** @description Pflichtkennzahl, welche die Angabe diverser Informationen ermöglicht. */
        // @ApiMember(Description="Pflichtkennzahl, welche die Angabe diverser Informationen ermöglicht.", IsRequired=true, Name="Kz09")
        /** @var Kz09|null */
        public ?Kz09 $kz09=null,

        /** @description Berichtigte Anmeldung */
        // @ApiMember(Description="Berichtigte Anmeldung", Name="Kz10")
        /** @var Ganzzahl1EN|null */
        public ?Ganzzahl1EN $kz10=null,

        /** @description Nicht steuerbare sonstige Leistungen gemäß § 18b Satz 1 Nummer 2 UStG */
        // @ApiMember(Description="Nicht steuerbare sonstige Leistungen gemäß § 18b Satz 1 Nummer 2 UStG", Name="Kz21")
        /** @var GeldBetragOhneCent13EN|null */
        public ?GeldBetragOhneCent13EN $kz21=null,

        /** @description Belege */
        // @ApiMember(Description="Belege", Name="Kz22")
        /** @var Ganzzahl1EN|null */
        public ?Ganzzahl1EN $kz22=null,

        /** @description Über die Angaben in der Steueranmeldung hinaus sind weitere oder abweichende Angaben oder Sachverhalte zu berücksichtigen */
        // @ApiMember(Description="Über die Angaben in der Steueranmeldung hinaus sind weitere oder abweichende Angaben oder Sachverhalte zu berücksichtigen", Name="Kz23")
        /** @var Ganzzahl1EN|null */
        public ?Ganzzahl1EN $kz23=null,

        /** @description Ergänzende Angaben zur Steueranmeldung */
        // @ApiMember(Description="Ergänzende Angaben zur Steueranmeldung", Name="Kz23_Begruendung")
        /** @var string|null */
        public ?string $kz23_Begruendung=null,

        /** @description Das SEPA-Lastschriftmandat wird ausnahmsweise (zum Beispiel wegen Verrechnungswünschen) für diesen Voranmeldungszeitraum widerrufen (falls ja, bitte eine 1 eintragen). Ein gegebenenfalls verbleibender Restbetrag ist gesondert zu entrichten. */
        // @ApiMember(Description="Das SEPA-Lastschriftmandat wird ausnahmsweise (zum Beispiel wegen Verrechnungswünschen) für diesen Voranmeldungszeitraum widerrufen (falls ja, bitte eine 1 eintragen). Ein gegebenenfalls verbleibender Restbetrag ist gesondert zu entrichten.", Name="Kz26")
        /** @var Ganzzahl1EN|null */
        public ?Ganzzahl1EN $kz26=null,

        /** @description Verrechnung des Erstattungsbetrags erwünscht / Erstattungsbetrag ist abgetreten (falls ja, bitte eine 1 eintragen). */
        // @ApiMember(Description="Verrechnung des Erstattungsbetrags erwünscht / Erstattungsbetrag ist abgetreten (falls ja, bitte eine 1 eintragen).", Name="Kz29")
        /** @var Ganzzahl1EN|null */
        public ?Ganzzahl1EN $kz29=null,

        /** @description zu anderen Steuersätzen (Bemessungsgrundlage) */
        // @ApiMember(Description="zu anderen Steuersätzen (Bemessungsgrundlage)", Name="Kz35")
        /** @var GeldBetragOhneCent13EN|null */
        public ?GeldBetragOhneCent13EN $kz35=null,

        /** @description zu anderen Steuersätzen (Steuer) */
        // @ApiMember(Description="zu anderen Steuersätzen (Steuer)", Name="Kz36")
        /** @var GeldBetragMitCent11EN|null */
        public ?GeldBetragMitCent11EN $kz36=null,

        /** @description Minderung der abziehbaren Vorsteuerbeträge (in der Zeile 55 aus Rechnungen von anderen Unternehmen (§ 15 Absatz 1 Satz 1 Nummer 1 UStG) sowie in den Zeilen 59 und 60 enthalten) */
        // @ApiMember(Description="Minderung der abziehbaren Vorsteuerbeträge (in der Zeile 55 aus Rechnungen von anderen Unternehmen (§ 15 Absatz 1 Satz 1 Nummer 1 UStG) sowie in den Zeilen 59 und 60 enthalten)", Name="Kz37")
        /** @var PositiverGeldBetragMitCent11EN|null */
        public ?PositiverGeldBetragMitCent11EN $kz37=null,

        /** @description Abzug der festgesetzten Sondervorauszahlung für Dauerfristverlängerung (in der Regel nur in der letzten Voranmeldung des Besteuerungszeitraums auszufüllen) */
        // @ApiMember(Description="Abzug der festgesetzten Sondervorauszahlung für Dauerfristverlängerung (in der Regel nur in der letzten Voranmeldung des Besteuerungszeitraums auszufüllen)", Name="Kz39")
        /** @var PositiverGeldBetragMitCent13EN|null */
        public ?PositiverGeldBetragMitCent13EN $kz39=null,

        /** @description Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) an Abnehmer mit Umsatzsteuer-Identifikationsnummer */
        // @ApiMember(Description="Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) an Abnehmer mit Umsatzsteuer-Identifikationsnummer", Name="Kz41")
        /** @var GeldBetragOhneCent13EN|null */
        public ?GeldBetragOhneCent13EN $kz41=null,

        /** @description Lieferungen des ersten Abnehmers bei innergemeinschaftlichen Dreiecksgeschäften (§ 25b UStG) */
        // @ApiMember(Description="Lieferungen des ersten Abnehmers bei innergemeinschaftlichen Dreiecksgeschäften (§ 25b UStG)", Name="Kz42")
        /** @var GeldBetragOhneCent13EN|null */
        public ?GeldBetragOhneCent13EN $kz42=null,

        /** @description Weitere steuerfreie Umsätze mit Vorsteuerabzug (zum Beispiel Ausfuhrlieferungen, Umsätze nach § 4 Nummer 2 bis 7 UStG) */
        // @ApiMember(Description="Weitere steuerfreie Umsätze mit Vorsteuerabzug (zum Beispiel Ausfuhrlieferungen, Umsätze nach § 4 Nummer 2 bis 7 UStG)", Name="Kz43")
        /** @var GeldBetragOhneCent13EN|null */
        public ?GeldBetragOhneCent13EN $kz43=null,

        /** @description Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) neuer Fahrzeuge an Abnehmer ohne Umsatzsteuer-Identifikationsnummer */
        // @ApiMember(Description="Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) neuer Fahrzeuge an Abnehmer ohne Umsatzsteuer-Identifikationsnummer", Name="Kz44")
        /** @var GeldBetragOhneCent13EN|null */
        public ?GeldBetragOhneCent13EN $kz44=null,

        /** @description Übrige nicht steuerbare Umsätze (Leistungsort nicht im Inland) */
        // @ApiMember(Description="Übrige nicht steuerbare Umsätze (Leistungsort nicht im Inland)", Name="Kz45")
        /** @var GeldBetragOhneCent13EN|null */
        public ?GeldBetragOhneCent13EN $kz45=null,

        /** @description Sonstige Leistungen nach § 3a Absatz 2 UStG eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (§ 13b Absatz 1 UStG) (Bemessungsgrundlage) */
        // @ApiMember(Description="Sonstige Leistungen nach § 3a Absatz 2 UStG eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (§ 13b Absatz 1 UStG) (Bemessungsgrundlage)", Name="Kz46")
        /** @var GeldBetragOhneCent13EN|null */
        public ?GeldBetragOhneCent13EN $kz46=null,

        /** @description Sonstige Leistungen nach § 3a Absatz 2 UStG eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (§ 13b Absatz 1 UStG) (Steuer) */
        // @ApiMember(Description="Sonstige Leistungen nach § 3a Absatz 2 UStG eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (§ 13b Absatz 1 UStG) (Steuer)", Name="Kz47")
        /** @var GeldBetragMitCent11EN|null */
        public ?GeldBetragMitCent11EN $kz47=null,

        /** @description Steuerfreie Umsätze ohne Vorsteuerabzug (zum Beispiel Umsätze nach § 4 Nummer 8 bis 29 UStG) */
        // @ApiMember(Description="Steuerfreie Umsätze ohne Vorsteuerabzug (zum Beispiel Umsätze nach § 4 Nummer 8 bis 29 UStG)", Name="Kz48")
        /** @var GeldBetragOhneCent13EN|null */
        public ?GeldBetragOhneCent13EN $kz48=null,

        /** @description Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) neuer Fahrzeuge außerhalb eines Unternehmens (§ 2a UStG) */
        // @ApiMember(Description="Innergemeinschaftliche Lieferungen (§ 4 Nummer 1 Buchstabe b UStG) neuer Fahrzeuge außerhalb eines Unternehmens (§ 2a UStG)", Name="Kz49")
        /** @var GeldBetragOhneCent13EN|null */
        public ?GeldBetragOhneCent13EN $kz49=null,

        /** @description Minderung der Bemessungsgrundlage (in den Zeilen 20 bis 24 enthalten) */
        // @ApiMember(Description="Minderung der Bemessungsgrundlage (in den Zeilen 20 bis 24 enthalten)", Name="Kz50")
        /** @var PositiverGeldBetragOhneCent13EN|null */
        public ?PositiverGeldBetragOhneCent13EN $kz50=null,

        /** @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) */
        // @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="Kz59")
        /** @var GeldBetragMitCent11EN|null */
        public ?GeldBetragMitCent11EN $kz59=null,

        /** @description Steuerpflichtige Umsätze des leistenden Unternehmers, für die der Leistungsempfänger die Steuer nach § 13b Absatz 5 UStG schuldet */
        // @ApiMember(Description="Steuerpflichtige Umsätze des leistenden Unternehmers, für die der Leistungsempfänger die Steuer nach § 13b Absatz 5 UStG schuldet", Name="Kz60")
        /** @var GeldBetragOhneCent13EN|null */
        public ?GeldBetragOhneCent13EN $kz60=null,

        /** @description Vorsteuerbeträge aus dem innergemeinschaftlichen Erwerb von Gegenständen (§ 15 Absatz 1 Satz 1 Nummer 3 UStG) */
        // @ApiMember(Description="Vorsteuerbeträge aus dem innergemeinschaftlichen Erwerb von Gegenständen (§ 15 Absatz 1 Satz 1 Nummer 3 UStG)", Name="Kz61")
        /** @var GeldBetragMitCent11EN|null */
        public ?GeldBetragMitCent11EN $kz61=null,

        /** @description Entstandene Einfuhrumsatzsteuer (§ 15 Absatz 1 Satz 1 Nummer 2 UStG)) */
        // @ApiMember(Description="Entstandene Einfuhrumsatzsteuer (§ 15 Absatz 1 Satz 1 Nummer 2 UStG))", Name="Kz62")
        /** @var GeldBetragMitCent11EN|null */
        public ?GeldBetragMitCent11EN $kz62=null,

        /** @description Vorsteuerbeträge, die nach allgemeinen Durchschnittssätzen berechnet sind (§§ 23 und 23a UStG) */
        // @ApiMember(Description="Vorsteuerbeträge, die nach allgemeinen Durchschnittssätzen berechnet sind (§§ 23 und 23a UStG)", Name="Kz63")
        /** @var GeldBetragMitCent11EN|null */
        public ?GeldBetragMitCent11EN $kz63=null,

        /** @description Berichtigung des Vorsteuerabzugs (§ 15a UStG) */
        // @ApiMember(Description="Berichtigung des Vorsteuerabzugs (§ 15a UStG)", Name="Kz64")
        /** @var GeldBetragMitCent11EN|null */
        public ?GeldBetragMitCent11EN $kz64=null,

        /** @description Steuer infolge des Wechsels der Besteuerungsform sowie Nachsteuer auf versteuerte Anzahlungen und ähnlichem wegen Steuersatzänderung */
        // @ApiMember(Description="Steuer infolge des Wechsels der Besteuerungsform sowie Nachsteuer auf versteuerte Anzahlungen und ähnlichem wegen Steuersatzänderung", Name="Kz65")
        /** @var GeldBetragMitCent11EN|null */
        public ?GeldBetragMitCent11EN $kz65=null,

        /** @description Vorsteuerbeträge aus Rechnungen von anderen Unternehmern (§ 15 Absatz 1 Satz 1 Nummer 1 UStG),  aus Leistungen im Sinne des § 13a Absatz 1 Nummer 6 UStG (§ 15 Absatz 1 Satz 1 Nummer 5 UStG) und aus innergemeinschaftlichen Dreiecksgeschäften (§ 25b Absatz 5 UStG) */
        // @ApiMember(Description="Vorsteuerbeträge aus Rechnungen von anderen Unternehmern (§ 15 Absatz 1 Satz 1 Nummer 1 UStG),  aus Leistungen im Sinne des § 13a Absatz 1 Nummer 6 UStG (§ 15 Absatz 1 Satz 1 Nummer 5 UStG) und aus innergemeinschaftlichen Dreiecksgeschäften (§ 25b Absatz 5 UStG)", Name="Kz66")
        /** @var GeldBetragMitCent11EN|null */
        public ?GeldBetragMitCent11EN $kz66=null,

        /** @description 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="Kz67")
        /** @var GeldBetragMitCent11EN|null */
        public ?GeldBetragMitCent11EN $kz67=null,

        /** @description In Rechnungen unrichtig oder unberechtigt ausgewiesene Steuerbeträge (§ 14c UStG) sowie Steuerbeträge, die nach § 6a Absatz 4 Satz 2, § 17 Absatz 1 Satz 7, § 25b Absatz 2 UStG oder von einem Auslagerer oder Lagerhalter nach § 13a Absatz 1 Nummer 6 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, § 17 Absatz 1 Satz 7, § 25b Absatz 2 UStG oder von einem Auslagerer oder Lagerhalter nach § 13a Absatz 1 Nummer 6 UStG geschuldet werden", Name="Kz69")
        /** @var GeldBetragMitCent11EN|null */
        public ?GeldBetragMitCent11EN $kz69=null,

        /** @description Umsätze, die unter das GrEStG fallen (§ 13b Absatz 2 Nummer 3 UStG) (Bemessungsgrundlage) */
        // @ApiMember(Description="Umsätze, die unter das GrEStG fallen (§ 13b Absatz 2 Nummer 3 UStG) (Bemessungsgrundlage)", Name="Kz73")
        /** @var GeldBetragOhneCent13EN|null */
        public ?GeldBetragOhneCent13EN $kz73=null,

        /** @description 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="Kz74")
        /** @var GeldBetragMitCent11EN|null */
        public ?GeldBetragMitCent11EN $kz74=null,

        /** @description Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist (Sägewerkserzeugnisse, Getränke und alkoholische Flüssigkeiten, zum Beispiel Wein) (Bemessungsgrundlage) */
        // @ApiMember(Description="Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist (Sägewerkserzeugnisse, Getränke und alkoholische Flüssigkeiten, zum Beispiel Wein) (Bemessungsgrundlage)", Name="Kz76")
        /** @var GeldBetragOhneCent13EN|null */
        public ?GeldBetragOhneCent13EN $kz76=null,

        /** @description Lieferungen land- und forstwirtschaftlicher Betriebe nach § 24 UStG an Abnehmer mit Umsatzsteuer-Identifikationsnummer */
        // @ApiMember(Description="Lieferungen land- und forstwirtschaftlicher Betriebe nach § 24 UStG an Abnehmer mit Umsatzsteuer-Identifikationsnummer", Name="Kz77")
        /** @var GeldBetragOhneCent13EN|null */
        public ?GeldBetragOhneCent13EN $kz77=null,

        /** @description Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist (Sägewerkserzeugnisse, Getränke und alkoholische Flüssigkeiten, zum Beispiel Wein) (Steuer) */
        // @ApiMember(Description="Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist (Sägewerkserzeugnisse, Getränke und alkoholische Flüssigkeiten, zum Beispiel Wein) (Steuer)", Name="Kz80")
        /** @var GeldBetragMitCent11EN|null */
        public ?GeldBetragMitCent11EN $kz80=null,

        /** @description zum Steuersatz von 19 Prozent */
        // @ApiMember(Description="zum Steuersatz von 19 Prozent", Name="Kz81")
        /** @var GeldBetragOhneCent13EN|null */
        public ?GeldBetragOhneCent13EN $kz81=null,

        /** @description Verbleibende Umsatzsteuer-Vorauszahlung beziehungsweise verbleibender Überschuss */
        // @ApiMember(Description="Verbleibende Umsatzsteuer-Vorauszahlung beziehungsweise verbleibender Überschuss", IsRequired=true, Name="Kz83")
        /** @var GeldBetragMitCent11EN|null */
        public ?GeldBetragMitCent11EN $kz83=null,

        /** @description Andere Leistungen (§ 13b Absatz 2 Nummer 1, 2, 4 bis 12 UStG) (Bemessungsgrundlage) */
        // @ApiMember(Description="Andere Leistungen (§ 13b Absatz 2 Nummer 1, 2, 4 bis 12 UStG) (Bemessungsgrundlage)", Name="Kz84")
        /** @var GeldBetragOhneCent13EN|null */
        public ?GeldBetragOhneCent13EN $kz84=null,

        /** @description 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="Kz85")
        /** @var GeldBetragMitCent11EN|null */
        public ?GeldBetragMitCent11EN $kz85=null,

        /** @description zum Steuersatz von 7 Prozent */
        // @ApiMember(Description="zum Steuersatz von 7 Prozent", Name="Kz86")
        /** @var GeldBetragOhneCent13EN|null */
        public ?GeldBetragOhneCent13EN $kz86=null,

        /** @description zum Steuersatz von 19 Prozent */
        // @ApiMember(Description="zum Steuersatz von 19 Prozent", Name="Kz89")
        /** @var GeldBetragOhneCent13EN|null */
        public ?GeldBetragOhneCent13EN $kz89=null,

        /** @description Steuerfreie innergemeinschaftliche Erwerbe von bestimmten Gegenständen und Anlagegold (§§ 4b und 25c UStG) */
        // @ApiMember(Description="Steuerfreie innergemeinschaftliche Erwerbe von bestimmten Gegenständen und Anlagegold (§§ 4b und 25c UStG)", Name="Kz91")
        /** @var GeldBetragOhneCent13EN|null */
        public ?GeldBetragOhneCent13EN $kz91=null,

        /** @description zum Steuersatz von 7 Prozent */
        // @ApiMember(Description="zum Steuersatz von 7 Prozent", Name="Kz93")
        /** @var GeldBetragOhneCent13EN|null */
        public ?GeldBetragOhneCent13EN $kz93=null,

        /** @description Erwerbe nach §§ 4b und 25c UStG */
        // @ApiMember(Description="Erwerbe nach §§ 4b und 25c UStG", Name="Kz94")
        /** @var GeldBetragOhneCent13EN|null */
        public ?GeldBetragOhneCent13EN $kz94=null,

        /** @description zu anderen Steuersätzen (Bemessungsgrundlage) */
        // @ApiMember(Description="zu anderen Steuersätzen (Bemessungsgrundlage)", Name="Kz95")
        /** @var GeldBetragOhneCent13EN|null */
        public ?GeldBetragOhneCent13EN $kz95=null,

        /** @description neuer Fahrzeuge (§ 1b Absatz 2 und 3 UStG) von Lieferern ohne Umsatzsteuer-Identifikationsnummer zum allgemeinen Steuersatz (Steuer) */
        // @ApiMember(Description="neuer Fahrzeuge (§ 1b Absatz 2 und 3 UStG) von Lieferern ohne Umsatzsteuer-Identifikationsnummer zum allgemeinen Steuersatz (Steuer)", Name="Kz96")
        /** @var GeldBetragMitCent11EN|null */
        public ?GeldBetragMitCent11EN $kz96=null,

        /** @description zu anderen Steuersätzen (Steuer) */
        // @ApiMember(Description="zu anderen Steuersätzen (Steuer)", Name="Kz98")
        /** @var GeldBetragMitCent11EN|null */
        public ?GeldBetragMitCent11EN $kz98=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['jahr'])) $this->jahr = $o['jahr'];
        if (isset($o['zeitraum'])) $this->zeitraum = JsonConverters::from('AnmeldungZeitraum', $o['zeitraum']);
        if (isset($o['steuernummer'])) $this->steuernummer = $o['steuernummer'];
        if (isset($o['kz09'])) $this->kz09 = JsonConverters::from('Kz09', $o['kz09']);
        if (isset($o['kz10'])) $this->kz10 = JsonConverters::from('Ganzzahl1EN', $o['kz10']);
        if (isset($o['kz21'])) $this->kz21 = JsonConverters::from('GeldBetragOhneCent13EN', $o['kz21']);
        if (isset($o['kz22'])) $this->kz22 = JsonConverters::from('Ganzzahl1EN', $o['kz22']);
        if (isset($o['kz23'])) $this->kz23 = JsonConverters::from('Ganzzahl1EN', $o['kz23']);
        if (isset($o['kz23_Begruendung'])) $this->kz23_Begruendung = $o['kz23_Begruendung'];
        if (isset($o['kz26'])) $this->kz26 = JsonConverters::from('Ganzzahl1EN', $o['kz26']);
        if (isset($o['kz29'])) $this->kz29 = JsonConverters::from('Ganzzahl1EN', $o['kz29']);
        if (isset($o['kz35'])) $this->kz35 = JsonConverters::from('GeldBetragOhneCent13EN', $o['kz35']);
        if (isset($o['kz36'])) $this->kz36 = JsonConverters::from('GeldBetragMitCent11EN', $o['kz36']);
        if (isset($o['kz37'])) $this->kz37 = JsonConverters::from('PositiverGeldBetragMitCent11EN', $o['kz37']);
        if (isset($o['kz39'])) $this->kz39 = JsonConverters::from('PositiverGeldBetragMitCent13EN', $o['kz39']);
        if (isset($o['kz41'])) $this->kz41 = JsonConverters::from('GeldBetragOhneCent13EN', $o['kz41']);
        if (isset($o['kz42'])) $this->kz42 = JsonConverters::from('GeldBetragOhneCent13EN', $o['kz42']);
        if (isset($o['kz43'])) $this->kz43 = JsonConverters::from('GeldBetragOhneCent13EN', $o['kz43']);
        if (isset($o['kz44'])) $this->kz44 = JsonConverters::from('GeldBetragOhneCent13EN', $o['kz44']);
        if (isset($o['kz45'])) $this->kz45 = JsonConverters::from('GeldBetragOhneCent13EN', $o['kz45']);
        if (isset($o['kz46'])) $this->kz46 = JsonConverters::from('GeldBetragOhneCent13EN', $o['kz46']);
        if (isset($o['kz47'])) $this->kz47 = JsonConverters::from('GeldBetragMitCent11EN', $o['kz47']);
        if (isset($o['kz48'])) $this->kz48 = JsonConverters::from('GeldBetragOhneCent13EN', $o['kz48']);
        if (isset($o['kz49'])) $this->kz49 = JsonConverters::from('GeldBetragOhneCent13EN', $o['kz49']);
        if (isset($o['kz50'])) $this->kz50 = JsonConverters::from('PositiverGeldBetragOhneCent13EN', $o['kz50']);
        if (isset($o['kz59'])) $this->kz59 = JsonConverters::from('GeldBetragMitCent11EN', $o['kz59']);
        if (isset($o['kz60'])) $this->kz60 = JsonConverters::from('GeldBetragOhneCent13EN', $o['kz60']);
        if (isset($o['kz61'])) $this->kz61 = JsonConverters::from('GeldBetragMitCent11EN', $o['kz61']);
        if (isset($o['kz62'])) $this->kz62 = JsonConverters::from('GeldBetragMitCent11EN', $o['kz62']);
        if (isset($o['kz63'])) $this->kz63 = JsonConverters::from('GeldBetragMitCent11EN', $o['kz63']);
        if (isset($o['kz64'])) $this->kz64 = JsonConverters::from('GeldBetragMitCent11EN', $o['kz64']);
        if (isset($o['kz65'])) $this->kz65 = JsonConverters::from('GeldBetragMitCent11EN', $o['kz65']);
        if (isset($o['kz66'])) $this->kz66 = JsonConverters::from('GeldBetragMitCent11EN', $o['kz66']);
        if (isset($o['kz67'])) $this->kz67 = JsonConverters::from('GeldBetragMitCent11EN', $o['kz67']);
        if (isset($o['kz69'])) $this->kz69 = JsonConverters::from('GeldBetragMitCent11EN', $o['kz69']);
        if (isset($o['kz73'])) $this->kz73 = JsonConverters::from('GeldBetragOhneCent13EN', $o['kz73']);
        if (isset($o['kz74'])) $this->kz74 = JsonConverters::from('GeldBetragMitCent11EN', $o['kz74']);
        if (isset($o['kz76'])) $this->kz76 = JsonConverters::from('GeldBetragOhneCent13EN', $o['kz76']);
        if (isset($o['kz77'])) $this->kz77 = JsonConverters::from('GeldBetragOhneCent13EN', $o['kz77']);
        if (isset($o['kz80'])) $this->kz80 = JsonConverters::from('GeldBetragMitCent11EN', $o['kz80']);
        if (isset($o['kz81'])) $this->kz81 = JsonConverters::from('GeldBetragOhneCent13EN', $o['kz81']);
        if (isset($o['kz83'])) $this->kz83 = JsonConverters::from('GeldBetragMitCent11EN', $o['kz83']);
        if (isset($o['kz84'])) $this->kz84 = JsonConverters::from('GeldBetragOhneCent13EN', $o['kz84']);
        if (isset($o['kz85'])) $this->kz85 = JsonConverters::from('GeldBetragMitCent11EN', $o['kz85']);
        if (isset($o['kz86'])) $this->kz86 = JsonConverters::from('GeldBetragOhneCent13EN', $o['kz86']);
        if (isset($o['kz89'])) $this->kz89 = JsonConverters::from('GeldBetragOhneCent13EN', $o['kz89']);
        if (isset($o['kz91'])) $this->kz91 = JsonConverters::from('GeldBetragOhneCent13EN', $o['kz91']);
        if (isset($o['kz93'])) $this->kz93 = JsonConverters::from('GeldBetragOhneCent13EN', $o['kz93']);
        if (isset($o['kz94'])) $this->kz94 = JsonConverters::from('GeldBetragOhneCent13EN', $o['kz94']);
        if (isset($o['kz95'])) $this->kz95 = JsonConverters::from('GeldBetragOhneCent13EN', $o['kz95']);
        if (isset($o['kz96'])) $this->kz96 = JsonConverters::from('GeldBetragMitCent11EN', $o['kz96']);
        if (isset($o['kz98'])) $this->kz98 = JsonConverters::from('GeldBetragMitCent11EN', $o['kz98']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->jahr)) $o['jahr'] = $this->jahr;
        if (isset($this->zeitraum)) $o['zeitraum'] = JsonConverters::to('AnmeldungZeitraum', $this->zeitraum);
        if (isset($this->steuernummer)) $o['steuernummer'] = $this->steuernummer;
        if (isset($this->kz09)) $o['kz09'] = JsonConverters::to('Kz09', $this->kz09);
        if (isset($this->kz10)) $o['kz10'] = JsonConverters::to('Ganzzahl1EN', $this->kz10);
        if (isset($this->kz21)) $o['kz21'] = JsonConverters::to('GeldBetragOhneCent13EN', $this->kz21);
        if (isset($this->kz22)) $o['kz22'] = JsonConverters::to('Ganzzahl1EN', $this->kz22);
        if (isset($this->kz23)) $o['kz23'] = JsonConverters::to('Ganzzahl1EN', $this->kz23);
        if (isset($this->kz23_Begruendung)) $o['kz23_Begruendung'] = $this->kz23_Begruendung;
        if (isset($this->kz26)) $o['kz26'] = JsonConverters::to('Ganzzahl1EN', $this->kz26);
        if (isset($this->kz29)) $o['kz29'] = JsonConverters::to('Ganzzahl1EN', $this->kz29);
        if (isset($this->kz35)) $o['kz35'] = JsonConverters::to('GeldBetragOhneCent13EN', $this->kz35);
        if (isset($this->kz36)) $o['kz36'] = JsonConverters::to('GeldBetragMitCent11EN', $this->kz36);
        if (isset($this->kz37)) $o['kz37'] = JsonConverters::to('PositiverGeldBetragMitCent11EN', $this->kz37);
        if (isset($this->kz39)) $o['kz39'] = JsonConverters::to('PositiverGeldBetragMitCent13EN', $this->kz39);
        if (isset($this->kz41)) $o['kz41'] = JsonConverters::to('GeldBetragOhneCent13EN', $this->kz41);
        if (isset($this->kz42)) $o['kz42'] = JsonConverters::to('GeldBetragOhneCent13EN', $this->kz42);
        if (isset($this->kz43)) $o['kz43'] = JsonConverters::to('GeldBetragOhneCent13EN', $this->kz43);
        if (isset($this->kz44)) $o['kz44'] = JsonConverters::to('GeldBetragOhneCent13EN', $this->kz44);
        if (isset($this->kz45)) $o['kz45'] = JsonConverters::to('GeldBetragOhneCent13EN', $this->kz45);
        if (isset($this->kz46)) $o['kz46'] = JsonConverters::to('GeldBetragOhneCent13EN', $this->kz46);
        if (isset($this->kz47)) $o['kz47'] = JsonConverters::to('GeldBetragMitCent11EN', $this->kz47);
        if (isset($this->kz48)) $o['kz48'] = JsonConverters::to('GeldBetragOhneCent13EN', $this->kz48);
        if (isset($this->kz49)) $o['kz49'] = JsonConverters::to('GeldBetragOhneCent13EN', $this->kz49);
        if (isset($this->kz50)) $o['kz50'] = JsonConverters::to('PositiverGeldBetragOhneCent13EN', $this->kz50);
        if (isset($this->kz59)) $o['kz59'] = JsonConverters::to('GeldBetragMitCent11EN', $this->kz59);
        if (isset($this->kz60)) $o['kz60'] = JsonConverters::to('GeldBetragOhneCent13EN', $this->kz60);
        if (isset($this->kz61)) $o['kz61'] = JsonConverters::to('GeldBetragMitCent11EN', $this->kz61);
        if (isset($this->kz62)) $o['kz62'] = JsonConverters::to('GeldBetragMitCent11EN', $this->kz62);
        if (isset($this->kz63)) $o['kz63'] = JsonConverters::to('GeldBetragMitCent11EN', $this->kz63);
        if (isset($this->kz64)) $o['kz64'] = JsonConverters::to('GeldBetragMitCent11EN', $this->kz64);
        if (isset($this->kz65)) $o['kz65'] = JsonConverters::to('GeldBetragMitCent11EN', $this->kz65);
        if (isset($this->kz66)) $o['kz66'] = JsonConverters::to('GeldBetragMitCent11EN', $this->kz66);
        if (isset($this->kz67)) $o['kz67'] = JsonConverters::to('GeldBetragMitCent11EN', $this->kz67);
        if (isset($this->kz69)) $o['kz69'] = JsonConverters::to('GeldBetragMitCent11EN', $this->kz69);
        if (isset($this->kz73)) $o['kz73'] = JsonConverters::to('GeldBetragOhneCent13EN', $this->kz73);
        if (isset($this->kz74)) $o['kz74'] = JsonConverters::to('GeldBetragMitCent11EN', $this->kz74);
        if (isset($this->kz76)) $o['kz76'] = JsonConverters::to('GeldBetragOhneCent13EN', $this->kz76);
        if (isset($this->kz77)) $o['kz77'] = JsonConverters::to('GeldBetragOhneCent13EN', $this->kz77);
        if (isset($this->kz80)) $o['kz80'] = JsonConverters::to('GeldBetragMitCent11EN', $this->kz80);
        if (isset($this->kz81)) $o['kz81'] = JsonConverters::to('GeldBetragOhneCent13EN', $this->kz81);
        if (isset($this->kz83)) $o['kz83'] = JsonConverters::to('GeldBetragMitCent11EN', $this->kz83);
        if (isset($this->kz84)) $o['kz84'] = JsonConverters::to('GeldBetragOhneCent13EN', $this->kz84);
        if (isset($this->kz85)) $o['kz85'] = JsonConverters::to('GeldBetragMitCent11EN', $this->kz85);
        if (isset($this->kz86)) $o['kz86'] = JsonConverters::to('GeldBetragOhneCent13EN', $this->kz86);
        if (isset($this->kz89)) $o['kz89'] = JsonConverters::to('GeldBetragOhneCent13EN', $this->kz89);
        if (isset($this->kz91)) $o['kz91'] = JsonConverters::to('GeldBetragOhneCent13EN', $this->kz91);
        if (isset($this->kz93)) $o['kz93'] = JsonConverters::to('GeldBetragOhneCent13EN', $this->kz93);
        if (isset($this->kz94)) $o['kz94'] = JsonConverters::to('GeldBetragOhneCent13EN', $this->kz94);
        if (isset($this->kz95)) $o['kz95'] = JsonConverters::to('GeldBetragOhneCent13EN', $this->kz95);
        if (isset($this->kz96)) $o['kz96'] = JsonConverters::to('GeldBetragMitCent11EN', $this->kz96);
        if (isset($this->kz98)) $o['kz98'] = JsonConverters::to('GeldBetragMitCent11EN', $this->kz98);
        return empty($o) ? new class(){} : $o;
    }
}

/** @description Create XML content that represents the preliminary VAT return (Umsatzsteuervoranmeldung) for 2021. */
// @Api(Description="Create XML content that represents the preliminary VAT return (Umsatzsteuervoranmeldung) for 2021.")
class CreateUmsatzsteuervoranmeldung2021XmlBase extends CreateUmsatzsteueranmeldung2021XmlBase implements JsonSerializable
{
    /**
     * @param DatenLieferant|null $datenLieferant
     * @param DateTime $erstellungsdatum
     * @param Berater|null $berater
     * @param Mandant|null $mandant
     * @param Unternehmer|null $unternehmer
     * @param string $bundesfinanzamtsnummer
     * @param EOP|null $eop
     */
    public function __construct(
        ?DatenLieferant $datenLieferant=null,
        DateTime $erstellungsdatum=new DateTime(),
        ?Berater $berater=null,
        ?Mandant $mandant=null,
        ?Unternehmer $unternehmer=null,
        string $bundesfinanzamtsnummer='',
        ?EOP $eop=null,
        /** @description Die Umsatzsteuervoranmeldung (The preliminary VAT return). */
        // @ApiMember(Description="Die Umsatzsteuervoranmeldung (The preliminary VAT return).", IsRequired=true, Name="Umsatzsteuervoranmeldung")
        /** @var Umsatzsteuervoranmeldung2021|null */
        public ?Umsatzsteuervoranmeldung2021 $umsatzsteuervoranmeldung=null
    ) {
        parent::__construct($datenLieferant,$erstellungsdatum,$berater,$mandant,$unternehmer,$bundesfinanzamtsnummer,$eop);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['umsatzsteuervoranmeldung'])) $this->umsatzsteuervoranmeldung = JsonConverters::from('Umsatzsteuervoranmeldung2021', $o['umsatzsteuervoranmeldung']);
        if (isset($o['datenLieferant'])) $this->datenLieferant = JsonConverters::from('DatenLieferant', $o['datenLieferant']);
        if (isset($o['erstellungsdatum'])) $this->erstellungsdatum = JsonConverters::from('DateTime', $o['erstellungsdatum']);
        if (isset($o['berater'])) $this->berater = JsonConverters::from('Berater', $o['berater']);
        if (isset($o['mandant'])) $this->mandant = JsonConverters::from('Mandant', $o['mandant']);
        if (isset($o['unternehmer'])) $this->unternehmer = JsonConverters::from('Unternehmer', $o['unternehmer']);
        if (isset($o['bundesfinanzamtsnummer'])) $this->bundesfinanzamtsnummer = $o['bundesfinanzamtsnummer'];
        if (isset($o['eop'])) $this->eop = JsonConverters::from('EOP', $o['eop']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->umsatzsteuervoranmeldung)) $o['umsatzsteuervoranmeldung'] = JsonConverters::to('Umsatzsteuervoranmeldung2021', $this->umsatzsteuervoranmeldung);
        if (isset($this->datenLieferant)) $o['datenLieferant'] = JsonConverters::to('DatenLieferant', $this->datenLieferant);
        if (isset($this->erstellungsdatum)) $o['erstellungsdatum'] = JsonConverters::to('DateTime', $this->erstellungsdatum);
        if (isset($this->berater)) $o['berater'] = JsonConverters::to('Berater', $this->berater);
        if (isset($this->mandant)) $o['mandant'] = JsonConverters::to('Mandant', $this->mandant);
        if (isset($this->unternehmer)) $o['unternehmer'] = JsonConverters::to('Unternehmer', $this->unternehmer);
        if (isset($this->bundesfinanzamtsnummer)) $o['bundesfinanzamtsnummer'] = $this->bundesfinanzamtsnummer;
        if (isset($this->eop)) $o['eop'] = JsonConverters::to('EOP', $this->eop);
        return empty($o) ? new class(){} : $o;
    }
}

/** @description 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 JsonSerializable
{
    public function __construct(
        /** @description The XML-based content of the response. */
        // @ApiMember(Description="The XML-based content of the response.")
        /** @var string|null */
        public ?string $content=null,

        /** @description Metadata that contains structured error information on the XML response. */
        // @ApiMember(Description="Metadata that contains structured error information on the XML response.")
        /** @var ResponseStatus|null */
        public ?ResponseStatus $responseStatus=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['content'])) $this->content = $o['content'];
        if (isset($o['responseStatus'])) $this->responseStatus = JsonConverters::from('ResponseStatus', $o['responseStatus']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->content)) $o['content'] = $this->content;
        if (isset($this->responseStatus)) $o['responseStatus'] = JsonConverters::to('ResponseStatus', $this->responseStatus);
        return empty($o) ? new class(){} : $o;
    }
}

/** @description An asynchronous service to create xml content that represents the preliminary VAT return (Umsatzsteuervoranmeldung) for 2021. */
// @Api(Description="An asynchronous service to create xml content that represents the preliminary VAT return (Umsatzsteuervoranmeldung) for 2021.")
class CreateUmsatzsteuervoranmeldung2021XmlAsync extends CreateUmsatzsteuervoranmeldung2021XmlBase implements JsonSerializable
{
    /**
     * @param DatenLieferant|null $datenLieferant
     * @param DateTime $erstellungsdatum
     * @param Berater|null $berater
     * @param Mandant|null $mandant
     * @param Unternehmer|null $unternehmer
     * @param string $bundesfinanzamtsnummer
     * @param EOP|null $eop
     * @param Umsatzsteuervoranmeldung2021|null $umsatzsteuervoranmeldung
     * @param DatenLieferant|null $datenLieferant
     * @param DateTime $erstellungsdatum
     * @param Berater|null $berater
     * @param Mandant|null $mandant
     * @param Unternehmer|null $unternehmer
     * @param string $bundesfinanzamtsnummer
     * @param EOP|null $eop
     */
    public function __construct(
        ?DatenLieferant $datenLieferant=null,
        DateTime $erstellungsdatum=new DateTime(),
        ?Berater $berater=null,
        ?Mandant $mandant=null,
        ?Unternehmer $unternehmer=null,
        string $bundesfinanzamtsnummer='',
        ?EOP $eop=null,
        ?Umsatzsteuervoranmeldung2021 $umsatzsteuervoranmeldung=null,
        ?DatenLieferant $datenLieferant=null,
        DateTime $erstellungsdatum=new DateTime(),
        ?Berater $berater=null,
        ?Mandant $mandant=null,
        ?Unternehmer $unternehmer=null,
        string $bundesfinanzamtsnummer='',
        ?EOP $eop=null
    ) {
        parent::__construct($datenLieferant,$erstellungsdatum,$berater,$mandant,$unternehmer,$bundesfinanzamtsnummer,$eop,$umsatzsteuervoranmeldung,$datenLieferant,$erstellungsdatum,$berater,$mandant,$unternehmer,$bundesfinanzamtsnummer,$eop);
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['umsatzsteuervoranmeldung'])) $this->umsatzsteuervoranmeldung = JsonConverters::from('Umsatzsteuervoranmeldung2021', $o['umsatzsteuervoranmeldung']);
        if (isset($o['datenLieferant'])) $this->datenLieferant = JsonConverters::from('DatenLieferant', $o['datenLieferant']);
        if (isset($o['erstellungsdatum'])) $this->erstellungsdatum = JsonConverters::from('DateTime', $o['erstellungsdatum']);
        if (isset($o['berater'])) $this->berater = JsonConverters::from('Berater', $o['berater']);
        if (isset($o['mandant'])) $this->mandant = JsonConverters::from('Mandant', $o['mandant']);
        if (isset($o['unternehmer'])) $this->unternehmer = JsonConverters::from('Unternehmer', $o['unternehmer']);
        if (isset($o['bundesfinanzamtsnummer'])) $this->bundesfinanzamtsnummer = $o['bundesfinanzamtsnummer'];
        if (isset($o['eop'])) $this->eop = JsonConverters::from('EOP', $o['eop']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->umsatzsteuervoranmeldung)) $o['umsatzsteuervoranmeldung'] = JsonConverters::to('Umsatzsteuervoranmeldung2021', $this->umsatzsteuervoranmeldung);
        if (isset($this->datenLieferant)) $o['datenLieferant'] = JsonConverters::to('DatenLieferant', $this->datenLieferant);
        if (isset($this->erstellungsdatum)) $o['erstellungsdatum'] = JsonConverters::to('DateTime', $this->erstellungsdatum);
        if (isset($this->berater)) $o['berater'] = JsonConverters::to('Berater', $this->berater);
        if (isset($this->mandant)) $o['mandant'] = JsonConverters::to('Mandant', $this->mandant);
        if (isset($this->unternehmer)) $o['unternehmer'] = JsonConverters::to('Unternehmer', $this->unternehmer);
        if (isset($this->bundesfinanzamtsnummer)) $o['bundesfinanzamtsnummer'] = $this->bundesfinanzamtsnummer;
        if (isset($this->eop)) $o['eop'] = JsonConverters::to('EOP', $this->eop);
        return empty($o) ? new class(){} : $o;
    }
}

PHP CreateUmsatzsteuervoranmeldung2021XmlAsync DTOs

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

HTTP + XML

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

POST /CreateUmsatzsteuervoranmeldung2021XmlAsync HTTP/1.1 
Host: taxfiling.pwc.de 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<CreateUmsatzsteuervoranmeldung2021XmlAsync xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/PwC.xEric.Core.Services.Contracts.Umsatzsteuer.Requests">
  <Berater>
    <Bezeichnung>String</Bezeichnung>
    <Name>String</Name>
    <Namensvorsatz>String</Namensvorsatz>
    <Namenszusatz>String</Namenszusatz>
    <Str>String</Str>
    <Hausnummer>String</Hausnummer>
    <HNrZusatz>String</HNrZusatz>
    <AnschriftenZusatz>String</AnschriftenZusatz>
    <Ort>String</Ort>
    <PLZ>String</PLZ>
    <AuslandsPLZ>String</AuslandsPLZ>
    <Land>String</Land>
    <PostfachOrt>String</PostfachOrt>
    <Postfach>String</Postfach>
    <PostfachPLZ>String</PostfachPLZ>
    <GKPLZ>String</GKPLZ>
    <Telefon>String</Telefon>
    <Email>String</Email>
  </Berater>
  <Bundesfinanzamtsnummer>String</Bundesfinanzamtsnummer>
  <DatenLieferant>
    <Name>String</Name>
    <Strasse>String</Strasse>
    <PLZ>String</PLZ>
    <Ort>String</Ort>
    <Telefon>String</Telefon>
    <Email>String</Email>
  </DatenLieferant>
  <EOP>
    <Transferausgabe>String</Transferausgabe>
  </EOP>
  <Erstellungsdatum>0001-01-01T00:00:00</Erstellungsdatum>
  <Mandant>
    <Name>String</Name>
    <Vorname>String</Vorname>
    <MandantenNr>String</MandantenNr>
    <Bearbeiterkennzeichen>String</Bearbeiterkennzeichen>
  </Mandant>
  <Unternehmer>
    <Bezeichnung>String</Bezeichnung>
    <Name>String</Name>
    <Namensvorsatz>String</Namensvorsatz>
    <Namenszusatz>String</Namenszusatz>
    <Str>String</Str>
    <Hausnummer>String</Hausnummer>
    <HNrZusatz>String</HNrZusatz>
    <AnschriftenZusatz>String</AnschriftenZusatz>
    <Ort>String</Ort>
    <PLZ>String</PLZ>
    <AuslandsPLZ>String</AuslandsPLZ>
    <Land>String</Land>
    <PostfachOrt>String</PostfachOrt>
    <Postfach>String</Postfach>
    <PostfachPLZ>String</PostfachPLZ>
    <GKPLZ>String</GKPLZ>
    <Telefon>String</Telefon>
    <Email>String</Email>
  </Unternehmer>
  <Umsatzsteuervoranmeldung>
    <Jahr>0</Jahr>
    <Zeitraum>00</Zeitraum>
    <Steuernummer>String</Steuernummer>
    <Kz09>00000*String*String*String*String*String</Kz09>
    <Kz10>0</Kz10>
    <Kz21>0</Kz21>
    <Kz22>0</Kz22>
    <Kz23>0</Kz23>
    <Kz23_Begruendung>String</Kz23_Begruendung>
    <Kz26>0</Kz26>
    <Kz29>0</Kz29>
    <Kz35>0</Kz35>
    <Kz36>0.00</Kz36>
    <Kz37>0.00</Kz37>
    <Kz39>0.00</Kz39>
    <Kz41>0</Kz41>
    <Kz42>0</Kz42>
    <Kz43>0</Kz43>
    <Kz44>0</Kz44>
    <Kz45>0</Kz45>
    <Kz46>0</Kz46>
    <Kz47>0.00</Kz47>
    <Kz48>0</Kz48>
    <Kz49>0</Kz49>
    <Kz50>0</Kz50>
    <Kz59>0.00</Kz59>
    <Kz60>0</Kz60>
    <Kz61>0.00</Kz61>
    <Kz62>0.00</Kz62>
    <Kz63>0.00</Kz63>
    <Kz64>0.00</Kz64>
    <Kz65>0.00</Kz65>
    <Kz66>0.00</Kz66>
    <Kz67>0.00</Kz67>
    <Kz69>0.00</Kz69>
    <Kz73>0</Kz73>
    <Kz74>0.00</Kz74>
    <Kz76>0</Kz76>
    <Kz77>0</Kz77>
    <Kz80>0.00</Kz80>
    <Kz81>0</Kz81>
    <Kz83>0.00</Kz83>
    <Kz84>0</Kz84>
    <Kz85>0.00</Kz85>
    <Kz86>0</Kz86>
    <Kz89>0</Kz89>
    <Kz91>0</Kz91>
    <Kz93>0</Kz93>
    <Kz94>0</Kz94>
    <Kz95>0</Kz95>
    <Kz96>0.00</Kz96>
    <Kz98>0.00</Kz98>
  </Umsatzsteuervoranmeldung>
</CreateUmsatzsteuervoranmeldung2021XmlAsync>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<XmlResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/PwC.xEric.Core.Services.Contracts.Responses">
  <Content>String</Content>
  <ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:ErrorCode>String</d2p1:ErrorCode>
    <d2p1:Message>String</d2p1:Message>
    <d2p1:StackTrace>String</d2p1:StackTrace>
    <d2p1:Errors>
      <d2p1:ResponseError>
        <d2p1:ErrorCode>String</d2p1:ErrorCode>
        <d2p1:FieldName>String</d2p1:FieldName>
        <d2p1:Message>String</d2p1:Message>
        <d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfstringstring>
            <d5p1:Key>String</d5p1:Key>
            <d5p1:Value>String</d5p1:Value>
          </d5p1:KeyValueOfstringstring>
        </d2p1:Meta>
      </d2p1:ResponseError>
    </d2p1:Errors>
    <d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:KeyValueOfstringstring>
        <d3p1:Key>String</d3p1:Key>
        <d3p1:Value>String</d3p1:Value>
      </d3p1:KeyValueOfstringstring>
    </d2p1:Meta>
  </ResponseStatus>
</XmlResponse>