POST | /CreateZm2019Xml | A synchronous service to create xml content that represents a recapitulative tax declaration for 2019. |
---|
import java.math.*;
import java.util.*;
import net.servicestack.client.*;
public class dtos
{
/**
* A synchronous service to create XML content that represents a recapitulative tax declaration for 2019.
*/
@Api(Description="A synchronous service to create XML content that represents a recapitulative tax declaration for 2019.")
public static class CreateZm2019Xml extends CreateZm2019XmlBase
{
/**
* Inländische Umsatzsteuer-Identifikationsnummer des Meldenden bestehend aus dem Länderkürzel 'DE' gefolgt von exakt 9 Ziffern.
*/
@ApiMember(Description="Inländische Umsatzsteuer-Identifikationsnummer des Meldenden bestehend aus dem Länderkürzel 'DE' gefolgt von exakt 9 Ziffern.", IsRequired=true)
public String knri = null;
/**
* Angaben zum Unternehmer
*/
@ApiMember(Description="Angaben zum Unternehmer", IsRequired=true)
public Anschrift anschrift = null;
/**
* Allgemeine Daten
*/
@ApiMember(Description="Allgemeine Daten", IsRequired=true)
public ZmZeilen zmZeilen = null;
/**
* The details of the provider that submits the tax data.
*/
@ApiMember(Description="The details of the provider that submits the tax data.", IsRequired=true)
public String datenLieferant = null;
public String getKnri() { return knri; }
public CreateZm2019Xml setKnri(String value) { this.knri = value; return this; }
public Anschrift getAnschrift() { return anschrift; }
public CreateZm2019Xml setAnschrift(Anschrift value) { this.anschrift = value; return this; }
public ZmZeilen getZmZeilen() { return zmZeilen; }
public CreateZm2019Xml setZmZeilen(ZmZeilen value) { this.zmZeilen = value; return this; }
public String getDatenLieferant() { return datenLieferant; }
public CreateZm2019Xml setDatenLieferant(String value) { this.datenLieferant = value; return this; }
}
/**
* Create XML content that represents a recapitulative tax declaration for 2019.
*/
@Api(Description="Create XML content that represents a recapitulative tax declaration for 2019.")
public static class CreateZm2019XmlBase implements IPost
{
/**
* Inländische Umsatzsteuer-Identifikationsnummer des Meldenden bestehend aus dem Länderkürzel 'DE' gefolgt von exakt 9 Ziffern.
*/
@ApiMember(Description="Inländische Umsatzsteuer-Identifikationsnummer des Meldenden bestehend aus dem Länderkürzel 'DE' gefolgt von exakt 9 Ziffern.", IsRequired=true)
public String knri = null;
/**
* Angaben zum Unternehmer
*/
@ApiMember(Description="Angaben zum Unternehmer", IsRequired=true)
public Anschrift anschrift = null;
/**
* Allgemeine Daten
*/
@ApiMember(Description="Allgemeine Daten", IsRequired=true)
public ZmZeilen zmZeilen = null;
/**
* The details of the provider that submits the tax data.
*/
@ApiMember(Description="The details of the provider that submits the tax data.", IsRequired=true)
public String datenLieferant = null;
public String getKnri() { return knri; }
public CreateZm2019XmlBase setKnri(String value) { this.knri = value; return this; }
public Anschrift getAnschrift() { return anschrift; }
public CreateZm2019XmlBase setAnschrift(Anschrift value) { this.anschrift = value; return this; }
public ZmZeilen getZmZeilen() { return zmZeilen; }
public CreateZm2019XmlBase setZmZeilen(ZmZeilen value) { this.zmZeilen = value; return this; }
public String getDatenLieferant() { return datenLieferant; }
public CreateZm2019XmlBase setDatenLieferant(String value) { this.datenLieferant = value; return this; }
}
/**
* Angaben zum Unternehmen
*/
@Api(Description="Angaben zum Unternehmen")
public static class Anschrift
{
/**
* Der Name des Unternehmers.
*/
@ApiMember(Description="Der Name des Unternehmers.", IsRequired=true, Name="Name")
public String name = null;
/**
* Der Adresszusatz des Unternehmers.
*/
@ApiMember(Description="Der Adresszusatz des Unternehmers.", Name="Adresszusatz")
public String adresszusatz = null;
/**
* Der Straßenname des Unternehmers.
*/
@ApiMember(Description="Der Straßenname des Unternehmers.", IsRequired=true, Name="Strasse")
public String strasse = null;
/**
* Die Hausnummer des Unternehmers.
*/
@ApiMember(Description="Die Hausnummer des Unternehmers.", Name="Hausnr")
public String hausnr = null;
/**
* Der Hausnummerzusatz des Unternehmers.
*/
@ApiMember(Description="Der Hausnummerzusatz des Unternehmers.", Name="Hausnrzusatz")
public String hausnrzusatz = null;
/**
* Der Ort des Unternehmers.
*/
@ApiMember(Description="Der Ort des Unternehmers.", IsRequired=true, Name="Ort")
public String ort = null;
/**
* Die Postleitzahl des Unternehmers.
*/
@ApiMember(Description="Die Postleitzahl des Unternehmers.", Name="PLZ")
public String plz = null;
/**
* Übermittlung des ISO-3166-Alpha-2-Codes des Staates von Unternehmer.
*/
@ApiMember(Description="Übermittlung des ISO-3166-Alpha-2-Codes des Staates von Unternehmer.", IsRequired=true, Name="Staat")
public String staat = null;
/**
* Die Telefonummer des Unternehmers.
*/
@ApiMember(Description="Die Telefonummer des Unternehmers.", Name="Telefon")
public String telefon = null;
public String getName() { return name; }
public Anschrift setName(String value) { this.name = value; return this; }
public String getAdresszusatz() { return adresszusatz; }
public Anschrift setAdresszusatz(String value) { this.adresszusatz = value; return this; }
public String getStrasse() { return strasse; }
public Anschrift setStrasse(String value) { this.strasse = value; return this; }
public String getHausnr() { return hausnr; }
public Anschrift setHausnr(String value) { this.hausnr = value; return this; }
public String getHausnrzusatz() { return hausnrzusatz; }
public Anschrift setHausnrzusatz(String value) { this.hausnrzusatz = value; return this; }
public String getOrt() { return ort; }
public Anschrift setOrt(String value) { this.ort = value; return this; }
public String getPlz() { return plz; }
public Anschrift setPlz(String value) { this.plz = value; return this; }
public String getStaat() { return staat; }
public Anschrift setStaat(String value) { this.staat = value; return this; }
public String getTelefon() { return telefon; }
public Anschrift setTelefon(String value) { this.telefon = value; return this; }
}
/**
* Allgemeine Daten
*/
@Api(Description="Allgemeine Daten")
public static class ZmZeilen
{
/**
* Währung
*/
@ApiMember(Description="Währung", IsRequired=true, Name="Waehrung")
public Waehrung waehrung = null;
/**
* Berichtigte Meldung
*/
@ApiMember(Description="Berichtigte Meldung", IsRequired=true, Name="Meldeart")
public Meldeart meldeart = null;
/**
* 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.
*/
@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 Boolean anzeige = null;
/**
* Widerruf meiner Anzeige nach § 18a Absatz 1 UStG
*/
@ApiMember(Description="Widerruf meiner Anzeige nach § 18a Absatz 1 UStG", IsRequired=true, Name="Widerruf")
public Boolean widerruf = null;
/**
* Meldungszeitraum
*/
@ApiMember(Description="Meldungszeitraum", IsRequired=true, Name="Mzr")
public Mzr mzr = null;
/**
* Meldungen der Warenlieferungen
*/
@ApiMember(Description="Meldungen der Warenlieferungen", IsRequired=true, Name="Zeilen")
public ArrayList<Zeile> zeilen = null;
public Waehrung getWaehrung() { return waehrung; }
public ZmZeilen setWaehrung(Waehrung value) { this.waehrung = value; return this; }
public Meldeart getMeldeart() { return meldeart; }
public ZmZeilen setMeldeart(Meldeart value) { this.meldeart = value; return this; }
public Boolean isAnzeige() { return anzeige; }
public ZmZeilen setAnzeige(Boolean value) { this.anzeige = value; return this; }
public Boolean isWiderruf() { return widerruf; }
public ZmZeilen setWiderruf(Boolean value) { this.widerruf = value; return this; }
public Mzr getMzr() { return mzr; }
public ZmZeilen setMzr(Mzr value) { this.mzr = value; return this; }
public ArrayList<Zeile> getZeilen() { return zeilen; }
public ZmZeilen setZeilen(ArrayList<Zeile> value) { this.zeilen = value; return this; }
}
/**
* Die Art der Währung
*/
public static enum Waehrung
{
Ungueltig,
Eur;
}
/**
* Art der Meldung
*/
public static enum Meldeart
{
Nein(10),
Ja(11);
private final int value;
Meldeart(final int intValue) { value = intValue; }
public int getValue() { return value; }
}
/**
* Meldungszeitraum
*/
@Api(Description="Meldungszeitraum")
public static class Mzr
{
/**
* Quartal
*/
@ApiMember(Description="Quartal", IsRequired=true, Name="Quart")
public Quart quart = null;
/**
* Die 4-stellige Jahreszahl, welche die Veranlagungszeitraum darstellt.
*/
@ApiMember(Description="Die 4-stellige Jahreszahl, welche die Veranlagungszeitraum darstellt.", IsRequired=true, Name="Jahr")
public Integer jahr = null;
public Quart getQuart() { return quart; }
public Mzr setQuart(Quart value) { this.quart = value; return this; }
public Integer getJahr() { return jahr; }
public Mzr setJahr(Integer value) { this.jahr = value; return this; }
}
/**
* Die Art des Quartals
*/
public static 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);
private final int value;
Quart(final int intValue) { value = intValue; }
public int getValue() { return value; }
}
/**
* Meldung der Warenlieferungen
*/
@Api(Description="Meldung der Warenlieferungen")
public static class Zeile
{
/**
* Umsatzart
*/
@ApiMember(Description="Umsatzart", IsRequired=true, Name="Umsatzart")
public Umsatzart umsatzart = null;
/**
* Umsatzsteuer-Identifikationsnummer des Erwerbers / Unternehmers in einem anderen Mitgliedstaat
*/
@ApiMember(Description="Umsatzsteuer-Identifikationsnummer des Erwerbers / Unternehmers in einem anderen Mitgliedstaat", IsRequired=true, Name="Knre")
public String knre = null;
/**
* Summe (Euro)
*/
@ApiMember(Description="Summe (Euro)", IsRequired=true, Name="Betrag")
public GeldBetragOhneCent11EN betrag = null;
public Umsatzart getUmsatzart() { return umsatzart; }
public Zeile setUmsatzart(Umsatzart value) { this.umsatzart = value; return this; }
public String getKnre() { return knre; }
public Zeile setKnre(String value) { this.knre = value; return this; }
public GeldBetragOhneCent11EN getBetrag() { return betrag; }
public Zeile setBetrag(GeldBetragOhneCent11EN value) { this.betrag = value; return this; }
}
/**
* Die Art des Umsatzes.
*/
public static enum Umsatzart
{
D,
L,
S;
}
/**
* 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.
*/
@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 static class GeldBetragOhneCent11EN extends GrossGeldBetragOhneCent
{
/**
* The intrinsic currency value.
*/
@ApiMember(Description="The intrinsic currency value.")
public Long wert = null;
public Long getWert() { return wert; }
public GeldBetragOhneCent11EN setWert(Long value) { this.wert = value; return this; }
}
/**
* Specifies an amount of money without cents with limits and a specialized string representation
*/
@Api(Description="Specifies an amount of money without cents with limits and a specialized string representation")
public static class GrossGeldBetragOhneCent
{
/**
* The intrinsic currency value.
*/
@ApiMember(Description="The intrinsic currency value.")
public Long wert = null;
public Long getWert() { return wert; }
public GrossGeldBetragOhneCent setWert(Long value) { this.wert = value; return this; }
}
/**
* Represents the response from a service that generates XML content.
*/
@Api(Description="Represents the response from a service that generates XML content.")
public static class XmlResponse
{
/**
* The XML-based content of the response.
*/
@ApiMember(Description="The XML-based content of the response.")
public String content = null;
/**
* Metadata that contains structured error information on the XML response.
*/
@ApiMember(Description="Metadata that contains structured error information on the XML response.")
public ResponseStatus responseStatus = null;
public String getContent() { return content; }
public XmlResponse setContent(String value) { this.content = value; return this; }
public ResponseStatus getResponseStatus() { return responseStatus; }
public XmlResponse setResponseStatus(ResponseStatus value) { this.responseStatus = value; return this; }
}
}
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 /CreateZm2019Xml HTTP/1.1
Host: taxfiling.staging.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 } } }