/* Options: Date: 2024-10-18 17:25:02 SwiftVersion: 5.0 Version: 6.110 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://reportfiling.staging.pwc.de //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: CreateDac6Xml.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack /** * Represents a request to generate an ELMA-compatible XML content from a DAC6 data model. */ // @Route("/sync/elma/dac6/xml", "POST") // @Api(Description="Represents a request to generate an ELMA-compatible XML content from a DAC6 data model.") public class CreateDac6Xml : CreateDac6XmlBase, IReturn { public typealias Return = String required public init(){ super.init() } required public init(from decoder: Decoder) throws { try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) } } public protocol IStageableRequest { var stagingEnabled:Bool? { get set } } /** * Stellt grenzüberschreitende Steuergestaltungen dar. */ // @Api(Description="Stellt grenzüberschreitende Steuergestaltungen dar.") public class DAC6 : Codable { /** * 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 var version:String /** * 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 var sprache:LanguageCode? /** * 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 var dac6Arrangement:Dac6Arrangement /** * 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 var dac6Verarbeitungsprotokoll:Dac6Verarbeitungsprotokoll required public init(){} } /** * 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 class CreateDac6XmlBase : IPost, IStageableRequest, Codable { /** * 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 var authSteuernummer:String /** * 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 var accountId:String /** * 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 var kundeneigeneId:String /** * The version number of the ELMAKOM definition. */ // @ApiMember(Description="The version number of the ELMAKOM definition.", IsRequired=true, Name="ElmakomVersion") public var elmakomVersion:String /** * 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 var stagingEnabled:Bool? /** * The data model that represents the DAC6 content. */ // @ApiMember(Description="The data model that represents the DAC6 content.", Name="DataModel") public var dataModel:DAC6 required public init(){} } public enum LanguageCode : String, Codable { case AA case AB case AF case AK case SQ case AM case AR case AN case HY case AS case AV case AE case AY case AZ case BA case BM case EU case BE case BN case BH case BI case BS case BR case BG case MY case CA case CH case CE case ZH case CU case CV case KW case CO case CR case CS case DA case DV case NL case DZ case EN case EO case ET case EE case FO case FJ case FI case FR case FY case FF case KA case DE case GD case GA case GL case GV case EL case GN case GU case HT case HA case HE case HZ case HI case HO case HR case HU case IG case IS case IO case II case IU case IE case IA case ID case IK case IT case JV case JA case KL case KN case KS case KR case KK case KM case KI case RW case KY case KV case KG case KO case KJ case KU case LO case LA case LV case LI case LN case LT case LB case LU case LG case MK case MH case ML case MI case MR case MS case MG case MT case MN case NA case NV case NR case ND case NG case NE case NN case NB case NO case NY case OC case OJ case OR case OM case OS case PA case FA case PI case PL case PT case PS case QU case RM case RO case RN case RU case SG case SA case SI case SK case SL case SE case SM case SN case SD case SO case ST case ES case SC case SR case SS case SU case SW case SV case TY case TA case TT case TE case TG case TL case TH case BO case TI case TO case TN case TS case TK case TR case TW case UG case UK case UR case UZ case VE case VI case VO case CY case WA case WO case XH case YI case YO case ZA case 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 class Dac6Arrangement : Codable { /** * Versionsangabe */ // @ApiMember(Description="Versionsangabe", IsRequired=true, Name="Version") public var version:String /** * Angaben zu den Kopfdaten */ // @ApiMember(Description="Angaben zu den Kopfdaten", IsRequired=true, Name="Header") public var header:Dac6Header /** * 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 var arrangementID:String /** * Angaben zur Offenlegung */ // @ApiMember(Description="Angaben zur Offenlegung", IsRequired=true, Name="Dac6Disclosure") public var dac6Disclosure:Dac6Disclosure required public init(){} } /** * 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 class Dac6Verarbeitungsprotokoll : Codable { /** * The version of the process protocol. */ // @ApiMember(Description="The version of the process protocol.", Name="Version") public var version:String /** * The type of message. */ // @ApiMember(Description="The type of message.", Name="MessageType") public var messageType:String /** * The statistical information on the delivery. */ // @ApiMember(Description="The statistical information on the delivery.", Name="Lieferungsdetails") public var lieferungsdetails:Lieferungsdetails /** * Contains protocol entries for the delivery. */ // @ApiMember(Description="Contains protocol entries for the delivery.", Name="Protokolleintraege") public var protokolleintraege:[Protokolleintrag] = [] required public init(){} } /** * Angaben zu den Kopfdaten */ // @Api(Description="Angaben zu den Kopfdaten") public class Dac6Header : Codable { /** * Empfängerstaaten */ // @ApiMember(Description="Empfängerstaaten", Name="ReceivingCountries") public var receivingCountries:[CountryCode?] = [] /** * 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 var messageRefId:String /** * 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 var timestamp:Date? required public init(){} } /** * Angaben zur Offenlegung */ // @Api(Description="Angaben zur Offenlegung") public class Dac6Disclosure : Codable { /** * 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 var disclosureID:String /** * Angabe im Format DEDYYYYMMDDXXXXXX 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 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 var refDisclosureID:String /** * 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 var language:LanguageCode? /** * Meldepflichtiger */ // @ApiMember(Description="Meldepflichtiger", IsRequired=true, Name="Disclosing") public var disclosing:Dac6Discloser /** * 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 var initialDisclosureMA:Bool? /** * Angabe aller bekannten Nutzer */ // @ApiMember(Description="Angabe aller bekannten Nutzer", Name="RelevantTaxPayers") public var relevantTaxPayers:Dac6RelevantTaxPayers /** * Angabe aller bekannten Nutzer */ // @ApiMember(Description="Angabe aller bekannten Nutzer", Name="Intermediaries") public var intermediaries: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. */ // @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 var affectedPersons:Dac6AffectedPersons /** * Angabe der Informationen zur Steuergestaltung */ // @ApiMember(Description="Angabe der Informationen zur Steuergestaltung", IsRequired=true, Name="DisclosureInformation") public var disclosureInformation:Dac6DisclosureInformation required public init(){} } /** * Represents statistical information on a delivery. */ // @Api(Description="Represents statistical information on a delivery.") public class Lieferungsdetails : Codable { /** * 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 var verfahren:Dac6Verfahren /** * Disclosure-ID e.g. DED20190718UVWXYZ */ // @ApiMember(Description="Disclosure-ID e.g. DED20190718UVWXYZ", Name="Version") public var offenlegungsnummer:String public var registriernummer:String /** * 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 var bezugsoffenlegung:String /** * 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 var eingabedateiname:String /** * Time stamp at which the message was created. */ // @ApiMember(Description="Time stamp at which the message was created.", Name="Erstellungsdatum") public var erstellungsdatum:Date? public var messageRefId:String /** * 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 var ausgabedateiname:String /** * Time stamp of the completion process protocol. */ // @ApiMember(Description="Time stamp of the completion process protocol.", Name="Protokollerstellungsdatum") public var protokollerstellungsdatum:Date? required public init(){} } /** * Represents a protocol entry */ // @Api(Description="Represents a protocol entry") public class Protokolleintrag : Codable { /** * The type of entry. */ // @ApiMember(Description="The type of entry.", Name="EintragArt") public var eintragArt:Dac6EintragArt /** * 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 var eintragCode:String /** * Text (in German) of the protocol entry. */ // @ApiMember(Description="Text (in German) of the protocol entry.", Name="EintragText") public var eintragText:String required public init(){} } /** * Angaben zum Meldepflichtigen */ // @Api(Description="Angaben zum Meldepflichtigen") public class Dac6Discloser : Codable { /** * Identifikationsdaten zum Meldepflichtigen */ // @ApiMember(Description="Identifikationsdaten zum Meldepflichtigen", IsRequired=true, Name="ID") public var id:Dac6PersonOrganisation /** * 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 var liability:Dac6Liability required public init(){} } /** * Angabe aller bekannten Nutzer */ public class Dac6RelevantTaxPayers : Codable { required public init(){} } /** * Angabe zum jeweiligen Intermediär */ public class Dac6Intermediaries : Codable { required public init(){} } /** * 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 class Dac6AffectedPersons : Codable { required public init(){} } /** * Angabe der Informationen zur Steuergestaltung */ // @Api(Description="Angabe der Informationen zur Steuergestaltung") public class Dac6DisclosureInformation : Codable { /** * 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 var implementingDate:Date? /** * 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 var reason:Dac6DisclosurerReason? /** * 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 var summary:Dac6Summary /** * Rechtsvorschrift */ // @ApiMember(Description="Rechtsvorschrift", Name="NationalProvision") public var nationalProvision:Dac6NationalProvision /** * 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 var amount:Dac6Amount /** * 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 var arrangementChart:Dac6ArrangementChart /** * Betroffenen Mitgliedstaaten */ // @ApiMember(Description="Betroffenen Mitgliedstaaten", Name="ConcernedMSs") public var concernedMSs:Dac6ConcernedMSs /** * 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 var mainBenefitTest1:Bool? /** * 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 var hallmarks:Dac6Hallmarks required public init(){} } public enum Dac6Verfahren : String, Codable { case DAC6 case ISG } public enum Dac6EintragArt : String, Codable { case HINWEIS case FEHLER } /** * Entweder Angabe von Individual oder Angabe von Organisation */ // @Api(Description="Entweder Angabe von Individual oder Angabe von Organisation") public class Dac6PersonOrganisation : Codable { /** * 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 var individual:Dac6Person /** * 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 var organisation:Dac6Organisation required public init(){} } /** * 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 class Dac6Liability : Codable { /** * 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 var intermediaryDiscloser:Dac6IntermediaryDiscloser /** * 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 var relevantTaxpayerDiscloser:Dac6RelevantTaxpayerDiscloser required public init(){} } public enum Dac6DisclosurerReason : String, Codable { case DAC6701 case DAC6702 case 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 class Dac6Summary : Codable { /** * Name der Gestaltung */ // @ApiMember(Description="Name der Gestaltung", IsRequired=true, Name="Disclosure_Name") public var disclosure_Name:String /** * 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 var disclosure_Descriptions:[Dac6Disclosure_Description] = [] required public init(){} } /** * Rechtsvorschrift */ // @Api(Description="Rechtsvorschrift") public class Dac6NationalProvision : Codable { /** * Angabe der Rechtsvorschrift */ // @ApiMember(Description="Angabe der Rechtsvorschrift", IsRequired=true, Name="Texts") public var texts:[Dac6Text] = [] /** * 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 var country:CountryCode? required public init(){} } /** * 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 class Dac6Amount : Codable { /** * 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 var currCode:CurrencyCode? /** * Wirtschaftlicher Wert der Gestaltung */ // @ApiMember(Description="Wirtschaftlicher Wert der Gestaltung", IsRequired=true, Name="Value") public var value:Int? required public init(){} } /** * 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 class Dac6ArrangementChart : Codable { /** * Identifikationsdaten */ // @ApiMember(Description="Identifikationsdaten", IsRequired=true, Name="ID") public var id:Dac6PersonOrganisation /** * 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 var ownership:Int? /** * Die wertmäßige Beteiligungshöhe */ // @ApiMember(Description="Die wertmäßige Beteiligungshöhe", Name="InvestAmount") public var investAmount:Dac6Amount /** * Beteiligungsangaben */ // @ApiMember(Description="Beteiligungsangaben", Name="OtherInfos") public var otherInfos:[Dac6OtherInfo] = [] /** * Nächste Ebene Erfassung einer weiteren Ebene im Unternehmenschart */ // @ApiMember(Description="Nächste Ebene Erfassung einer weiteren Ebene im Unternehmenschart", Name="ListChilds") public var listChilds:Dac6ListChilds required public init(){} } /** * Liste der betroffenen Mitgliedstaaten Angabe der Mitgliedstaaten der Europäischen Union, die wahrscheinlich von der grenzüberschreitenden Steuergestaltung betroffen sind. */ public class Dac6ConcernedMSs : Codable { required public init(){} } /** * 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 class Dac6Hallmarks : Codable { /** * Angabe der Kennzeichen */ // @ApiMember(Description="Angabe der Kennzeichen", IsRequired=true, Name="ListHallmarks") public var listHallmarks:Dac6ListHallmarks /** * Beschreibung des Kennzeichens */ // @ApiMember(Description="Beschreibung des Kennzeichens", IsRequired=true, Name="DAC6D1OtherInfos") public var daC6D1OtherInfos:[DAC6D1OtherInfo] = [] required public init(){} } /** * Natürliche Person */ // @Api(Description="Natürliche Person") public class Dac6Person : Codable { /** * Namensangaben */ // @ApiMember(Description="Namensangaben", IsRequired=true, Name="IndividualName") public var individualName:Dac6NamePerson /** * GeburtsdatumFormat: YYYY-MM-DD */ // @ApiMember(Description="GeburtsdatumFormat: YYYY-MM-DD", IsRequired=true, Name="BirthDate") public var birthDate:Date /** * Geburtsort */ // @ApiMember(Description="Geburtsort", IsRequired=true, Name="BirthPlace") public var birthPlace:String /** * Steueridentifikationsmerkmale */ // @ApiMember(Description="Steueridentifikationsmerkmale", IsRequired=true, Name="TINs") public var tiNs:[Dac6TIN] = [] /** * Adressangaben */ // @ApiMember(Description="Adressangaben", IsRequired=true, Name="Address") public var address:Dac6Address /** * E-Mailadresse */ // @ApiMember(Description="E-Mailadresse", Name="EmailAddress") public var emailAddress:String /** * Ansässigkeitsstaaten */ // @ApiMember(Description="Ansässigkeitsstaaten", IsRequired=true, Name="ResCountryCodes") public var resCountryCodes:[CountryCode] = [] required public init(){} } /** * Organisation */ // @Api(Description="Organisation") public class Dac6Organisation : Codable { /** * Die Name der Organisation */ // @ApiMember(Description="Die Name der Organisation", IsRequired=true, Name="OrganisationNames") public var organisationNames:[Dac6NameOrganisation] = [] /** * Steueridentifikationsmerkmale */ // @ApiMember(Description="Steueridentifikationsmerkmale", IsRequired=true, Name="TINs") public var tiNs:[Dac6TIN] = [] /** * Adressangaben */ // @ApiMember(Description="Adressangaben", IsRequired=true, Name="Address") public var address:Dac6Address /** * E-Mailadresse */ // @ApiMember(Description="E-Mailadresse", Name="EmailAddress") public var emailAddress:String /** * Ansässigkeitsstaaten */ // @ApiMember(Description="Ansässigkeitsstaaten", IsRequired=true, Name="ResCountryCodes") public var resCountryCodes:[CountryCode] = [] required public init(){} } /** * Meldepflichtiger Intermediär */ // @Api(Description="Meldepflichtiger Intermediär") public class Dac6IntermediaryDiscloser : Codable { /** * 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 var intermediaryNexus:Dac6IntermediaryNexus? /** * 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 var capacity:Dac6IntermediaryCapacity? required public init(){} } /** * Meldepflichtiger Nutzer */ // @Api(Description="Meldepflichtiger Nutzer") public class Dac6RelevantTaxpayerDiscloser : Codable { /** * 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 var relevantTaxpayerNexus:Dac6RelevantTaxpayerNexus? /** * 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 var capacity:Dac6TaxpayerCapacity? required public init(){} } /** * Beschreibung der Gestaltung */ // @Api(Description="Beschreibung der Gestaltung") public class Dac6Disclosure_Description : Codable { /** * 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 var language:LanguageCode /** * Beschreibung */ // @ApiMember(Description="Beschreibung", IsRequired=true, Name="Value") public var value:String required public init(){} } /** * Angabe der Rechtsvorschrift */ // @Api(Description="Angabe der Rechtsvorschrift") public class Dac6Text : Codable { /** * 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 var language:LanguageCode /** * Beschreibung */ // @ApiMember(Description="Beschreibung", IsRequired=true, Name="Value") public var value:String required public init(){} } public enum CurrencyCode : String, Codable { case AED case AFN case ALL case AMD case ANG case AOA case ARS case AUD case AWG case AZN case BAM case BBD case BDT case BGN case BHD case BIF case BMD case BND case BOB case BOV case BRL case BSD case BTN case BWP case BYN case BZD case CAD case CDF case CHE case CHF case CHW case CLF case CLP case CNY case COP case COU case CRC case CUC case CUP case CVE case CZK case DJF case DKK case DOP case DZD case EGP case ERN case ETB case EUR case FJD case FKP case GBP case GEL case GHS case GIP case GMD case GNF case GTQ case GYD case HKD case HNL case HRK case HTG case HUF case IDR case ILS case INR case IQD case IRR case ISK case JMD case JOD case JPY case KES case KGS case KHR case KMF case KPW case KRW case KWD case KYD case KZT case LAK case LBP case LKR case LRD case LSL case LYD case MAD case MDL case MGA case MKD case MMK case MNT case MOP case MRU case MUR case MVR case MWK case MXN case MXV case MYR case MZN case NAD case NGN case NIO case NOK case NPR case NZD case OMR case PAB case PEN case PGK case PHP case PKR case PLN case PYG case QAR case RON case RSD case RUB case RWF case SAR case SBD case SCR case SDG case SEK case SGD case SHP case SLL case SOS case SRD case SSP case STN case SVC case SYP case SZL case THB case TJS case TMT case TND case TOP case TRY case TTD case TWD case TZS case UAH case UGX case USD case USN case UYI case UYU case UYW case UZS case VES case VND case VUV case WST case XAF case XAG case XAU case XBA case XBB case XBC case XBD case XCD case XDR case XOF case XPD case XPF case XPT case XSU case XUA case XXX case YER case ZAR case ZMW case ZWL } /** * 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 class Dac6OtherInfo : Codable { /** * 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 var language:LanguageCode /** * Beschreibung */ // @ApiMember(Description="Beschreibung", IsRequired=true, Name="Value") public var value:String required public init(){} } /** * Nächste Ebene Erfassung einer weiteren Ebene im Unternehmenschart */ public class Dac6ListChilds : Codable { required public init(){} } /** * 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 class Dac6ListHallmarks : Codable { /** * Betroffene Kennzeichen */ // @ApiMember(Description="Betroffene Kennzeichen", IsRequired=true, Name="Hallmarks") public var hallmarks:[Dac6Hallmark] = [] required public init(){} } /** * 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 class DAC6D1OtherInfo : Codable { /** * 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 var language:LanguageCode /** * Beschreibung */ // @ApiMember(Description="Beschreibung", IsRequired=true, Name="Value") public var value:String required public init(){} } /** * Stellt die Namensangaben dar. */ // @Api(Description="Stellt die Namensangaben dar.") public class Dac6NamePerson : Codable { /** * Vorangestellter Titel */ // @ApiMember(Description="Vorangestellter Titel", IsRequired=true, Name="PrecedingTitle") public var precedingTitle:String /** * Titel */ // @ApiMember(Description="Titel", Name="Title") public var title:String /** * Vorname */ // @ApiMember(Description="Vorname", IsRequired=true, Name="FirstName") public var firstName:String /** * Zweitname (weitere Namen) */ // @ApiMember(Description="Zweitname (weitere Namen)", Name="MiddleName") public var middleName:String /** * Namenszusatz */ // @ApiMember(Description="Namenszusatz", Name="NamePrefix") public var namePrefix:String /** * Nachname */ // @ApiMember(Description="Nachname", IsRequired=true, Name="LastName") public var lastName:String /** * Generationszusatz */ // @ApiMember(Description="Generationszusatz", Name="GenerationIdentifier") public var generationIdentifier:String /** * Titelzusatz */ // @ApiMember(Description="Titelzusatz", Name="Suffix") public var suffix:String /** * Allgemeiner Zusatz */ // @ApiMember(Description="Allgemeiner Zusatz", Name="GeneralSuffix") public var generalSuffix:String required public init(){} } /** * Steueridentifikationsmerkmal Stellt die Angabe der Steuernummer dar. */ // @Api(Description="Steueridentifikationsmerkmal Stellt die Angabe der Steuernummer dar.") public class Dac6TIN : Codable { /** * Ausstellender Staat */ // @ApiMember(Description="Ausstellender Staat", Name="IssuedBy") public var issuedBy:CountryCode /** * Steuernummer */ // @ApiMember(Description="Steuernummer", IsRequired=true, Name="Value") public var value:String required public init(){} } /** * Stellt die Andressangaben dar. */ // @Api(Description="Stellt die Andressangaben dar.") public class Dac6Address : Codable { /** * Straße */ // @ApiMember(Description="Straße", Name="Street") public var street:String /** * Hausnummer */ // @ApiMember(Description="Hausnummer", Name="BuildingIdentifier") public var buildingIdentifier:String /** * Wohnungsbezeichnung */ // @ApiMember(Description="Wohnungsbezeichnung", Name="SuiteIdentifier") public var suiteIdentifier:String /** * Etagenbezeichnung */ // @ApiMember(Description="Etagenbezeichnung", Name="FloorIdentifier") public var floorIdentifier:String /** * Verwaltungsbezirk */ // @ApiMember(Description="Verwaltungsbezirk", Name="DistrictName") public var districtName:String /** * Postfach */ // @ApiMember(Description="Postfach", Name="POB") public var pob:String /** * Postleitzahl */ // @ApiMember(Description="Postleitzahl", Name="PostCode") public var postCode:String /** * Ort */ // @ApiMember(Description="Ort", IsRequired=true, Name="City") public var city:String /** * 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 var country:CountryCode required public init(){} } public enum CountryCode : String, Codable { case AF case AX case AL case DZ case AS case AD case AO case AI case AQ case AG case AR case AM case AW case AU case AT case AZ case BS case BH case BD case BB case BY case BE case BZ case BJ case BM case BT case BO case BQ case BA case BW case BV case BR case IO case BN case BG case BF case BI case KH case CM case CA case CV case KY case CF case TD case CL case CN case CX case CC case CO case KM case CG case CD case CK case CR case CI case HR case CU case CW case CY case CZ case DK case DJ case DM case DO case EC case EG case SV case GQ case ER case EE case ET case FK case FO case FJ case FI case FR case GF case PF case TF case GA case GM case GE case DE case GH case GI case GR case GL case GD case GP case GU case GT case GG case GN case GW case GY case HT case HM case VA case HN case HK case HU case IS case IN case ID case IR case IQ case IE case IM case IL case IT case JM case JP case JE case JO case KZ case KE case KI case KP case KR case KW case KG case LA case LV case LB case LS case LR case LY case LI case LT case LU case MO case MK case MG case MW case MY case MV case ML case MT case MH case MQ case MR case MU case YT case MX case FM case MD case MC case MN case ME case MS case MA case MZ case MM case NA case NR case NP case NL case NC case NZ case NI case NE case NG case NU case NF case MP case NO case OM case PK case PW case PS case PA case PG case PY case PE case PH case PN case PL case PT case PR case QA case RE case RO case RU case RW case BL case SH case KN case LC case MF case PM case VC case WS case SM case ST case SA case SN case RS case SC case SL case SG case SX case SK case SI case SB case SO case ZA case GS case SS case ES case LK case SD case SR case SJ case SZ case SE case CH case SY case TW case TJ case TZ case TH case TL case TG case TK case TO case TT case TN case TR case TM case TC case TV case UG case UA case AE case GB case US case UM case UY case UZ case VU case VE case VN case VG case VI case WF case EH case YE case ZM case ZW case XK case XX } /** * Stellt den Name der Organisation dar */ // @Api(Description="Stellt den Name der Organisation dar") public class Dac6NameOrganisation : Codable { /** * 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 var language:LanguageCode /** * Namenswert der Organisation */ // @ApiMember(Description="Namenswert der Organisation", IsRequired=true, Name="Value") public var value:String required public init(){} } public enum Dac6IntermediaryNexus : String, Codable { case INEXa case INEXb case INEXc case INEXd } public enum Dac6IntermediaryCapacity : String, Codable { case DAC61101 case DAC61102 } public enum Dac6RelevantTaxpayerNexus : String, Codable { case RTNEXa case RTNEXb case RTNEXc case RTNEXd } public enum Dac6TaxpayerCapacity : String, Codable { case DAC61104 case DAC61105 case DAC61106 } public enum Dac6Hallmark : String, Codable { case DAC6A1 case DAC6A2a case DAC6A2b case DAC6A3 case DAC6B1 case DAC6B2 case DAC6B3 case DAC6C1a case DAC6C1bi case DAC6C1bii case DAC6C1c case DAC6C1d case DAC6C2 case DAC6C3 case DAC6C4 case DAC6D1Other case DAC6D1a case DAC6D1b case DAC6D1c case DAC6D1d case DAC6D1e case DAC6D1f case DAC6D2 case DAC6E1 case DAC6E2 case DAC6E3 }