Report Filing Service

<back to all web services

CreateDac6XmlAsync

Generate XMLDAC6Async

Represents a request to generate an ELMA-compatible XML content from a DAC6 data model in an asynchronous operation.

Requires Authentication
The following routes are available for this service:
POST/async/elma/dac6/xml
import java.math.*;
import java.util.*;
import net.servicestack.client.*;

public class dtos
{

    /**
    * Represents a request to generate an ELMA-compatible XML content from a DAC6 data model in an asynchronous operation.
    */
    @Api(Description="Represents a request to generate an ELMA-compatible XML content from a DAC6 data model in an asynchronous operation.")
    public static class CreateDac6XmlAsync extends CreateDac6XmlBase
    {
        
    }

    /**
    * Specifies a request to generate a DAC6 ELMA-compatible XML content from a DAC6 data model.
    */
    @Api(Description="Specifies a request to generate a DAC6 ELMA-compatible XML content from a DAC6 data model.")
    public static class CreateDac6XmlBase implements IPost, IStageableRequest
    {
        /**
        * The BZSt (Bundeszentralamt für Steuern) - tax number of the user. 11-character text field that may only consist of two capital letters and 9 digits (0-9). The fiscal authority BZSt provides this number during registration at the BOP (BZSt-Online Portal - https://www.elster.de/bportal/start). The number is available in the private area of the BOP user account under "My BOP" under the "Registration Information"
        */
        @ApiMember(Description="The BZSt (Bundeszentralamt für Steuern) - tax number of the user. 11-character text field that may only consist of two capital letters and 9 digits (0-9). The fiscal authority BZSt provides this number during registration at the BOP (BZSt-Online Portal - https://www.elster.de/bportal/start). The number is available in the private area of the BOP user account under \"My BOP\" under the \"Registration Information\"", IsRequired=true, Name="AuthSteuernummer")
        public String authSteuernummer = null;

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

        /**
        * User custom ID. This field can be filled with internal reference information of the user.
        */
        @ApiMember(Description="User custom ID. This field can be filled with internal reference information of the user.", Name="KundeneigeneId")
        public String kundeneigeneId = null;

        /**
        * The version number of the ELMAKOM definition.
        */
        @ApiMember(Description="The version number of the ELMAKOM definition.", IsRequired=true, Name="ElmakomVersion")
        public String elmakomVersion = null;

        /**
        * Should operations be staged on the ELMA server? true: operations are executed on the Test ELMA server. false: operations are executed on the Live (Production) ELMA server.
        */
        @ApiMember(Description="Should operations be staged on the ELMA server? true: operations are executed on the Test ELMA server. false: operations are executed on the Live (Production) ELMA server.", Name="StagingEnabled")
        public Boolean stagingEnabled = null;

        /**
        * The data model that represents the DAC6 content.
        */
        @ApiMember(Description="The data model that represents the DAC6 content.", Name="DataModel")
        public DAC6 dataModel = null;
        
        public String getAuthSteuernummer() { return authSteuernummer; }
        public CreateDac6XmlBase setAuthSteuernummer(String value) { this.authSteuernummer = value; return this; }
        public String getAccountId() { return accountId; }
        public CreateDac6XmlBase setAccountId(String value) { this.accountId = value; return this; }
        public String getKundeneigeneId() { return kundeneigeneId; }
        public CreateDac6XmlBase setKundeneigeneId(String value) { this.kundeneigeneId = value; return this; }
        public String getElmakomVersion() { return elmakomVersion; }
        public CreateDac6XmlBase setElmakomVersion(String value) { this.elmakomVersion = value; return this; }
        public Boolean isStagingEnabled() { return stagingEnabled; }
        public CreateDac6XmlBase setStagingEnabled(Boolean value) { this.stagingEnabled = value; return this; }
        public DAC6 getDataModel() { return dataModel; }
        public CreateDac6XmlBase setDataModel(DAC6 value) { this.dataModel = value; return this; }
    }

    /**
    * Stellt grenzüberschreitende Steuergestaltungen dar.
    */
    @Api(Description="Stellt grenzüberschreitende Steuergestaltungen dar.")
    public static class DAC6
    {
        /**
        * Dient dazu, spätere Aktualisierungen des Schemas zu ermöglichen. Hier ist nur der feste Wert 000001 zulässig.
        */
        @ApiMember(Description="Dient dazu, spätere Aktualisierungen des Schemas zu ermöglichen. Hier ist nur der feste Wert 000001 zulässig.", IsRequired=true, Name="Version")
        public String version = null;

        /**
        * Wird verwendet, um die Sprache der Inhalte des Datenteils zu kennzeichnen. Zulässige Werte sind Sprachcodes aus 2 Kleinbuchstaben nach ISO 639-1.
        */
        @ApiMember(Description="Wird verwendet, um die Sprache der Inhalte des Datenteils zu kennzeichnen. Zulässige Werte sind Sprachcodes aus 2 Kleinbuchstaben nach ISO 639-1.", IsRequired=true, Name="Sprache")
        public LanguageCode sprache = null;

        /**
        * Gestaltung Gruppiert die Nutzdaten - Angabe dieser Elemente erfolgt sowohl bei der Nutzung vom BZSt Online Portal über das Formular sowie bei Lieferung über die ELMA Schnittstelle
        */
        @ApiMember(Description="Gestaltung Gruppiert die Nutzdaten - Angabe dieser Elemente erfolgt sowohl bei der Nutzung vom BZSt Online Portal über das Formular sowie bei Lieferung über die ELMA Schnittstelle", IsRequired=true, Name="Dac6Arrangement")
        public Dac6Arrangement dac6Arrangement = null;

        /**
        * Enthält eine Übersicht über das Verarbeitungsergebnis einer DAC6- oder ISG-Lieferung.
        */
        @ApiMember(Description="Enthält eine Übersicht über das Verarbeitungsergebnis einer DAC6- oder ISG-Lieferung.", IsRequired=true, Name="Dac6Verarbeitungsprotokoll")
        public Dac6Verarbeitungsprotokoll dac6Verarbeitungsprotokoll = null;
        
        public String getVersion() { return version; }
        public DAC6 setVersion(String value) { this.version = value; return this; }
        public LanguageCode getSprache() { return sprache; }
        public DAC6 setSprache(LanguageCode value) { this.sprache = value; return this; }
        public Dac6Arrangement getDac6Arrangement() { return dac6Arrangement; }
        public DAC6 setDac6Arrangement(Dac6Arrangement value) { this.dac6Arrangement = value; return this; }
        public Dac6Verarbeitungsprotokoll getDac6Verarbeitungsprotokoll() { return dac6Verarbeitungsprotokoll; }
        public DAC6 setDac6Verarbeitungsprotokoll(Dac6Verarbeitungsprotokoll value) { this.dac6Verarbeitungsprotokoll = value; return this; }
    }

    public static enum LanguageCode
    {
        Aa,
        Ab,
        Af,
        Ak,
        Sq,
        Am,
        Ar,
        An,
        Hy,
        As,
        Av,
        Ae,
        Ay,
        Az,
        Ba,
        Bm,
        Eu,
        Be,
        Bn,
        Bh,
        Bi,
        Bs,
        Br,
        Bg,
        My,
        Ca,
        Ch,
        Ce,
        Zh,
        Cu,
        Cv,
        Kw,
        Co,
        Cr,
        Cs,
        Da,
        Dv,
        Nl,
        Dz,
        En,
        Eo,
        Et,
        Ee,
        Fo,
        Fj,
        Fi,
        Fr,
        Fy,
        Ff,
        Ka,
        De,
        Gd,
        Ga,
        Gl,
        Gv,
        El,
        Gn,
        Gu,
        Ht,
        Ha,
        He,
        Hz,
        Hi,
        Ho,
        Hr,
        Hu,
        Ig,
        Is,
        Io,
        Ii,
        Iu,
        Ie,
        Ia,
        Id,
        Ik,
        It,
        Jv,
        Ja,
        Kl,
        Kn,
        Ks,
        Kr,
        Kk,
        Km,
        Ki,
        Rw,
        Ky,
        Kv,
        Kg,
        Ko,
        Kj,
        Ku,
        Lo,
        La,
        Lv,
        Li,
        Ln,
        Lt,
        Lb,
        Lu,
        Lg,
        Mk,
        Mh,
        Ml,
        Mi,
        Mr,
        Ms,
        Mg,
        Mt,
        Mn,
        Na,
        Nv,
        Nr,
        Nd,
        Ng,
        Ne,
        Nn,
        Nb,
        No,
        Ny,
        Oc,
        Oj,
        Or,
        Om,
        Os,
        Pa,
        Fa,
        Pi,
        Pl,
        Pt,
        Ps,
        Qu,
        Rm,
        Ro,
        Rn,
        Ru,
        Sg,
        Sa,
        Si,
        Sk,
        Sl,
        Se,
        Sm,
        Sn,
        Sd,
        So,
        St,
        Es,
        Sc,
        Sr,
        Ss,
        Su,
        Sw,
        Sv,
        Ty,
        Ta,
        Tt,
        Te,
        Tg,
        Tl,
        Th,
        Bo,
        Ti,
        To,
        Tn,
        Ts,
        Tk,
        Tr,
        Tw,
        Ug,
        Uk,
        Ur,
        Uz,
        Ve,
        Vi,
        Vo,
        Cy,
        Wa,
        Wo,
        Xh,
        Yi,
        Yo,
        Za,
        Zu;
    }

    /**
    * Gruppiert die Nutzdaten - Angabe dieser Elemente erfolgt sowohl bei der Nutzung vom BZSt Online Portal über das Formular sowie bei Lieferung über die ELMA Schnittstelle
    */
    @Api(Description="Gruppiert die Nutzdaten - Angabe dieser Elemente erfolgt sowohl bei der Nutzung vom BZSt Online Portal über das Formular sowie bei Lieferung über die ELMA Schnittstelle")
    public static class Dac6Arrangement
    {
        /**
        * Versionsangabe
        */
        @ApiMember(Description="Versionsangabe", IsRequired=true, Name="Version")
        public String version = null;

        /**
        * Angaben zu den Kopfdaten
        */
        @ApiMember(Description="Angaben zu den Kopfdaten", IsRequired=true, Name="Header")
        public Dac6Header header = null;

        /**
        * RegistriernummerAngabe im Format CCAYYYYMMDDXXXXXX <CC><A><YYYYMMDD><Bezeichner> CC enthält den ISO Staatencode des Mitgliedstaates in dem die erste Mitteilung zur Gestaltung erfolgt ist. Zulässige Werte sind: AT, BE, BG, CY, CZ, DE, DK, EE, ES, FI, FR, GB, GR, HR, HU, IE, IT, LT, LU, LV, MT, NL, PL, PT, RO, SE, SI, SK A enthält den Buchstaben "A" (Arrangement/Gestaltung) YYYYMMDD enthält das Ausgabedatum der Registriernummer XXXXXX ist eine Kombination aus Großbuchstaben (A-Z) und Ziffern (0-9)
        */
        @ApiMember(Description="RegistriernummerAngabe im Format CCAYYYYMMDDXXXXXX <CC><A><YYYYMMDD><Bezeichner> CC enthält den ISO Staatencode des Mitgliedstaates in dem die erste Mitteilung zur Gestaltung erfolgt ist. Zulässige Werte sind: AT, BE, BG, CY, CZ, DE, DK, EE, ES, FI, FR, GB, GR, HR, HU, IE, IT, LT, LU, LV, MT, NL, PL, PT, RO, SE, SI, SK A enthält den Buchstaben \"A\" (Arrangement/Gestaltung) YYYYMMDD enthält das Ausgabedatum der Registriernummer XXXXXX ist eine Kombination aus Großbuchstaben (A-Z) und Ziffern (0-9)", Name="ArrangementID")
        public String arrangementID = null;

        /**
        * Angaben zur Offenlegung
        */
        @ApiMember(Description="Angaben zur Offenlegung", IsRequired=true, Name="Dac6Disclosure")
        public Dac6Disclosure dac6Disclosure = null;
        
        public String getVersion() { return version; }
        public Dac6Arrangement setVersion(String value) { this.version = value; return this; }
        public Dac6Header getHeader() { return header; }
        public Dac6Arrangement setHeader(Dac6Header value) { this.header = value; return this; }
        public String getArrangementID() { return arrangementID; }
        public Dac6Arrangement setArrangementID(String value) { this.arrangementID = value; return this; }
        public Dac6Disclosure getDac6Disclosure() { return dac6Disclosure; }
        public Dac6Arrangement setDac6Disclosure(Dac6Disclosure value) { this.dac6Disclosure = value; return this; }
    }

    /**
    * Angaben zu den Kopfdaten
    */
    @Api(Description="Angaben zu den Kopfdaten")
    public static class Dac6Header
    {
        /**
        * Empfängerstaaten
        */
        @ApiMember(Description="Empfängerstaaten", Name="ReceivingCountries")
        public ArrayList<CountryCode> receivingCountries = null;

        /**
        * MessageRefID Angabe im Format  DEMYYYYMMDDXXXXXX...XXX  <DE><M><Datum><Bezeichner><Kombination>  DE beinhaltet den ISO country code "DE"  M besteht aus dem Buchstaben "M" für MessageRefID  Datum an dem die MessageRefID ausgestellt wurde im Format YYYYMMDD  Bezeichner beinhaltet EOP/BOP-Nummer  eine Kombination aus Ziffern (0-9) und Großbuchstaben (AZ).  Der Bezeichner ist die EOP/BOP-Nummer, die übrigen Felder sind so zu befüllen, dass bei mehreren Lieferungen zu einem Datum jede MessageRefID eines Melders einzigartig ist.  Die Länge der MessageRefID ist durch eine Geschäftsregel auf 40 Zeichen beschränkt.
        */
        @ApiMember(Description="MessageRefID Angabe im Format  DEMYYYYMMDDXXXXXX...XXX  <DE><M><Datum><Bezeichner><Kombination>  DE beinhaltet den ISO country code \"DE\"  M besteht aus dem Buchstaben \"M\" für MessageRefID  Datum an dem die MessageRefID ausgestellt wurde im Format YYYYMMDD  Bezeichner beinhaltet EOP/BOP-Nummer  eine Kombination aus Ziffern (0-9) und Großbuchstaben (AZ).  Der Bezeichner ist die EOP/BOP-Nummer, die übrigen Felder sind so zu befüllen, dass bei mehreren Lieferungen zu einem Datum jede MessageRefID eines Melders einzigartig ist.  Die Länge der MessageRefID ist durch eine Geschäftsregel auf 40 Zeichen beschränkt.", IsRequired=true, Name="MessageRefId")
        public String messageRefId = null;

        /**
        * Zeitstempel Dieses Feld gibt das Datum und die Uhrzeit der Erstellung der Nachricht im XML DateTime Format (YYYY MM DD'Dac6RelevantTaxPayer'hh:mm:ss.mmm) gemäß CET an Sollte die Meldung aus einer abweichenden Zeitzone erfolgen, so ist eine Umrechnung auf CET vorzunehmen.
        */
        @ApiMember(Description="Zeitstempel Dieses Feld gibt das Datum und die Uhrzeit der Erstellung der Nachricht im XML DateTime Format (YYYY MM DD'Dac6RelevantTaxPayer'hh:mm:ss.mmm) gemäß CET an Sollte die Meldung aus einer abweichenden Zeitzone erfolgen, so ist eine Umrechnung auf CET vorzunehmen.", IsRequired=true, Name="Timestamp")
        public Date timestamp = null;
        
        public ArrayList<CountryCode> getReceivingCountries() { return receivingCountries; }
        public Dac6Header setReceivingCountries(ArrayList<CountryCode> value) { this.receivingCountries = value; return this; }
        public String getMessageRefId() { return messageRefId; }
        public Dac6Header setMessageRefId(String value) { this.messageRefId = value; return this; }
        public Date getTimestamp() { return timestamp; }
        public Dac6Header setTimestamp(Date value) { this.timestamp = value; return this; }
    }

    /**
    * Angaben zur Offenlegung
    */
    @Api(Description="Angaben zur Offenlegung")
    public static class Dac6Disclosure
    {
        /**
        * Angabe im Format DEDYYYYMMDDXXXXXX <DE><D><YYYYMMDD><Bezeichner> DE enthält den ISO Staatencode von Deutschland D enthält den Buchstaben "D" (Disclosure/Datensatz) YYYYMMDD enthält das Ausgabedatum der Offenlegungsnummer XXXXXX ist eine Kombination aus Großbuchstaben (A-Z) und Ziffern (0-9) Dieses Feld darf nur für Korrekturen bei gleichzeitiger Angabe der dazugehörigen ArrangementID genutzt werden. Korrekturen für Meldungen mit einer DisclosureID, die nicht mit "DE" beginnt, sind nicht zulässig.
        */
        @ApiMember(Description="Angabe im Format DEDYYYYMMDDXXXXXX <DE><D><YYYYMMDD><Bezeichner> DE enthält den ISO Staatencode von Deutschland D enthält den Buchstaben \"D\" (Disclosure/Datensatz) YYYYMMDD enthält das Ausgabedatum der Offenlegungsnummer XXXXXX ist eine Kombination aus Großbuchstaben (A-Z) und Ziffern (0-9) Dieses Feld darf nur für Korrekturen bei gleichzeitiger Angabe der dazugehörigen ArrangementID genutzt werden. Korrekturen für Meldungen mit einer DisclosureID, die nicht mit \"DE\" beginnt, sind nicht zulässig.", Name="DisclosureID")
        public String disclosureID = null;

        /**
        * Angabe im Format DEDYYYYMMDDXXXXXX <DE><D><YYYYMMDD><Bezeichner> DE entspricht dem ISO Staatencode, hier steht bei einer in Deutschland übermittelten Meldung stets "DE". D steht für "D" wie Disclosure. YYYYMMDD ist das Datum der Vergabe der DisclosureID Bezeichner - 6-stellig Dieses Feld darf nur für Nachmeldungen von Nutzerdaten und Korrekturen von Nachmeldungen verwendet werden, wenn der Intermediär nicht von der Verschwiegenheitspflicht entbunden wurde. Nachmeldungen und Korrekturen für Meldungen mit einer RefDisclosureID, die nicht mit "DE" beginnt, sind nicht zulässig.
        */
        @ApiMember(Description="Angabe im Format DEDYYYYMMDDXXXXXX <DE><D><YYYYMMDD><Bezeichner> DE entspricht dem ISO Staatencode, hier steht bei einer in Deutschland übermittelten Meldung stets \"DE\". D steht für \"D\" wie Disclosure. YYYYMMDD ist das Datum der Vergabe der DisclosureID Bezeichner - 6-stellig Dieses Feld darf nur für Nachmeldungen von Nutzerdaten und Korrekturen von Nachmeldungen verwendet werden, wenn der Intermediär nicht von der Verschwiegenheitspflicht entbunden wurde. Nachmeldungen und Korrekturen für Meldungen mit einer RefDisclosureID, die nicht mit \"DE\" beginnt, sind nicht zulässig.", Name="RefDisclosureID")
        public String refDisclosureID = null;

        /**
        * Sprache Hier ist die Sprache als ISO Code anzugeben, in der die Meldung erfolgt. Hier kann nur "DE" oder "EN" gewählt werden.
        */
        @ApiMember(Description="Sprache Hier ist die Sprache als ISO Code anzugeben, in der die Meldung erfolgt. Hier kann nur \"DE\" oder \"EN\" gewählt werden.", Name="Language")
        public LanguageCode language = null;

        /**
        * Meldepflichtiger
        */
        @ApiMember(Description="Meldepflichtiger", IsRequired=true, Name="Disclosing")
        public Dac6Discloser disclosing = null;

        /**
        * Initialmeldung In diesem Feld muss angegeben werden, ob es sich um dieerste Meldung zu einer marktfähigen Gestaltung (Arrangement) handelt. Default value = false
        */
        @ApiMember(Description="Initialmeldung In diesem Feld muss angegeben werden, ob es sich um dieerste Meldung zu einer marktfähigen Gestaltung (Arrangement) handelt. Default value = false", IsRequired=true, Name="InitialDisclosureMA")
        public Boolean initialDisclosureMA = null;

        /**
        * Angabe aller bekannten Nutzer
        */
        @ApiMember(Description="Angabe aller bekannten Nutzer", Name="RelevantTaxPayers")
        public Dac6RelevantTaxPayers relevantTaxPayers = null;

        /**
        * Angabe aller bekannten Nutzer
        */
        @ApiMember(Description="Angabe aller bekannten Nutzer", Name="Intermediaries")
        public Dac6Intermediaries intermediaries = null;

        /**
        * Angaben zu allen in einem Mitgliedstaat der Europäischen Union ansässigen Personen, die von der grenzüberschreitenden Steuergestaltung wahrscheinlich unmittelbar betroffen sind, einschließlich Angaben darüber, zu welchen Mitgliedstaaten der Europäischen Union sie in Beziehung stehen.
        */
        @ApiMember(Description="Angaben zu allen in einem Mitgliedstaat der Europäischen Union ansässigen Personen, die von der grenzüberschreitenden Steuergestaltung wahrscheinlich unmittelbar betroffen sind, einschließlich Angaben darüber, zu welchen Mitgliedstaaten der Europäischen Union sie in Beziehung stehen.", Name="Intermediaries")
        public Dac6AffectedPersons affectedPersons = null;

        /**
        * Angabe der Informationen zur Steuergestaltung
        */
        @ApiMember(Description="Angabe der Informationen zur Steuergestaltung", IsRequired=true, Name="DisclosureInformation")
        public Dac6DisclosureInformation disclosureInformation = null;
        
        public String getDisclosureID() { return disclosureID; }
        public Dac6Disclosure setDisclosureID(String value) { this.disclosureID = value; return this; }
        public String getRefDisclosureID() { return refDisclosureID; }
        public Dac6Disclosure setRefDisclosureID(String value) { this.refDisclosureID = value; return this; }
        public LanguageCode getLanguage() { return language; }
        public Dac6Disclosure setLanguage(LanguageCode value) { this.language = value; return this; }
        public Dac6Discloser getDisclosing() { return disclosing; }
        public Dac6Disclosure setDisclosing(Dac6Discloser value) { this.disclosing = value; return this; }
        public Boolean isInitialDisclosureMA() { return initialDisclosureMA; }
        public Dac6Disclosure setInitialDisclosureMA(Boolean value) { this.initialDisclosureMA = value; return this; }
        public Dac6RelevantTaxPayers getRelevantTaxPayers() { return relevantTaxPayers; }
        public Dac6Disclosure setRelevantTaxPayers(Dac6RelevantTaxPayers value) { this.relevantTaxPayers = value; return this; }
        public Dac6Intermediaries getIntermediaries() { return intermediaries; }
        public Dac6Disclosure setIntermediaries(Dac6Intermediaries value) { this.intermediaries = value; return this; }
        public Dac6AffectedPersons getAffectedPersons() { return affectedPersons; }
        public Dac6Disclosure setAffectedPersons(Dac6AffectedPersons value) { this.affectedPersons = value; return this; }
        public Dac6DisclosureInformation getDisclosureInformation() { return disclosureInformation; }
        public Dac6Disclosure setDisclosureInformation(Dac6DisclosureInformation value) { this.disclosureInformation = value; return this; }
    }

    /**
    * Angaben zum Meldepflichtigen
    */
    @Api(Description="Angaben zum Meldepflichtigen")
    public static class Dac6Discloser
    {
        /**
        * Identifikationsdaten zum Meldepflichtigen
        */
        @ApiMember(Description="Identifikationsdaten zum Meldepflichtigen", IsRequired=true, Name="ID")
        public Dac6PersonOrganisation id = null;

        /**
        * Meldepflichtiger Angabe der Verbindung des Intermediärs zu Deutschland und des Meldegrunds. Die Angaben zum Meldepflichtigen sind durch eine Geschäftsregel verpflichtend vorzunehmen.
        */
        @ApiMember(Description="Meldepflichtiger Angabe der Verbindung des Intermediärs zu Deutschland und des Meldegrunds. Die Angaben zum Meldepflichtigen sind durch eine Geschäftsregel verpflichtend vorzunehmen.", Name="Liability")
        public Dac6Liability liability = null;
        
        public Dac6PersonOrganisation getId() { return id; }
        public Dac6Discloser setId(Dac6PersonOrganisation value) { this.id = value; return this; }
        public Dac6Liability getLiability() { return liability; }
        public Dac6Discloser setLiability(Dac6Liability value) { this.liability = value; return this; }
    }

    /**
    * Entweder Angabe von Individual oder Angabe von Organisation
    */
    @Api(Description="Entweder Angabe von Individual oder Angabe von Organisation")
    public static class Dac6PersonOrganisation
    {
        /**
        * Natürliche Person Zwingend anzugeben, wenn PersonOrganisation keine Organisation ist. Die Folgeeintragungen sind abhängig von dieser Auswahl.
        */
        @ApiMember(Description="Natürliche Person Zwingend anzugeben, wenn PersonOrganisation keine Organisation ist. Die Folgeeintragungen sind abhängig von dieser Auswahl.", IsRequired=true, Name="Individual")
        public Dac6Person individual = null;

        /**
        * Organisation Zwingend anzugeben, PersonOrganisation keine Person ist. Die Folgeeintragungen sind abhängig von dieser Auswahl.
        */
        @ApiMember(Description="Organisation Zwingend anzugeben, PersonOrganisation keine Person ist. Die Folgeeintragungen sind abhängig von dieser Auswahl.", IsRequired=true, Name="Individual")
        public Dac6Organisation organisation = null;
        
        public Dac6Person getIndividual() { return individual; }
        public Dac6PersonOrganisation setIndividual(Dac6Person value) { this.individual = value; return this; }
        public Dac6Organisation getOrganisation() { return organisation; }
        public Dac6PersonOrganisation setOrganisation(Dac6Organisation value) { this.organisation = value; return this; }
    }

    /**
    * Natürliche Person
    */
    @Api(Description="Natürliche Person")
    public static class Dac6Person
    {
        /**
        * Namensangaben
        */
        @ApiMember(Description="Namensangaben", IsRequired=true, Name="IndividualName")
        public Dac6NamePerson individualName = null;

        /**
        * GeburtsdatumFormat: YYYY-MM-DD
        */
        @ApiMember(Description="GeburtsdatumFormat: YYYY-MM-DD", IsRequired=true, Name="BirthDate")
        public Date birthDate = null;

        /**
        * Geburtsort
        */
        @ApiMember(Description="Geburtsort", IsRequired=true, Name="BirthPlace")
        public String birthPlace = null;

        /**
        * Steueridentifikationsmerkmale
        */
        @ApiMember(Description="Steueridentifikationsmerkmale", IsRequired=true, Name="TINs")
        public ArrayList<Dac6TIN> tiNs = null;

        /**
        * Adressangaben
        */
        @ApiMember(Description="Adressangaben", IsRequired=true, Name="Address")
        public Dac6Address address = null;

        /**
        * E-Mailadresse
        */
        @ApiMember(Description="E-Mailadresse", Name="EmailAddress")
        public String emailAddress = null;

        /**
        * Ansässigkeitsstaaten
        */
        @ApiMember(Description="Ansässigkeitsstaaten", IsRequired=true, Name="ResCountryCodes")
        public ArrayList<CountryCode> resCountryCodes = null;
        
        public Dac6NamePerson getIndividualName() { return individualName; }
        public Dac6Person setIndividualName(Dac6NamePerson value) { this.individualName = value; return this; }
        public Date getBirthDate() { return birthDate; }
        public Dac6Person setBirthDate(Date value) { this.birthDate = value; return this; }
        public String getBirthPlace() { return birthPlace; }
        public Dac6Person setBirthPlace(String value) { this.birthPlace = value; return this; }
        public ArrayList<Dac6TIN> getTiNs() { return tiNs; }
        public Dac6Person setTiNs(ArrayList<Dac6TIN> value) { this.tiNs = value; return this; }
        public Dac6Address getAddress() { return address; }
        public Dac6Person setAddress(Dac6Address value) { this.address = value; return this; }
        public String getEmailAddress() { return emailAddress; }
        public Dac6Person setEmailAddress(String value) { this.emailAddress = value; return this; }
        public ArrayList<CountryCode> getResCountryCodes() { return resCountryCodes; }
        public Dac6Person setResCountryCodes(ArrayList<CountryCode> value) { this.resCountryCodes = value; return this; }
    }

    /**
    * Stellt die Namensangaben dar.
    */
    @Api(Description="Stellt die Namensangaben dar.")
    public static class Dac6NamePerson
    {
        /**
        * Vorangestellter Titel
        */
        @ApiMember(Description="Vorangestellter Titel", IsRequired=true, Name="PrecedingTitle")
        public String precedingTitle = null;

        /**
        * Titel
        */
        @ApiMember(Description="Titel", Name="Title")
        public String title = null;

        /**
        * Vorname
        */
        @ApiMember(Description="Vorname", IsRequired=true, Name="FirstName")
        public String firstName = null;

        /**
        * Zweitname (weitere Namen)
        */
        @ApiMember(Description="Zweitname (weitere Namen)", Name="MiddleName")
        public String middleName = null;

        /**
        * Namenszusatz
        */
        @ApiMember(Description="Namenszusatz", Name="NamePrefix")
        public String namePrefix = null;

        /**
        * Nachname
        */
        @ApiMember(Description="Nachname", IsRequired=true, Name="LastName")
        public String lastName = null;

        /**
        * Generationszusatz
        */
        @ApiMember(Description="Generationszusatz", Name="GenerationIdentifier")
        public String generationIdentifier = null;

        /**
        * Titelzusatz
        */
        @ApiMember(Description="Titelzusatz", Name="Suffix")
        public String suffix = null;

        /**
        * Allgemeiner Zusatz
        */
        @ApiMember(Description="Allgemeiner Zusatz", Name="GeneralSuffix")
        public String generalSuffix = null;
        
        public String getPrecedingTitle() { return precedingTitle; }
        public Dac6NamePerson setPrecedingTitle(String value) { this.precedingTitle = value; return this; }
        public String getTitle() { return title; }
        public Dac6NamePerson setTitle(String value) { this.title = value; return this; }
        public String getFirstName() { return firstName; }
        public Dac6NamePerson setFirstName(String value) { this.firstName = value; return this; }
        public String getMiddleName() { return middleName; }
        public Dac6NamePerson setMiddleName(String value) { this.middleName = value; return this; }
        public String getNamePrefix() { return namePrefix; }
        public Dac6NamePerson setNamePrefix(String value) { this.namePrefix = value; return this; }
        public String getLastName() { return lastName; }
        public Dac6NamePerson setLastName(String value) { this.lastName = value; return this; }
        public String getGenerationIdentifier() { return generationIdentifier; }
        public Dac6NamePerson setGenerationIdentifier(String value) { this.generationIdentifier = value; return this; }
        public String getSuffix() { return suffix; }
        public Dac6NamePerson setSuffix(String value) { this.suffix = value; return this; }
        public String getGeneralSuffix() { return generalSuffix; }
        public Dac6NamePerson setGeneralSuffix(String value) { this.generalSuffix = value; return this; }
    }

    /**
    * Steueridentifikationsmerkmal Stellt die Angabe der Steuernummer dar.
    */
    @Api(Description="Steueridentifikationsmerkmal Stellt die Angabe der Steuernummer dar.")
    public static class Dac6TIN
    {
        /**
        * Ausstellender Staat
        */
        @ApiMember(Description="Ausstellender Staat", Name="IssuedBy")
        public CountryCode issuedBy = null;

        /**
        * Steuernummer
        */
        @ApiMember(Description="Steuernummer", IsRequired=true, Name="Value")
        public String value = null;
        
        public CountryCode getIssuedBy() { return issuedBy; }
        public Dac6TIN setIssuedBy(CountryCode value) { this.issuedBy = value; return this; }
        public String getValue() { return value; }
        public Dac6TIN setValue(String value) { this.value = value; return this; }
    }

    public static enum CountryCode
    {
        Af,
        Ax,
        Al,
        Dz,
        As,
        Ad,
        Ao,
        Ai,
        Aq,
        Ag,
        Ar,
        Am,
        Aw,
        Au,
        At,
        Az,
        Bs,
        Bh,
        Bd,
        Bb,
        By,
        Be,
        Bz,
        Bj,
        Bm,
        Bt,
        Bo,
        Bq,
        Ba,
        Bw,
        Bv,
        Br,
        Io,
        Bn,
        Bg,
        Bf,
        Bi,
        Kh,
        Cm,
        Ca,
        Cv,
        Ky,
        Cf,
        Td,
        Cl,
        Cn,
        Cx,
        Cc,
        Co,
        Km,
        Cg,
        Cd,
        Ck,
        Cr,
        Ci,
        Hr,
        Cu,
        Cw,
        Cy,
        Cz,
        Dk,
        Dj,
        Dm,
        Do,
        Ec,
        Eg,
        Sv,
        Gq,
        Er,
        Ee,
        Et,
        Fk,
        Fo,
        Fj,
        Fi,
        Fr,
        Gf,
        Pf,
        Tf,
        Ga,
        Gm,
        Ge,
        De,
        Gh,
        Gi,
        Gr,
        Gl,
        Gd,
        Gp,
        Gu,
        Gt,
        Gg,
        Gn,
        Gw,
        Gy,
        Ht,
        Hm,
        Va,
        Hn,
        Hk,
        Hu,
        Is,
        In,
        Id,
        Ir,
        Iq,
        Ie,
        Im,
        Il,
        It,
        Jm,
        Jp,
        Je,
        Jo,
        Kz,
        Ke,
        Ki,
        Kp,
        Kr,
        Kw,
        Kg,
        La,
        Lv,
        Lb,
        Ls,
        Lr,
        Ly,
        Li,
        Lt,
        Lu,
        Mo,
        Mk,
        Mg,
        Mw,
        My,
        Mv,
        Ml,
        Mt,
        Mh,
        Mq,
        Mr,
        Mu,
        Yt,
        Mx,
        Fm,
        Md,
        Mc,
        Mn,
        Me,
        Ms,
        Ma,
        Mz,
        Mm,
        Na,
        Nr,
        Np,
        Nl,
        Nc,
        Nz,
        Ni,
        Ne,
        Ng,
        Nu,
        Nf,
        Mp,
        No,
        Om,
        Pk,
        Pw,
        Ps,
        Pa,
        Pg,
        Py,
        Pe,
        Ph,
        Pn,
        Pl,
        Pt,
        Pr,
        Qa,
        Re,
        Ro,
        Ru,
        Rw,
        Bl,
        Sh,
        Kn,
        Lc,
        Mf,
        Pm,
        Vc,
        Ws,
        Sm,
        St,
        Sa,
        Sn,
        Rs,
        Sc,
        Sl,
        Sg,
        Sx,
        Sk,
        Si,
        Sb,
        So,
        Za,
        Gs,
        Ss,
        Es,
        Lk,
        Sd,
        Sr,
        Sj,
        Sz,
        Se,
        Ch,
        Sy,
        Tw,
        Tj,
        Tz,
        Th,
        Tl,
        Tg,
        Tk,
        To,
        Tt,
        Tn,
        Tr,
        Tm,
        Tc,
        Tv,
        Ug,
        Ua,
        Ae,
        Gb,
        Us,
        Um,
        Uy,
        Uz,
        Vu,
        Ve,
        Vn,
        Vg,
        Vi,
        Wf,
        Eh,
        Ye,
        Zm,
        Zw,
        Xk,
        Xx;
    }

    /**
    * Stellt die Andressangaben dar.
    */
    @Api(Description="Stellt die Andressangaben dar.")
    public static class Dac6Address
    {
        /**
        * Straße
        */
        @ApiMember(Description="Straße", Name="Street")
        public String street = null;

        /**
        * Hausnummer
        */
        @ApiMember(Description="Hausnummer", Name="BuildingIdentifier")
        public String buildingIdentifier = null;

        /**
        * Wohnungsbezeichnung
        */
        @ApiMember(Description="Wohnungsbezeichnung", Name="SuiteIdentifier")
        public String suiteIdentifier = null;

        /**
        * Etagenbezeichnung
        */
        @ApiMember(Description="Etagenbezeichnung", Name="FloorIdentifier")
        public String floorIdentifier = null;

        /**
        * Verwaltungsbezirk
        */
        @ApiMember(Description="Verwaltungsbezirk", Name="DistrictName")
        public String districtName = null;

        /**
        * Postfach
        */
        @ApiMember(Description="Postfach", Name="POB")
        public String pob = null;

        /**
        * Postleitzahl
        */
        @ApiMember(Description="Postleitzahl", Name="PostCode")
        public String postCode = null;

        /**
        * Ort
        */
        @ApiMember(Description="Ort", IsRequired=true, Name="City")
        public String city = null;

        /**
        * Staat Zweibuchstabiges Länderkürzel nach ISO Norm 3166-1 Alpha 2
        */
        @ApiMember(Description="Staat Zweibuchstabiges Länderkürzel nach ISO Norm 3166-1 Alpha 2", IsRequired=true, Name="Country")
        public CountryCode country = null;
        
        public String getStreet() { return street; }
        public Dac6Address setStreet(String value) { this.street = value; return this; }
        public String getBuildingIdentifier() { return buildingIdentifier; }
        public Dac6Address setBuildingIdentifier(String value) { this.buildingIdentifier = value; return this; }
        public String getSuiteIdentifier() { return suiteIdentifier; }
        public Dac6Address setSuiteIdentifier(String value) { this.suiteIdentifier = value; return this; }
        public String getFloorIdentifier() { return floorIdentifier; }
        public Dac6Address setFloorIdentifier(String value) { this.floorIdentifier = value; return this; }
        public String getDistrictName() { return districtName; }
        public Dac6Address setDistrictName(String value) { this.districtName = value; return this; }
        public String getPob() { return pob; }
        public Dac6Address setPob(String value) { this.pob = value; return this; }
        public String getPostCode() { return postCode; }
        public Dac6Address setPostCode(String value) { this.postCode = value; return this; }
        public String getCity() { return city; }
        public Dac6Address setCity(String value) { this.city = value; return this; }
        public CountryCode getCountry() { return country; }
        public Dac6Address setCountry(CountryCode value) { this.country = value; return this; }
    }

    /**
    * Organisation
    */
    @Api(Description="Organisation")
    public static class Dac6Organisation
    {
        /**
        * Die Name der Organisation
        */
        @ApiMember(Description="Die Name der Organisation", IsRequired=true, Name="OrganisationNames")
        public ArrayList<Dac6NameOrganisation> organisationNames = null;

        /**
        * Steueridentifikationsmerkmale
        */
        @ApiMember(Description="Steueridentifikationsmerkmale", IsRequired=true, Name="TINs")
        public ArrayList<Dac6TIN> tiNs = null;

        /**
        * Adressangaben
        */
        @ApiMember(Description="Adressangaben", IsRequired=true, Name="Address")
        public Dac6Address address = null;

        /**
        * E-Mailadresse
        */
        @ApiMember(Description="E-Mailadresse", Name="EmailAddress")
        public String emailAddress = null;

        /**
        * Ansässigkeitsstaaten
        */
        @ApiMember(Description="Ansässigkeitsstaaten", IsRequired=true, Name="ResCountryCodes")
        public ArrayList<CountryCode> resCountryCodes = null;
        
        public ArrayList<Dac6NameOrganisation> getOrganisationNames() { return organisationNames; }
        public Dac6Organisation setOrganisationNames(ArrayList<Dac6NameOrganisation> value) { this.organisationNames = value; return this; }
        public ArrayList<Dac6TIN> getTiNs() { return tiNs; }
        public Dac6Organisation setTiNs(ArrayList<Dac6TIN> value) { this.tiNs = value; return this; }
        public Dac6Address getAddress() { return address; }
        public Dac6Organisation setAddress(Dac6Address value) { this.address = value; return this; }
        public String getEmailAddress() { return emailAddress; }
        public Dac6Organisation setEmailAddress(String value) { this.emailAddress = value; return this; }
        public ArrayList<CountryCode> getResCountryCodes() { return resCountryCodes; }
        public Dac6Organisation setResCountryCodes(ArrayList<CountryCode> value) { this.resCountryCodes = value; return this; }
    }

    /**
    * Stellt den Name der Organisation dar
    */
    @Api(Description="Stellt den Name der Organisation dar")
    public static class Dac6NameOrganisation
    {
        /**
        * Sprache Hier ist die Sprache als ISO Code anzugeben, in der die Meldung erfolgt.Hier kann nur "DE" oder "EN" gewählt werden.
        */
        @ApiMember(Description="Sprache Hier ist die Sprache als ISO Code anzugeben, in der die Meldung erfolgt.Hier kann nur \"DE\" oder \"EN\" gewählt werden.", IsRequired=true, Name="Language")
        public LanguageCode language = null;

        /**
        * Namenswert der Organisation
        */
        @ApiMember(Description="Namenswert der Organisation", IsRequired=true, Name="Value")
        public String value = null;
        
        public LanguageCode getLanguage() { return language; }
        public Dac6NameOrganisation setLanguage(LanguageCode value) { this.language = value; return this; }
        public String getValue() { return value; }
        public Dac6NameOrganisation setValue(String value) { this.value = value; return this; }
    }

    /**
    * Angabe der Verbindung des Intermediärs zu Deutschland und des Meldegrunds. Die Angaben zum Meldepflichtigen sind durch eine Geschäftsregel verpflichtend vorzunehmen.
    */
    @Api(Description="Angabe der Verbindung des Intermediärs zu Deutschland und des Meldegrunds. Die Angaben zum Meldepflichtigen sind durch eine Geschäftsregel verpflichtend vorzunehmen.")
    public static class Dac6Liability
    {
        /**
        * Meldepflichtiger Intermediär Dieses Feld ist verpflichtend anzugeben, wenn Liability kein RelevantTaxpayerDiscloser ist.
        */
        @ApiMember(Description="Meldepflichtiger Intermediär Dieses Feld ist verpflichtend anzugeben, wenn Liability kein RelevantTaxpayerDiscloser ist.", IsRequired=true, Name="IntermediaryDiscloser")
        public Dac6IntermediaryDiscloser intermediaryDiscloser = null;

        /**
        * Meldepflichtiger Nutzer Dieses Feld ist verpflichtend anzugeben, wenn Liability kein IntermediaryDiscloser ist.
        */
        @ApiMember(Description="Meldepflichtiger Nutzer Dieses Feld ist verpflichtend anzugeben, wenn Liability kein IntermediaryDiscloser ist.", IsRequired=true, Name="RelevantTaxpayerDiscloser")
        public Dac6RelevantTaxpayerDiscloser relevantTaxpayerDiscloser = null;
        
        public Dac6IntermediaryDiscloser getIntermediaryDiscloser() { return intermediaryDiscloser; }
        public Dac6Liability setIntermediaryDiscloser(Dac6IntermediaryDiscloser value) { this.intermediaryDiscloser = value; return this; }
        public Dac6RelevantTaxpayerDiscloser getRelevantTaxpayerDiscloser() { return relevantTaxpayerDiscloser; }
        public Dac6Liability setRelevantTaxpayerDiscloser(Dac6RelevantTaxpayerDiscloser value) { this.relevantTaxpayerDiscloser = value; return this; }
    }

    /**
    * Meldepflichtiger Intermediär
    */
    @Api(Description="Meldepflichtiger Intermediär")
    public static class Dac6IntermediaryDiscloser
    {
        /**
        * Verbindung des Intermediärs zu Deutschland INEXa - Der Intermediär ist in Deutschland steuerlich ansässig. INEXb - Der Intermediär hat in Deutschland eine Betriebstätte, durch die die Dienstleistungen im Zusammenhang mit der grenzüberschreitenden Steuergestaltung erbracht werden. INEXc - Der Intermediär ist in Deutschland in das Handelsregister oder ein öffentliches berufsrechtliches Register eingetragen. INEXd - Der Intermediär ist in Deutschland bei einem Berufsverband für juristische, steuerliche oder beratende Dienstleistungen registriert
        */
        @ApiMember(Description="Verbindung des Intermediärs zu Deutschland INEXa - Der Intermediär ist in Deutschland steuerlich ansässig. INEXb - Der Intermediär hat in Deutschland eine Betriebstätte, durch die die Dienstleistungen im Zusammenhang mit der grenzüberschreitenden Steuergestaltung erbracht werden. INEXc - Der Intermediär ist in Deutschland in das Handelsregister oder ein öffentliches berufsrechtliches Register eingetragen. INEXd - Der Intermediär ist in Deutschland bei einem Berufsverband für juristische, steuerliche oder beratende Dienstleistungen registriert", IsRequired=true, Name="IntermediaryNexus")
        public Dac6IntermediaryNexus intermediaryNexus = null;

        /**
        * Rolle des Intermediärs DAC61101 – Entwicklung / Vertrieb /Umsetzungsunterstützung DAC61102 – Dienstleister (organisierende / verwaltendeTätigkeit
        */
        @ApiMember(Description="Rolle des Intermediärs DAC61101 – Entwicklung / Vertrieb /Umsetzungsunterstützung DAC61102 – Dienstleister (organisierende / verwaltendeTätigkeit", IsRequired=true, Name="IntermediaryNexus")
        public Dac6IntermediaryCapacity capacity = null;
        
        public Dac6IntermediaryNexus getIntermediaryNexus() { return intermediaryNexus; }
        public Dac6IntermediaryDiscloser setIntermediaryNexus(Dac6IntermediaryNexus value) { this.intermediaryNexus = value; return this; }
        public Dac6IntermediaryCapacity getCapacity() { return capacity; }
        public Dac6IntermediaryDiscloser setCapacity(Dac6IntermediaryCapacity value) { this.capacity = value; return this; }
    }

    public static enum Dac6IntermediaryNexus
    {
        IneXa,
        IneXb,
        IneXc,
        IneXd;
    }

    public static enum Dac6IntermediaryCapacity
    {
        DaC61101,
        DaC61102;
    }

    /**
    * Meldepflichtiger Nutzer
    */
    @Api(Description="Meldepflichtiger Nutzer")
    public static class Dac6RelevantTaxpayerDiscloser
    {
        /**
        * Verbindung des Intermediärs zu Deutschland RTNEXa - Der Nutzer ist in Deutschland steuerlich ansässig. RTNEXb - Der Nutzer hat in Deutschland eine Betriebstätte, der durch die grenzüberschreitende Gestaltung ein Vorteilentsteht. RTNEXc - Der Nutzer erzielt Einkünfte oder Gewinne in Deutschland, obwohl er in keinem Mitgliedstaat steuerlichansässig ist oder eine Betriebstätte hat. RTNEXd - Der Nutzer übt in Deutschland eine Tätigkeit aus obwohl er in keinem Mitgliedstaat ansässig ist oder eine Betriebstätte hat.
        */
        @ApiMember(Description="Verbindung des Intermediärs zu Deutschland RTNEXa - Der Nutzer ist in Deutschland steuerlich ansässig. RTNEXb - Der Nutzer hat in Deutschland eine Betriebstätte, der durch die grenzüberschreitende Gestaltung ein Vorteilentsteht. RTNEXc - Der Nutzer erzielt Einkünfte oder Gewinne in Deutschland, obwohl er in keinem Mitgliedstaat steuerlichansässig ist oder eine Betriebstätte hat. RTNEXd - Der Nutzer übt in Deutschland eine Tätigkeit aus obwohl er in keinem Mitgliedstaat ansässig ist oder eine Betriebstätte hat.", IsRequired=true, Name="RelevantTaxpayerNexus")
        public Dac6RelevantTaxpayerNexus relevantTaxpayerNexus = null;

        /**
        * Rolle des Intermediärs DAC61104 - Verschwiegenheitspflicht des Intermediärs DAC61105 - Intermediär aus Nicht-EU-Staat DAC61106 - Selbst konzipierte Gestaltung
        */
        @ApiMember(Description="Rolle des Intermediärs DAC61104 - Verschwiegenheitspflicht des Intermediärs DAC61105 - Intermediär aus Nicht-EU-Staat DAC61106 - Selbst konzipierte Gestaltung", IsRequired=true, Name="Capacity")
        public Dac6TaxpayerCapacity capacity = null;
        
        public Dac6RelevantTaxpayerNexus getRelevantTaxpayerNexus() { return relevantTaxpayerNexus; }
        public Dac6RelevantTaxpayerDiscloser setRelevantTaxpayerNexus(Dac6RelevantTaxpayerNexus value) { this.relevantTaxpayerNexus = value; return this; }
        public Dac6TaxpayerCapacity getCapacity() { return capacity; }
        public Dac6RelevantTaxpayerDiscloser setCapacity(Dac6TaxpayerCapacity value) { this.capacity = value; return this; }
    }

    public static enum Dac6RelevantTaxpayerNexus
    {
        RtneXa,
        RtneXb,
        RtneXc,
        RtneXd;
    }

    public static enum Dac6TaxpayerCapacity
    {
        DaC61104,
        DaC61105,
        DaC61106;
    }

    /**
    * Angabe aller bekannten Nutzer
    */
    public static class Dac6RelevantTaxPayers
    {
        
    }

    /**
    * Angabe zum jeweiligen Intermediär
    */
    public static class Dac6Intermediaries
    {
        
    }

    /**
    * Angaben zu allen in einem Mitgliedstaat der Europäischen Union ansässigen Personen,die von der grenzüberschreitenden Steuergestaltung wahrscheinlich unmittelbar betroffen sind,einschließlich Angaben darüber, zu welchen Mitgliedstaaten der Europäischen Union sie in Beziehung stehen.
    */
    public static class Dac6AffectedPersons
    {
        
    }

    /**
    * Angabe der Informationen zur Steuergestaltung
    */
    @Api(Description="Angabe der Informationen zur Steuergestaltung")
    public static class Dac6DisclosureInformation
    {
        /**
        * Datum der Umsetzung Format: YYYY-MM-DD Angabe des Datums, an dem der erste Schritt in der Umsetzung der mitteilungspflichtigen Gestaltung gemacht wurde oder wird.
        */
        @ApiMember(Description="Datum der Umsetzung Format: YYYY-MM-DD Angabe des Datums, an dem der erste Schritt in der Umsetzung der mitteilungspflichtigen Gestaltung gemacht wurde oder wird.", Name="ImplementingDate")
        public Date implementingDate = null;

        /**
        * Stand der Gestaltung DAC6701 – Die grenzüberschreitende Steuergestaltung wird zur Umsetzung bereitgestellt. DAC6702 – Der Nutzer ist zur Umsetzung der grenzüberschreitenden Steuergestaltung bereit. DAC6703 – Mindestens ein Nutzer hat den ersten Schritt der Umsetzung der grenzüberschreitenden Steuergestaltung
        */
        @ApiMember(Description="Stand der Gestaltung DAC6701 – Die grenzüberschreitende Steuergestaltung wird zur Umsetzung bereitgestellt. DAC6702 – Der Nutzer ist zur Umsetzung der grenzüberschreitenden Steuergestaltung bereit. DAC6703 – Mindestens ein Nutzer hat den ersten Schritt der Umsetzung der grenzüberschreitenden Steuergestaltung", Name="Reason")
        public Dac6DisclosurerReason reason = null;

        /**
        * Zusammenfassung der Gestaltung Angabe der Beschreibung und der Bezeichnung der Gestaltung.
        */
        @ApiMember(Description="Zusammenfassung der Gestaltung Angabe der Beschreibung und der Bezeichnung der Gestaltung.", Name="Summary")
        public Dac6Summary summary = null;

        /**
        * Rechtsvorschrift
        */
        @ApiMember(Description="Rechtsvorschrift", Name="NationalProvision")
        public Dac6NationalProvision nationalProvision = null;

        /**
        * Angabe des tatsächlichen oder voraussichtlichen wirtschaftlichen Werts der grenzüberschreitenden Steuergestaltung.
        */
        @ApiMember(Description="Angabe des tatsächlichen oder voraussichtlichen wirtschaftlichen Werts der grenzüberschreitenden Steuergestaltung.", Name="Amount")
        public Dac6Amount amount = null;

        /**
        * Unternehmensstruktur Erstellung eines Unternehmenscharts über mehrere Ebenen. Durch die Erfassung einer/s Muttergesellschaft/er und die jeweiligen Untergesellschaften/er ist somit der Aufbau eines Unternehmschart möglich.
        */
        @ApiMember(Description="Unternehmensstruktur Erstellung eines Unternehmenscharts über mehrere Ebenen. Durch die Erfassung einer/s Muttergesellschaft/er und die jeweiligen Untergesellschaften/er ist somit der Aufbau eines Unternehmschart möglich.", Name="NationalProvision")
        public Dac6ArrangementChart arrangementChart = null;

        /**
        * Betroffenen Mitgliedstaaten
        */
        @ApiMember(Description="Betroffenen Mitgliedstaaten", Name="ConcernedMSs")
        public Dac6ConcernedMSs concernedMSs = null;

        /**
        * Steuerlicher Vorteil Angabe, ob ein steuerlicher Vorteil vorliegt oder nicht. true: ein steuerlicher Vorteil vorliegt false: ein steuerlicher Vorteil vorliegt nicht.
        */
        @ApiMember(Description="Steuerlicher Vorteil Angabe, ob ein steuerlicher Vorteil vorliegt oder nicht. true: ein steuerlicher Vorteil vorliegt false: ein steuerlicher Vorteil vorliegt nicht.", Name="MainBenefitTest1")
        public Boolean mainBenefitTest1 = null;

        /**
        * Liste der Kennzeichen Auswahl der Kennzeichen der meldepflichtigen Gestaltung.Bestimmte Kennzeichen können nur ausgewählt werden, wenn der MainBenefitTest1 mit „true“ angegeben wird.Zusätzlich kann hier beim Kennzeichen "DAC6D1Other" überein Freitextfeld eine Beschreibung des zusätzlichen
        */
        @ApiMember(Description="Liste der Kennzeichen Auswahl der Kennzeichen der meldepflichtigen Gestaltung.Bestimmte Kennzeichen können nur ausgewählt werden, wenn der MainBenefitTest1 mit „true“ angegeben wird.Zusätzlich kann hier beim Kennzeichen \"DAC6D1Other\" überein Freitextfeld eine Beschreibung des zusätzlichen", Name="Hallmarks")
        public Dac6Hallmarks hallmarks = null;
        
        public Date getImplementingDate() { return implementingDate; }
        public Dac6DisclosureInformation setImplementingDate(Date value) { this.implementingDate = value; return this; }
        public Dac6DisclosurerReason getReason() { return reason; }
        public Dac6DisclosureInformation setReason(Dac6DisclosurerReason value) { this.reason = value; return this; }
        public Dac6Summary getSummary() { return summary; }
        public Dac6DisclosureInformation setSummary(Dac6Summary value) { this.summary = value; return this; }
        public Dac6NationalProvision getNationalProvision() { return nationalProvision; }
        public Dac6DisclosureInformation setNationalProvision(Dac6NationalProvision value) { this.nationalProvision = value; return this; }
        public Dac6Amount getAmount() { return amount; }
        public Dac6DisclosureInformation setAmount(Dac6Amount value) { this.amount = value; return this; }
        public Dac6ArrangementChart getArrangementChart() { return arrangementChart; }
        public Dac6DisclosureInformation setArrangementChart(Dac6ArrangementChart value) { this.arrangementChart = value; return this; }
        public Dac6ConcernedMSs getConcernedMSs() { return concernedMSs; }
        public Dac6DisclosureInformation setConcernedMSs(Dac6ConcernedMSs value) { this.concernedMSs = value; return this; }
        public Boolean isMainBenefitTest1() { return mainBenefitTest1; }
        public Dac6DisclosureInformation setMainBenefitTest1(Boolean value) { this.mainBenefitTest1 = value; return this; }
        public Dac6Hallmarks getHallmarks() { return hallmarks; }
        public Dac6DisclosureInformation setHallmarks(Dac6Hallmarks value) { this.hallmarks = value; return this; }
    }

    public static enum Dac6DisclosurerReason
    {
        DaC6701,
        DaC6702,
        DaC6703;
    }

    /**
    * Zusammenfassung der Gestaltung Angabe der Beschreibung und der Bezeichnung der Gestaltung
    */
    @Api(Description="Zusammenfassung der Gestaltung Angabe der Beschreibung und der Bezeichnung der Gestaltung")
    public static class Dac6Summary
    {
        /**
        * Name der Gestaltung
        */
        @ApiMember(Description="Name der Gestaltung", IsRequired=true, Name="Disclosure_Name")
        public String disclosure_Name = null;

        /**
        * Beschreibung der Gestaltung Zusammenfassung des Inhalts der grenzüberschreitendenSteuergestaltung einschließlich einer abstrakt gehaltenenBeschreibung der relevanten Geschäftstätigkeit oder Gestaltung des Nutzers, soweit dies nicht zur Offenlegung eines Handels-, Gewerbe- oder Berufsgeheimnisses odereines Geschäftsverfahrens oder von Informationen führt, deren Offenlegung die öffentliche Ordnung verletzen würde.
        */
        @ApiMember(Description="Beschreibung der Gestaltung Zusammenfassung des Inhalts der grenzüberschreitendenSteuergestaltung einschließlich einer abstrakt gehaltenenBeschreibung der relevanten Geschäftstätigkeit oder Gestaltung des Nutzers, soweit dies nicht zur Offenlegung eines Handels-, Gewerbe- oder Berufsgeheimnisses odereines Geschäftsverfahrens oder von Informationen führt, deren Offenlegung die öffentliche Ordnung verletzen würde.", IsRequired=true, Name="Disclosure_Descriptions")
        public ArrayList<Dac6Disclosure_Description> disclosure_Descriptions = null;
        
        public String getDisclosureName() { return disclosure_Name; }
        public Dac6Summary setDisclosureName(String value) { this.disclosure_Name = value; return this; }
        public ArrayList<Dac6Disclosure_Description> getDisclosureDescriptions() { return disclosure_Descriptions; }
        public Dac6Summary setDisclosureDescriptions(ArrayList<Dac6Disclosure_Description> value) { this.disclosure_Descriptions = value; return this; }
    }

    /**
    * Beschreibung der Gestaltung
    */
    @Api(Description="Beschreibung der Gestaltung")
    public static class Dac6Disclosure_Description
    {
        /**
        * Sprache Hier ist die Sprache als ISO Code anzugeben, in der die Meldung erfolgt.Hier kann nur "DE" oder "EN" gewählt werden.
        */
        @ApiMember(Description="Sprache Hier ist die Sprache als ISO Code anzugeben, in der die Meldung erfolgt.Hier kann nur \"DE\" oder \"EN\" gewählt werden.", IsRequired=true, Name="Language")
        public LanguageCode language = null;

        /**
        * Beschreibung
        */
        @ApiMember(Description="Beschreibung", IsRequired=true, Name="Value")
        public String value = null;
        
        public LanguageCode getLanguage() { return language; }
        public Dac6Disclosure_Description setLanguage(LanguageCode value) { this.language = value; return this; }
        public String getValue() { return value; }
        public Dac6Disclosure_Description setValue(String value) { this.value = value; return this; }
    }

    /**
    * Rechtsvorschrift
    */
    @Api(Description="Rechtsvorschrift")
    public static class Dac6NationalProvision
    {
        /**
        * Angabe der Rechtsvorschrift
        */
        @ApiMember(Description="Angabe der Rechtsvorschrift", IsRequired=true, Name="Texts")
        public ArrayList<Dac6Text> texts = null;

        /**
        * Staat zur Rechtsvorschrift Angabe des Staates, der die angegebene Rechtsvorschrift erlassen hat.
        */
        @ApiMember(Description="Staat zur Rechtsvorschrift Angabe des Staates, der die angegebene Rechtsvorschrift erlassen hat.", IsRequired=true, Name="Country")
        public CountryCode country = null;
        
        public ArrayList<Dac6Text> getTexts() { return texts; }
        public Dac6NationalProvision setTexts(ArrayList<Dac6Text> value) { this.texts = value; return this; }
        public CountryCode getCountry() { return country; }
        public Dac6NationalProvision setCountry(CountryCode value) { this.country = value; return this; }
    }

    /**
    * Angabe der Rechtsvorschrift
    */
    @Api(Description="Angabe der Rechtsvorschrift")
    public static class Dac6Text
    {
        /**
        * Sprache Hier ist die Sprache als ISO Code anzugeben, in der die Meldung erfolgt.Hier kann nur "DE" oder "EN" gewählt werden.
        */
        @ApiMember(Description="Sprache Hier ist die Sprache als ISO Code anzugeben, in der die Meldung erfolgt.Hier kann nur \"DE\" oder \"EN\" gewählt werden.", IsRequired=true, Name="Language")
        public LanguageCode language = null;

        /**
        * Beschreibung
        */
        @ApiMember(Description="Beschreibung", IsRequired=true, Name="Value")
        public String value = null;
        
        public LanguageCode getLanguage() { return language; }
        public Dac6Text setLanguage(LanguageCode value) { this.language = value; return this; }
        public String getValue() { return value; }
        public Dac6Text setValue(String value) { this.value = value; return this; }
    }

    /**
    * Angabe des tatsächlichen oder voraussichtlichen wirtschaftlichen Werts der grenzüberschreitenden Steuergestaltung.
    */
    @Api(Description="Angabe des tatsächlichen oder voraussichtlichen wirtschaftlichen Werts der grenzüberschreitenden Steuergestaltung.")
    public static class Dac6Amount
    {
        /**
        * WährungAngabe des ISO-Währungscodes der Währung, in dem der Wert angegeben wurde.
        */
        @ApiMember(Description="WährungAngabe des ISO-Währungscodes der Währung, in dem der Wert angegeben wurde.", IsRequired=true, Name="CurrCode")
        public CurrencyCode currCode = null;

        /**
        * Wirtschaftlicher Wert der Gestaltung
        */
        @ApiMember(Description="Wirtschaftlicher Wert der Gestaltung", IsRequired=true, Name="Value")
        public Long value = null;
        
        public CurrencyCode getCurrCode() { return currCode; }
        public Dac6Amount setCurrCode(CurrencyCode value) { this.currCode = value; return this; }
        public Long getValue() { return value; }
        public Dac6Amount setValue(Long value) { this.value = value; return this; }
    }

    public static enum CurrencyCode
    {
        Aed,
        Afn,
        All,
        Amd,
        Ang,
        Aoa,
        Ars,
        Aud,
        Awg,
        Azn,
        Bam,
        Bbd,
        Bdt,
        Bgn,
        Bhd,
        Bif,
        Bmd,
        Bnd,
        Bob,
        Bov,
        Brl,
        Bsd,
        Btn,
        Bwp,
        Byn,
        Bzd,
        Cad,
        Cdf,
        Che,
        Chf,
        Chw,
        Clf,
        Clp,
        Cny,
        Cop,
        Cou,
        Crc,
        Cuc,
        Cup,
        Cve,
        Czk,
        Djf,
        Dkk,
        Dop,
        Dzd,
        Egp,
        Ern,
        Etb,
        Eur,
        Fjd,
        Fkp,
        Gbp,
        Gel,
        Ghs,
        Gip,
        Gmd,
        Gnf,
        Gtq,
        Gyd,
        Hkd,
        Hnl,
        Hrk,
        Htg,
        Huf,
        Idr,
        Ils,
        Inr,
        Iqd,
        Irr,
        Isk,
        Jmd,
        Jod,
        Jpy,
        Kes,
        Kgs,
        Khr,
        Kmf,
        Kpw,
        Krw,
        Kwd,
        Kyd,
        Kzt,
        Lak,
        Lbp,
        Lkr,
        Lrd,
        Lsl,
        Lyd,
        Mad,
        Mdl,
        Mga,
        Mkd,
        Mmk,
        Mnt,
        Mop,
        Mru,
        Mur,
        Mvr,
        Mwk,
        Mxn,
        Mxv,
        Myr,
        Mzn,
        Nad,
        Ngn,
        Nio,
        Nok,
        Npr,
        Nzd,
        Omr,
        Pab,
        Pen,
        Pgk,
        Php,
        Pkr,
        Pln,
        Pyg,
        Qar,
        Ron,
        Rsd,
        Rub,
        Rwf,
        Sar,
        Sbd,
        Scr,
        Sdg,
        Sek,
        Sgd,
        Shp,
        Sll,
        Sos,
        Srd,
        Ssp,
        Stn,
        Svc,
        Syp,
        Szl,
        Thb,
        Tjs,
        Tmt,
        Tnd,
        Top,
        Try,
        Ttd,
        Twd,
        Tzs,
        Uah,
        Ugx,
        Usd,
        Usn,
        Uyi,
        Uyu,
        Uyw,
        Uzs,
        Ves,
        Vnd,
        Vuv,
        Wst,
        Xaf,
        Xag,
        Xau,
        Xba,
        Xbb,
        Xbc,
        Xbd,
        Xcd,
        Xdr,
        Xof,
        Xpd,
        Xpf,
        Xpt,
        Xsu,
        Xua,
        Xxx,
        Yer,
        Zar,
        Zmw,
        Zwl;
    }

    /**
    * Unternehmensstruktur Erstellung eines Unternehmenscharts über mehrere Ebenen.Durch die Erfassung einer/s Muttergesellschaft/er und die jeweiligen Untergesellschaften/er ist somit der Aufbau eines Unternehmschart möglich.
    */
    @Api(Description="Unternehmensstruktur Erstellung eines Unternehmenscharts über mehrere Ebenen.Durch die Erfassung einer/s Muttergesellschaft/er und die jeweiligen Untergesellschaften/er ist somit der Aufbau eines Unternehmschart möglich.")
    public static class Dac6ArrangementChart
    {
        /**
        * Identifikationsdaten
        */
        @ApiMember(Description="Identifikationsdaten", IsRequired=true, Name="ID")
        public Dac6PersonOrganisation id = null;

        /**
        * Die Beteiligungshöhe in Prozent Angabe der Beteiligungshöhe in Prozent. Der angegebene Wert muss mindestens 0 und darf maximal 100 sein.
        */
        @ApiMember(Description="Die Beteiligungshöhe in Prozent Angabe der Beteiligungshöhe in Prozent. Der angegebene Wert muss mindestens 0 und darf maximal 100 sein.", Name="ID")
        public Integer ownership = null;

        /**
        * Die wertmäßige Beteiligungshöhe
        */
        @ApiMember(Description="Die wertmäßige Beteiligungshöhe", Name="InvestAmount")
        public Dac6Amount investAmount = null;

        /**
        * Beteiligungsangaben
        */
        @ApiMember(Description="Beteiligungsangaben", Name="OtherInfos")
        public ArrayList<Dac6OtherInfo> otherInfos = null;

        /**
        * Nächste Ebene Erfassung einer weiteren Ebene im Unternehmenschart
        */
        @ApiMember(Description="Nächste Ebene Erfassung einer weiteren Ebene im Unternehmenschart", Name="ListChilds")
        public Dac6ListChilds listChilds = null;
        
        public Dac6PersonOrganisation getId() { return id; }
        public Dac6ArrangementChart setId(Dac6PersonOrganisation value) { this.id = value; return this; }
        public Integer getOwnership() { return ownership; }
        public Dac6ArrangementChart setOwnership(Integer value) { this.ownership = value; return this; }
        public Dac6Amount getInvestAmount() { return investAmount; }
        public Dac6ArrangementChart setInvestAmount(Dac6Amount value) { this.investAmount = value; return this; }
        public ArrayList<Dac6OtherInfo> getOtherInfos() { return otherInfos; }
        public Dac6ArrangementChart setOtherInfos(ArrayList<Dac6OtherInfo> value) { this.otherInfos = value; return this; }
        public Dac6ListChilds getListChilds() { return listChilds; }
        public Dac6ArrangementChart setListChilds(Dac6ListChilds value) { this.listChilds = value; return this; }
    }

    /**
    * Beteiligungsangaben Angabe der Rechts- und Vertragsbeziehungen zwischen den Unternehmen/natürlichen Personen. Darüber hinaus ist auch eine Angabe z.B. des Cash Flows oder die Verbindung derbeiden (z.B. Beteiligter o.Ä.) möglich.
    */
    @Api(Description="Beteiligungsangaben Angabe der Rechts- und Vertragsbeziehungen zwischen den Unternehmen/natürlichen Personen. Darüber hinaus ist auch eine Angabe z.B. des Cash Flows oder die Verbindung derbeiden (z.B. Beteiligter o.Ä.) möglich.")
    public static class Dac6OtherInfo
    {
        /**
        * Sprache Hier ist die Sprache als ISO Code anzugeben, in der die Meldung erfolgt.Hier kann nur "DE" oder "EN" gewählt werden.
        */
        @ApiMember(Description="Sprache Hier ist die Sprache als ISO Code anzugeben, in der die Meldung erfolgt.Hier kann nur \"DE\" oder \"EN\" gewählt werden.", IsRequired=true, Name="Language")
        public LanguageCode language = null;

        /**
        * Beschreibung
        */
        @ApiMember(Description="Beschreibung", IsRequired=true, Name="Value")
        public String value = null;
        
        public LanguageCode getLanguage() { return language; }
        public Dac6OtherInfo setLanguage(LanguageCode value) { this.language = value; return this; }
        public String getValue() { return value; }
        public Dac6OtherInfo setValue(String value) { this.value = value; return this; }
    }

    /**
    * Nächste Ebene Erfassung einer weiteren Ebene im Unternehmenschart
    */
    public static class Dac6ListChilds
    {
        
    }

    /**
    * Liste der betroffenen Mitgliedstaaten Angabe der Mitgliedstaaten der Europäischen Union, die wahrscheinlich von der grenzüberschreitenden Steuergestaltung betroffen sind.
    */
    public static class Dac6ConcernedMSs
    {
        
    }

    /**
    * Liste der Kennzeichen Auswahl der Kennzeichen der meldepflichtigen Gestaltung. Bestimmte Kennzeichen können nur ausgewählt werden, wenn der MainBenefitTest1 mit „true“ angegeben wird. Zusätzlich kann hier beim Kennzeichen "DAC6D1Other" über ein Freitextfeld eine Beschreibung des zusätzlichen
    */
    @Api(Description="Liste der Kennzeichen Auswahl der Kennzeichen der meldepflichtigen Gestaltung. Bestimmte Kennzeichen können nur ausgewählt werden, wenn der MainBenefitTest1 mit „true“ angegeben wird. Zusätzlich kann hier beim Kennzeichen \"DAC6D1Other\" über ein Freitextfeld eine Beschreibung des zusätzlichen")
    public static class Dac6Hallmarks
    {
        /**
        * Angabe der Kennzeichen
        */
        @ApiMember(Description="Angabe der Kennzeichen", IsRequired=true, Name="ListHallmarks")
        public Dac6ListHallmarks listHallmarks = null;

        /**
        * Beschreibung des Kennzeichens
        */
        @ApiMember(Description="Beschreibung des Kennzeichens", IsRequired=true, Name="DAC6D1OtherInfos")
        public ArrayList<DAC6D1OtherInfo> daC6D1OtherInfos = null;
        
        public Dac6ListHallmarks getListHallmarks() { return listHallmarks; }
        public Dac6Hallmarks setListHallmarks(Dac6ListHallmarks value) { this.listHallmarks = value; return this; }
        public ArrayList<DAC6D1OtherInfo> getDaC6D1OtherInfos() { return daC6D1OtherInfos; }
        public Dac6Hallmarks setDaC6D1OtherInfos(ArrayList<DAC6D1OtherInfo> value) { this.daC6D1OtherInfos = value; return this; }
    }

    /**
    * Angabe der Kennzeiche Angabe der Einzelheiten zu den nach § 138e zur Mitteilung verpflichtenden Kennzeichen
    */
    @Api(Description="Angabe der Kennzeiche Angabe der Einzelheiten zu den nach § 138e zur Mitteilung verpflichtenden Kennzeichen")
    public static class Dac6ListHallmarks
    {
        /**
        * Betroffene Kennzeichen
        */
        @ApiMember(Description="Betroffene Kennzeichen", IsRequired=true, Name="Hallmarks")
        public ArrayList<Dac6Hallmark> hallmarks = null;
        
        public ArrayList<Dac6Hallmark> getHallmarks() { return hallmarks; }
        public Dac6ListHallmarks setHallmarks(ArrayList<Dac6Hallmark> value) { this.hallmarks = value; return this; }
    }

    public static enum Dac6Hallmark
    {
        DaC6A1,
        DaC6A2a,
        DaC6A2b,
        DaC6A3,
        DaC6B1,
        DaC6B2,
        DaC6B3,
        DaC6C1a,
        DaC6C1bi,
        DaC6C1bii,
        DaC6C1c,
        DaC6C1d,
        DaC6C2,
        DaC6C3,
        DaC6C4,
        DaC6D1Other,
        DaC6D1a,
        DaC6D1b,
        DaC6D1c,
        DaC6D1d,
        DaC6D1e,
        DaC6D1f,
        DaC6D2,
        DaC6E1,
        DaC6E2,
        DaC6E3;
    }

    /**
    * Beschreibung des Kennzeichens Bei Auswahl des Kennzeichens "DAC6D1Other" muss über das freie Textfeld "OtherInfo" eine nähere Beschreibung des Kennzeichens erfolgen. Die beiden Elemente dürfen ausschließlich in Verbindung angegeben werden.
    */
    @Api(Description="Beschreibung des Kennzeichens Bei Auswahl des Kennzeichens \"DAC6D1Other\" muss über das freie Textfeld \"OtherInfo\" eine nähere Beschreibung des Kennzeichens erfolgen. Die beiden Elemente dürfen ausschließlich in Verbindung angegeben werden.")
    public static class DAC6D1OtherInfo
    {
        /**
        * Sprache Hier ist die Sprache als ISO Code anzugeben, in der die Meldung erfolgt.Hier kann nur "DE" oder "EN" gewählt werden.
        */
        @ApiMember(Description="Sprache Hier ist die Sprache als ISO Code anzugeben, in der die Meldung erfolgt.Hier kann nur \"DE\" oder \"EN\" gewählt werden.", IsRequired=true, Name="Language")
        public LanguageCode language = null;

        /**
        * Beschreibung
        */
        @ApiMember(Description="Beschreibung", IsRequired=true, Name="Value")
        public String value = null;
        
        public LanguageCode getLanguage() { return language; }
        public DAC6D1OtherInfo setLanguage(LanguageCode value) { this.language = value; return this; }
        public String getValue() { return value; }
        public DAC6D1OtherInfo setValue(String value) { this.value = value; return this; }
    }

    /**
    * Represents an overview result of a DAC6 or ISG delivery process.
    */
    @Api(Description="Represents an overview result of a DAC6 or ISG delivery process.")
    public static class Dac6Verarbeitungsprotokoll
    {
        /**
        * The version of the process protocol.
        */
        @ApiMember(Description="The version of the process protocol.", Name="Version")
        public String version = null;

        /**
        * The type of message.
        */
        @ApiMember(Description="The type of message.", Name="MessageType")
        public String messageType = null;

        /**
        * The statistical information on the delivery.
        */
        @ApiMember(Description="The statistical information on the delivery.", Name="Lieferungsdetails")
        public Lieferungsdetails lieferungsdetails = null;

        /**
        * Contains protocol entries for the delivery.
        */
        @ApiMember(Description="Contains protocol entries for the delivery.", Name="Protokolleintraege")
        public ArrayList<Protokolleintrag> protokolleintraege = null;
        
        public String getVersion() { return version; }
        public Dac6Verarbeitungsprotokoll setVersion(String value) { this.version = value; return this; }
        public String getMessageType() { return messageType; }
        public Dac6Verarbeitungsprotokoll setMessageType(String value) { this.messageType = value; return this; }
        public Lieferungsdetails getLieferungsdetails() { return lieferungsdetails; }
        public Dac6Verarbeitungsprotokoll setLieferungsdetails(Lieferungsdetails value) { this.lieferungsdetails = value; return this; }
        public ArrayList<Protokolleintrag> getProtokolleintraege() { return protokolleintraege; }
        public Dac6Verarbeitungsprotokoll setProtokolleintraege(ArrayList<Protokolleintrag> value) { this.protokolleintraege = value; return this; }
    }

    /**
    * Represents statistical information on a delivery.
    */
    @Api(Description="Represents statistical information on a delivery.")
    public static class Lieferungsdetails
    {
        /**
        * Indicates whether the reported tax arrangement is domestic or cross-border.
        */
        @ApiMember(Description="Indicates whether the reported tax arrangement is domestic or cross-border.", Name="Verfahren")
        public Dac6Verfahren verfahren = null;

        /**
        * Disclosure-ID e.g. DED20190718UVWXYZ
        */
        @ApiMember(Description="Disclosure-ID e.g. DED20190718UVWXYZ", Name="Version")
        public String offenlegungsnummer = null;

        public String registriernummer = null;
        /**
        * Disclosure ID of the report, which this report refers to.
        */
        @ApiMember(Description="Disclosure ID of the report, which this report refers to.", Name="Bezugsoffenlegung")
        public String bezugsoffenlegung = null;

        /**
        * File name of the delivery file submitted to ELAN. Example: m5_d6_bz123456789_1004557331_shawarma133.xml
        */
        @ApiMember(Description="File name of the delivery file submitted to ELAN. Example: m5_d6_bz123456789_1004557331_shawarma133.xml", Name="Eingabedateiname")
        public String eingabedateiname = null;

        /**
        * Time stamp at which the message was created.
        */
        @ApiMember(Description="Time stamp at which the message was created.", Name="Erstellungsdatum")
        public Date erstellungsdatum = null;

        public String messageRefId = null;
        /**
        * File name of the file returned by ELAN. Example: m5_d6_bz123456789_1004557331_shawarma133_da5b42ce-9d27-4255-920e-1a089eeb0ec8.xml
        */
        @ApiMember(Description="File name of the file returned by ELAN. Example: m5_d6_bz123456789_1004557331_shawarma133_da5b42ce-9d27-4255-920e-1a089eeb0ec8.xml", Name="Version")
        public String ausgabedateiname = null;

        /**
        * Time stamp of the completion process protocol.
        */
        @ApiMember(Description="Time stamp of the completion process protocol.", Name="Protokollerstellungsdatum")
        public Date protokollerstellungsdatum = null;
        
        public Dac6Verfahren getVerfahren() { return verfahren; }
        public Lieferungsdetails setVerfahren(Dac6Verfahren value) { this.verfahren = value; return this; }
        public String getOffenlegungsnummer() { return offenlegungsnummer; }
        public Lieferungsdetails setOffenlegungsnummer(String value) { this.offenlegungsnummer = value; return this; }
        public String getRegistriernummer() { return registriernummer; }
        public Lieferungsdetails setRegistriernummer(String value) { this.registriernummer = value; return this; }
        public String getBezugsoffenlegung() { return bezugsoffenlegung; }
        public Lieferungsdetails setBezugsoffenlegung(String value) { this.bezugsoffenlegung = value; return this; }
        public String getEingabedateiname() { return eingabedateiname; }
        public Lieferungsdetails setEingabedateiname(String value) { this.eingabedateiname = value; return this; }
        public Date getErstellungsdatum() { return erstellungsdatum; }
        public Lieferungsdetails setErstellungsdatum(Date value) { this.erstellungsdatum = value; return this; }
        public String getMessageRefId() { return messageRefId; }
        public Lieferungsdetails setMessageRefId(String value) { this.messageRefId = value; return this; }
        public String getAusgabedateiname() { return ausgabedateiname; }
        public Lieferungsdetails setAusgabedateiname(String value) { this.ausgabedateiname = value; return this; }
        public Date getProtokollerstellungsdatum() { return protokollerstellungsdatum; }
        public Lieferungsdetails setProtokollerstellungsdatum(Date value) { this.protokollerstellungsdatum = value; return this; }
    }

    public static enum Dac6Verfahren
    {
        DaC6,
        Isg;
    }

    /**
    * Represents a protocol entry
    */
    @Api(Description="Represents a protocol entry")
    public static class Protokolleintrag
    {
        /**
        * The type of entry.
        */
        @ApiMember(Description="The type of entry.", Name="EintragArt")
        public Dac6EintragArt eintragArt = null;

        /**
        * Code value of the entry type - error code or information code.
        */
        @ApiMember(Description="Code value of the entry type - error code or information code.", Name="Version")
        public String eintragCode = null;

        /**
        * Text (in German) of the protocol entry.
        */
        @ApiMember(Description="Text (in German) of the protocol entry.", Name="EintragText")
        public String eintragText = null;
        
        public Dac6EintragArt getEintragArt() { return eintragArt; }
        public Protokolleintrag setEintragArt(Dac6EintragArt value) { this.eintragArt = value; return this; }
        public String getEintragCode() { return eintragCode; }
        public Protokolleintrag setEintragCode(String value) { this.eintragCode = value; return this; }
        public String getEintragText() { return eintragText; }
        public Protokolleintrag setEintragText(String value) { this.eintragText = value; return this; }
    }

    public static enum Dac6EintragArt
    {
        Hinweis,
        Fehler;
    }

}

Java CreateDac6XmlAsync DTOs

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

HTTP + X-MSGPACK

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

POST /async/elma/dac6/xml HTTP/1.1 
Host: reportfiling.staging.pwc.de 
Accept: application/x-msgpack
Content-Type: application/x-msgpack
Content-Length: length

{"authSteuernummer":"String","accountId":"String","kundeneigeneId":"String","elmakomVersion":"String","stagingEnabled":false,"dataModel":{"version":"String","sprache":"AA","dac6Arrangement":{"version":"String","header":{"receivingCountries":["AF"],"messageRefId":"String","timestamp":"\/Date(-62135596800000-0000)\/"},"arrangementID":"String","dac6Disclosure":{"disclosureID":"String","refDisclosureID":"String","language":"AA","disclosing":{"id":{"individual":{"individualName":{"precedingTitle":"String","title":"String","firstName":"String","middleName":"String","namePrefix":"String","lastName":"String","generationIdentifier":"String","suffix":"String","generalSuffix":"String"},"birthDate":"\/Date(-62135596800000-0000)\/","birthPlace":"String","tiNs":[{"issuedBy":"AF","value":"String"}],"address":{"street":"String","buildingIdentifier":"String","suiteIdentifier":"String","floorIdentifier":"String","districtName":"String","pob":"String","postCode":"String","city":"String","country":"AF"},"emailAddress":"String","resCountryCodes":["AF"]},"organisation":{"organisationNames":[{"language":"AA","value":"String"}],"tiNs":[{"issuedBy":"AF","value":"String"}],"address":{"street":"String","buildingIdentifier":"String","suiteIdentifier":"String","floorIdentifier":"String","districtName":"String","pob":"String","postCode":"String","city":"String","country":"AF"},"emailAddress":"String","resCountryCodes":["AF"]}},"liability":{"intermediaryDiscloser":{"intermediaryNexus":"INEXa","capacity":"DAC61101"},"relevantTaxpayerDiscloser":{"relevantTaxpayerNexus":"RTNEXa","capacity":"DAC61104"}}},"initialDisclosureMA":false,"relevantTaxPayers":[{"id":{"individual":{"individualName":{"precedingTitle":"String","title":"String","firstName":"String","middleName":"String","namePrefix":"String","lastName":"String","generationIdentifier":"String","suffix":"String","generalSuffix":"String"},"birthDate":"\/Date(-62135596800000-0000)\/","birthPlace":"String","tiNs":[{"issuedBy":"AF","value":"String"}],"address":{"street":"String","buildingIdentifier":"String","suiteIdentifier":"String","floorIdentifier":"String","districtName":"String","pob":"String","postCode":"String","city":"String","country":"AF"},"emailAddress":"String","resCountryCodes":["AF"]},"organisation":{"organisationNames":[{"language":"AA","value":"String"}],"tiNs":[{"issuedBy":"AF","value":"String"}],"address":{"street":"String","buildingIdentifier":"String","suiteIdentifier":"String","floorIdentifier":"String","districtName":"String","pob":"String","postCode":"String","city":"String","country":"AF"},"emailAddress":"String","resCountryCodes":["AF"]}},"taxpayerImplementingDate":"\/Date(-62135596800000-0000)\/","associatedEnterprises":[{"associatedEnterpriseID":{"individual":{"individualName":{"precedingTitle":"String","title":"String","firstName":"String","middleName":"String","namePrefix":"String","lastName":"String","generationIdentifier":"String","suffix":"String","generalSuffix":"String"},"birthDate":"\/Date(-62135596800000-0000)\/","birthPlace":"String","tiNs":[{"issuedBy":"AF","value":"String"}],"address":{"street":"String","buildingIdentifier":"String","suiteIdentifier":"String","floorIdentifier":"String","districtName":"String","pob":"String","postCode":"String","city":"String","country":"AF"},"emailAddress":"String","resCountryCodes":["AF"]},"organisation":{"organisationNames":[{"language":"AA","value":"String"}],"tiNs":[{"issuedBy":"AF","value":"String"}],"address":{"street":"String","buildingIdentifier":"String","suiteIdentifier":"String","floorIdentifier":"String","districtName":"String","pob":"String","postCode":"String","city":"String","country":"AF"},"emailAddress":"String","resCountryCodes":["AF"]}},"affectedPerson":false}]}],"intermediaries":[{"id":{"individual":{"individualName":{"precedingTitle":"String","title":"String","firstName":"String","middleName":"String","namePrefix":"String","lastName":"String","generationIdentifier":"String","suffix":"String","generalSuffix":"String"},"birthDate":"\/Date(-62135596800000-0000)\/","birthPlace":"String","tiNs":[{"issuedBy":"AF","value":"String"}],"address":{"street":"String","buildingIdentifier":"String","suiteIdentifier":"String","floorIdentifier":"String","districtName":"String","pob":"String","postCode":"String","city":"String","country":"AF"},"emailAddress":"String","resCountryCodes":["AF"]},"organisation":{"organisationNames":[{"language":"AA","value":"String"}],"tiNs":[{"issuedBy":"AF","value":"String"}],"address":{"street":"String","buildingIdentifier":"String","suiteIdentifier":"String","floorIdentifier":"String","districtName":"String","pob":"String","postCode":"String","city":"String","country":"AF"},"emailAddress":"String","resCountryCodes":["AF"]}},"capacity":"DAC61101","nationalExemption":{"exemption":false,"countryExemptions":{"countryExemptions":["AF"]}}}],"affectedPersons":[{"affectedPersonID":{"individual":{"individualName":{"precedingTitle":"String","title":"String","firstName":"String","middleName":"String","namePrefix":"String","lastName":"String","generationIdentifier":"String","suffix":"String","generalSuffix":"String"},"birthDate":"\/Date(-62135596800000-0000)\/","birthPlace":"String","tiNs":[{"issuedBy":"AF","value":"String"}],"address":{"street":"String","buildingIdentifier":"String","suiteIdentifier":"String","floorIdentifier":"String","districtName":"String","pob":"String","postCode":"String","city":"String","country":"AF"},"emailAddress":"String","resCountryCodes":["AF"]},"organisation":{"organisationNames":[{"language":"AA","value":"String"}],"tiNs":[{"issuedBy":"AF","value":"String"}],"address":{"street":"String","buildingIdentifier":"String","suiteIdentifier":"String","floorIdentifier":"String","districtName":"String","pob":"String","postCode":"String","city":"String","country":"AF"},"emailAddress":"String","resCountryCodes":["AF"]}}}],"disclosureInformation":{"implementingDate":"\/Date(-62135596800000-0000)\/","reason":"DAC6701","summary":{"disclosure_Name":"String","disclosure_Descriptions":[{"language":"AA","value":"String"}]},"nationalProvision":{"texts":[{"language":"AA","value":"String"}],"country":"AF"},"amount":{"currCode":"AED","value":0},"arrangementChart":{"id":{"individual":{"individualName":{"precedingTitle":"String","title":"String","firstName":"String","middleName":"String","namePrefix":"String","lastName":"String","generationIdentifier":"String","suffix":"String","generalSuffix":"String"},"birthDate":"\/Date(-62135596800000-0000)\/","birthPlace":"String","tiNs":[{"issuedBy":"AF","value":"String"}],"address":{"street":"String","buildingIdentifier":"String","suiteIdentifier":"String","floorIdentifier":"String","districtName":"String","pob":"String","postCode":"String","city":"String","country":"AF"},"emailAddress":"String","resCountryCodes":["AF"]},"organisation":{"organisationNames":[{"language":"AA","value":"String"}],"tiNs":[{"issuedBy":"AF","value":"String"}],"address":{"street":"String","buildingIdentifier":"String","suiteIdentifier":"String","floorIdentifier":"String","districtName":"String","pob":"String","postCode":"String","city":"String","country":"AF"},"emailAddress":"String","resCountryCodes":["AF"]}},"ownership":0,"investAmount":{"currCode":"AED","value":0},"otherInfos":[{"language":"AA","value":"String"}],"listChilds":[{"id":{"individual":{"individualName":{"precedingTitle":"String","title":"String","firstName":"String","middleName":"String","namePrefix":"String","lastName":"String","generationIdentifier":"String","suffix":"String","generalSuffix":"String"},"birthDate":"\/Date(-62135596800000-0000)\/","birthPlace":"String","tiNs":[{"issuedBy":"AF","value":"String"}],"address":{"street":"String","buildingIdentifier":"String","suiteIdentifier":"String","floorIdentifier":"String","districtName":"String","pob":"String","postCode":"String","city":"String","country":"AF"},"emailAddress":"String","resCountryCodes":["AF"]},"organisation":{"organisationNames":[{"language":"AA","value":"String"}],"tiNs":[{"issuedBy":"AF","value":"String"}],"address":{"street":"String","buildingIdentifier":"String","suiteIdentifier":"String","floorIdentifier":"String","districtName":"String","pob":"String","postCode":"String","city":"String","country":"AF"},"emailAddress":"String","resCountryCodes":["AF"]}},"ownership":0,"investAmount":{"currCode":"AED","value":0},"otherInfos":[{"language":"AA","value":"String"}],"listChilds":[{"id":{"individual":{"individualName":{"precedingTitle":"String","title":"String","firstName":"String","middleName":"String","namePrefix":"String","lastName":"String","generationIdentifier":"String","suffix":"String","generalSuffix":"String"},"birthDate":"\/Date(-62135596800000-0000)\/","birthPlace":"String","tiNs":[{"issuedBy":"AF","value":"String"}],"address":{"street":"String","buildingIdentifier":"String","suiteIdentifier":"String","floorIdentifier":"String","districtName":"String","pob":"String","postCode":"String","city":"String","country":"AF"},"emailAddress":"String","resCountryCodes":["AF"]},"organisation":{"organisationNames":[{"language":"AA","value":"String"}],"tiNs":[{"issuedBy":"AF","value":"String"}],"address":{"street":"String","buildingIdentifier":"String","suiteIdentifier":"String","floorIdentifier":"String","districtName":"String","pob":"String","postCode":"String","city":"String","country":"AF"},"emailAddress":"String","resCountryCodes":["AF"]}},"ownership":0,"investAmount":{"currCode":"AED","value":0},"otherInfos":[{"language":"AA","value":"String"}],"listChilds":[{"id":{"individual":{"individualName":{"precedingTitle":"String","title":"String","firstName":"String","middleName":"String","namePrefix":"String","lastName":"String","generationIdentifier":"String","suffix":"String","generalSuffix":"String"},"birthDate":"\/Date(-62135596800000-0000)\/","birthPlace":"String","tiNs":[{"issuedBy":"AF","value":"String"}],"address":{"street":"String","buildingIdentifier":"String","suiteIdentifier":"String","floorIdentifier":"String","districtName":"String","pob":"String","postCode":"String","city":"String","country":"AF"},"emailAddress":"String","resCountryCodes":["AF"]},"organisation":{"organisationNames":[{"language":"AA","value":"String"}],"tiNs":[{"issuedBy":"AF","value":"String"}],"address":{"street":"String","buildingIdentifier":"String","suiteIdentifier":"String","floorIdentifier":"String","districtName":"String","pob":"String","postCode":"String","city":"String","country":"AF"},"emailAddress":"String","resCountryCodes":["AF"]}},"ownership":0,"investAmount":{"currCode":"AED","value":0},"otherInfos":[{"language":"AA","value":"String"}]}]}]}]},"concernedMSs":["AT"],"mainBenefitTest1":false,"hallmarks":{"listHallmarks":{"hallmarks":["DAC6A1"]},"daC6D1OtherInfos":[{"language":"AA","value":"String"}]}}}},"dac6Verarbeitungsprotokoll":{"version":"String","messageType":"DAC6","lieferungsdetails":{"verfahren":"DAC6","offenlegungsnummer":"String","registriernummer":"String","bezugsoffenlegung":"String","eingabedateiname":"String","erstellungsdatum":"\/Date(-62135596800000-0000)\/","messageRefId":"String","ausgabedateiname":"String","protokollerstellungsdatum":"\/Date(-62135596800000-0000)\/"},"protokolleintraege":[{"eintragArt":"HINWEIS","eintragCode":"String","eintragText":"String"}]}}}
HTTP/1.1 200 OK
Content-Type: application/x-msgpack
Content-Length: length

(string)