POST | /CreateZm2023XmlAsync | An asynchronous service to create xml content that represents a recapitulative tax declaration for 2023. |
---|
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using PwC.xEric.Core.Services.Contracts.Umsatzsteuer.Requests;
using PwC.xEric.Core.Domain.Concretes.Umsatzsteuer.Anmeldungen;
using PwC.xEric.Core.Domain.Concretes.Models;
using PwC.xEric.Core.Services.Contracts.Responses;
namespace PwC.xEric.Core.Domain.Concretes.Models
{
///<summary>
///Represents an amount of money without cents whose value has a maximum length of 11 digits. That is, 1 to 11 digits. Minus sign allowed.
///</summary>
[Api(Description="Represents an amount of money without cents whose value has a maximum length of 11 digits. That is, 1 to 11 digits. Minus sign allowed.")]
public partial class GeldBetragOhneCent11EN
: GrossGeldBetragOhneCent
{
///<summary>
///The intrinsic currency value.
///</summary>
[ApiMember(Description="The intrinsic currency value.")]
public virtual long Wert { get; set; }
}
///<summary>
///Specifies an amount of money without cents with limits and a specialized string representation
///</summary>
[Api(Description="Specifies an amount of money without cents with limits and a specialized string representation")]
public partial class GrossGeldBetragOhneCent
{
///<summary>
///The intrinsic currency value.
///</summary>
[ApiMember(Description="The intrinsic currency value.")]
public virtual long Wert { get; set; }
}
}
namespace PwC.xEric.Core.Domain.Concretes.Umsatzsteuer.Anmeldungen
{
///<summary>
///Angaben zum Unternehmen
///</summary>
[Api(Description="Angaben zum Unternehmen")]
public partial class Anschrift
{
///<summary>
///Der Name des Unternehmers.
///</summary>
[ApiMember(Description="Der Name des Unternehmers.", IsRequired=true, Name="Name")]
public virtual string Name { get; set; }
///<summary>
///Der Adresszusatz des Unternehmers.
///</summary>
[ApiMember(Description="Der Adresszusatz des Unternehmers.", Name="Adresszusatz")]
public virtual string Adresszusatz { get; set; }
///<summary>
///Der Straßenname des Unternehmers.
///</summary>
[ApiMember(Description="Der Straßenname des Unternehmers.", IsRequired=true, Name="Strasse")]
public virtual string Strasse { get; set; }
///<summary>
///Die Hausnummer des Unternehmers.
///</summary>
[ApiMember(Description="Die Hausnummer des Unternehmers.", Name="Hausnr")]
public virtual string Hausnr { get; set; }
///<summary>
///Der Hausnummerzusatz des Unternehmers.
///</summary>
[ApiMember(Description="Der Hausnummerzusatz des Unternehmers.", Name="Hausnrzusatz")]
public virtual string Hausnrzusatz { get; set; }
///<summary>
///Der Ort des Unternehmers.
///</summary>
[ApiMember(Description="Der Ort des Unternehmers.", IsRequired=true, Name="Ort")]
public virtual string Ort { get; set; }
///<summary>
///Die Postleitzahl des Unternehmers.
///</summary>
[ApiMember(Description="Die Postleitzahl des Unternehmers.", Name="PLZ")]
public virtual string PLZ { get; set; }
///<summary>
///Übermittlung des ISO-3166-Alpha-2-Codes des Staates von Unternehmer.
///</summary>
[ApiMember(Description="Übermittlung des ISO-3166-Alpha-2-Codes des Staates von Unternehmer.", IsRequired=true, Name="Staat")]
public virtual string Staat { get; set; }
///<summary>
///Die Telefonummer des Unternehmers.
///</summary>
[ApiMember(Description="Die Telefonummer des Unternehmers.", Name="Telefon")]
public virtual string Telefon { get; set; }
}
///<summary>
///Art der Meldung
///</summary>
public enum Meldeart
{
Nein = 10,
Ja = 11,
}
///<summary>
///Meldungszeitraum
///</summary>
[Api(Description="Meldungszeitraum")]
public partial class Mzr
{
///<summary>
///Quartal
///</summary>
[ApiMember(Description="Quartal", IsRequired=true, Name="Quart")]
public virtual Quart Quart { get; set; }
///<summary>
///Die 4-stellige Jahreszahl, welche die Veranlagungszeitraum darstellt.
///</summary>
[ApiMember(Description="Die 4-stellige Jahreszahl, welche die Veranlagungszeitraum darstellt.", IsRequired=true, Name="Jahr")]
public virtual int Jahr { get; set; }
}
///<summary>
///Die Art des Quartals
///</summary>
public enum Quart
{
Q1 = 1,
Q2 = 2,
Q3 = 3,
Q4 = 4,
JM = 5,
M11 = 11,
M12 = 12,
M13 = 13,
M14 = 14,
M21 = 21,
M22 = 22,
M23 = 23,
M24 = 24,
M25 = 25,
M26 = 26,
M27 = 27,
M28 = 28,
M29 = 29,
M30 = 30,
M31 = 31,
M32 = 32,
}
///<summary>
///Die Art des Umsatzes.
///</summary>
public enum Umsatzart
{
D,
L,
S,
}
///<summary>
///Die Art der Währung
///</summary>
public enum Waehrung
{
UNGUELTIG,
EUR,
}
///<summary>
///Meldung der Warenlieferungen
///</summary>
[Api(Description="Meldung der Warenlieferungen")]
public partial class Zeile
{
///<summary>
///Umsatzart
///</summary>
[ApiMember(Description="Umsatzart", IsRequired=true, Name="Umsatzart")]
public virtual Umsatzart Umsatzart { get; set; }
///<summary>
///Umsatzsteuer-Identifikationsnummer des Erwerbers / Unternehmers in einem anderen Mitgliedstaat
///</summary>
[ApiMember(Description="Umsatzsteuer-Identifikationsnummer des Erwerbers / Unternehmers in einem anderen Mitgliedstaat", IsRequired=true, Name="Knre")]
public virtual string Knre { get; set; }
///<summary>
///Summe (Euro)
///</summary>
[ApiMember(Description="Summe (Euro)", IsRequired=true, Name="Betrag")]
public virtual GeldBetragOhneCent11EN Betrag { get; set; }
}
///<summary>
///Allgemeine Daten
///</summary>
[Api(Description="Allgemeine Daten")]
public partial class ZmZeilen
{
public ZmZeilen()
{
Zeilen = new List<Zeile>{};
}
///<summary>
///Währung
///</summary>
[ApiMember(Description="Währung", IsRequired=true, Name="Waehrung")]
public virtual Waehrung Waehrung { get; set; }
///<summary>
///Berichtigte Meldung
///</summary>
[ApiMember(Description="Berichtigte Meldung", IsRequired=true, Name="Meldeart")]
public virtual Meldeart Meldeart { get; set; }
///<summary>
///Die in § 18a Absatz 1 Satz 2 UStG enthaltene Regelung nehme ich nicht in Anspruch. Ich gebe die Zusammenfassende Meldung künftig monatlich ab. Diese Anzeige bindet mich bis zum Zeitpunkt des Widerrufs, mindestens aber für die Dauer von 12 Kalendermonaten.
///</summary>
[ApiMember(Description="Die in § 18a Absatz 1 Satz 2 UStG enthaltene Regelung nehme ich nicht in Anspruch. Ich gebe die Zusammenfassende Meldung künftig monatlich ab. Diese Anzeige bindet mich bis zum Zeitpunkt des Widerrufs, mindestens aber für die Dauer von 12 Kalendermonaten.", IsRequired=true, Name="Meldeart")]
public virtual bool Anzeige { get; set; }
///<summary>
///Widerruf meiner Anzeige nach § 18a Absatz 1 UStG
///</summary>
[ApiMember(Description="Widerruf meiner Anzeige nach § 18a Absatz 1 UStG", IsRequired=true, Name="Widerruf")]
public virtual bool Widerruf { get; set; }
///<summary>
///Meldungszeitraum
///</summary>
[ApiMember(Description="Meldungszeitraum", IsRequired=true, Name="Mzr")]
public virtual Mzr Mzr { get; set; }
///<summary>
///Meldungen der Warenlieferungen
///</summary>
[ApiMember(Description="Meldungen der Warenlieferungen", IsRequired=true, Name="Zeilen")]
public virtual List<Zeile> Zeilen { get; set; }
}
}
namespace PwC.xEric.Core.Services.Contracts.Responses
{
///<summary>
///Represents the response from a service that generates XML content.
///</summary>
[Api(Description="Represents the response from a service that generates XML content.")]
public partial class XmlResponse
{
///<summary>
///The XML-based content of the response.
///</summary>
[ApiMember(Description="The XML-based content of the response.")]
public virtual string Content { get; set; }
///<summary>
///Metadata that contains structured error information on the XML response.
///</summary>
[ApiMember(Description="Metadata that contains structured error information on the XML response.")]
public virtual ResponseStatus ResponseStatus { get; set; }
}
}
namespace PwC.xEric.Core.Services.Contracts.Umsatzsteuer.Requests
{
///<summary>
///An asynchronous service to create xml content that represents a recapitulative tax declaration for 2023.
///</summary>
[Api(Description="An asynchronous service to create xml content that represents a recapitulative tax declaration for 2023.")]
public partial class CreateZm2023XmlAsync
: CreateZm2023XmlBase
{
///<summary>
///Inländische Umsatzsteuer-Identifikationsnummer des Meldenden bestehend aus dem Länderkürzel 'DE' gefolgt von exakt 9 Ziffern.
///</summary>
[ApiMember(Description="Inländische Umsatzsteuer-Identifikationsnummer des Meldenden bestehend aus dem Länderkürzel 'DE' gefolgt von exakt 9 Ziffern.", IsRequired=true)]
public virtual string Knri { get; set; }
///<summary>
///Angaben zum Unternehmer
///</summary>
[ApiMember(Description="Angaben zum Unternehmer", IsRequired=true)]
public virtual Anschrift Anschrift { get; set; }
///<summary>
///Allgemeine Daten
///</summary>
[ApiMember(Description="Allgemeine Daten", IsRequired=true)]
public virtual ZmZeilen ZmZeilen { get; set; }
///<summary>
///The details of the provider that submits the tax data.
///</summary>
[ApiMember(Description="The details of the provider that submits the tax data.", IsRequired=true)]
public virtual string DatenLieferant { get; set; }
}
///<summary>
///Create XML content that represents a recapitulative tax declaration for 2023.
///</summary>
[Api(Description="Create XML content that represents a recapitulative tax declaration for 2023.")]
public partial class CreateZm2023XmlBase
: IPost
{
///<summary>
///Inländische Umsatzsteuer-Identifikationsnummer des Meldenden bestehend aus dem Länderkürzel 'DE' gefolgt von exakt 9 Ziffern.
///</summary>
[ApiMember(Description="Inländische Umsatzsteuer-Identifikationsnummer des Meldenden bestehend aus dem Länderkürzel 'DE' gefolgt von exakt 9 Ziffern.", IsRequired=true)]
public virtual string Knri { get; set; }
///<summary>
///Angaben zum Unternehmer
///</summary>
[ApiMember(Description="Angaben zum Unternehmer", IsRequired=true)]
public virtual Anschrift Anschrift { get; set; }
///<summary>
///Allgemeine Daten
///</summary>
[ApiMember(Description="Allgemeine Daten", IsRequired=true)]
public virtual ZmZeilen ZmZeilen { get; set; }
///<summary>
///The details of the provider that submits the tax data.
///</summary>
[ApiMember(Description="The details of the provider that submits the tax data.", IsRequired=true)]
public virtual string DatenLieferant { get; set; }
}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /CreateZm2023XmlAsync HTTP/1.1
Host: taxfiling.pwc.de
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
knri: String,
anschrift:
{
name: String,
adresszusatz: String,
strasse: String,
hausnr: String,
hausnrzusatz: String,
ort: String,
plz: String,
staat: String,
telefon: String
},
zmZeilen:
{
waehrung: UNGUELTIG,
meldeart: Nein,
anzeige: False,
widerruf: False,
mzr:
{
quart: Q1,
jahr: 0
},
zeilen:
[
{
umsatzart: D,
knre: String,
betrag:
{
wert: 0
}
}
]
},
datenLieferant: String
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { content: String, responseStatus: { errorCode: String, message: String, stackTrace: String, errors: [ { errorCode: String, fieldName: String, message: String, meta: { String: String } } ], meta: { String: String } } }