Tax Filing Service

<back to all web services

CreateZm2021XmlAsync

AsyncUmsatzsteuerZusammenfassende Meldung

An asynchronous service to create xml content that represents a recapitulative tax declaration for 2021.

Requires Authentication
The following routes are available for this service:
POST/CreateZm2021XmlAsyncAn asynchronous service to create xml content that represents a recapitulative tax declaration for 2021.

/** @description Angaben zum Unternehmen */
// @Api(Description="Angaben zum Unternehmen")
export class Anschrift
{
    /** @description Der Name des Unternehmers. */
    // @ApiMember(Description="Der Name des Unternehmers.", IsRequired=true, Name="Name")
    public name: string;

    /** @description Der Adresszusatz des Unternehmers. */
    // @ApiMember(Description="Der Adresszusatz des Unternehmers.", Name="Adresszusatz")
    public adresszusatz?: string;

    /** @description Der Straßenname des Unternehmers. */
    // @ApiMember(Description="Der Straßenname des Unternehmers.", IsRequired=true, Name="Strasse")
    public strasse: string;

    /** @description Die Hausnummer des Unternehmers. */
    // @ApiMember(Description="Die Hausnummer des Unternehmers.", Name="Hausnr")
    public hausnr?: string;

    /** @description Der Hausnummerzusatz des Unternehmers. */
    // @ApiMember(Description="Der Hausnummerzusatz des Unternehmers.", Name="Hausnrzusatz")
    public hausnrzusatz?: string;

    /** @description Der Ort des Unternehmers. */
    // @ApiMember(Description="Der Ort des Unternehmers.", IsRequired=true, Name="Ort")
    public ort: string;

    /** @description Die Postleitzahl des Unternehmers. */
    // @ApiMember(Description="Die Postleitzahl des Unternehmers.", Name="PLZ")
    public plz?: string;

    /** @description Ü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 staat: string;

    /** @description Die Telefonummer des Unternehmers. */
    // @ApiMember(Description="Die Telefonummer des Unternehmers.", Name="Telefon")
    public telefon?: string;

    public constructor(init?: Partial<Anschrift>) { (Object as any).assign(this, init); }
}

/** @description Die Art der Währung */
export enum Waehrung
{
    UNGUELTIG = 'UNGUELTIG',
    EUR = 'EUR',
}

/** @description Art der Meldung */
export enum Meldeart
{
    Nein = 10,
    Ja = 11,
}

/** @description Die Art des Quartals */
export 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,
}

/** @description Meldungszeitraum */
// @Api(Description="Meldungszeitraum")
export class Mzr
{
    /** @description Quartal */
    // @ApiMember(Description="Quartal", IsRequired=true, Name="Quart")
    public quart: Quart;

    /** @description Die 4-stellige Jahreszahl, welche die Veranlagungszeitraum darstellt. */
    // @ApiMember(Description="Die 4-stellige Jahreszahl, welche die Veranlagungszeitraum darstellt.", IsRequired=true, Name="Jahr")
    public jahr: number;

    public constructor(init?: Partial<Mzr>) { (Object as any).assign(this, init); }
}

/** @description Die Art des Umsatzes. */
export enum Umsatzart
{
    D = 'D',
    L = 'L',
    S = 'S',
}

/** @description Specifies an amount of money without cents with limits and a specialized string representation */
// @Api(Description="Specifies an amount of money without cents with limits and a specialized string representation")
export class GrossGeldBetragOhneCent
{
    /** @description The intrinsic currency value. */
    // @ApiMember(Description="The intrinsic currency value.")
    public wert: number;

    public constructor(init?: Partial<GrossGeldBetragOhneCent>) { (Object as any).assign(this, init); }
}

/** @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. */
// @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.")
export class GeldBetragOhneCent11EN extends GrossGeldBetragOhneCent
{
    /** @description The intrinsic currency value. */
    // @ApiMember(Description="The intrinsic currency value.")
    public wert: number;

    public constructor(init?: Partial<GeldBetragOhneCent11EN>) { super(init); (Object as any).assign(this, init); }
}

/** @description Meldung der Warenlieferungen */
// @Api(Description="Meldung der Warenlieferungen")
export class Zeile
{
    /** @description Umsatzart */
    // @ApiMember(Description="Umsatzart", IsRequired=true, Name="Umsatzart")
    public umsatzart: Umsatzart;

    /** @description 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 knre: string;

    /** @description Summe (Euro) */
    // @ApiMember(Description="Summe (Euro)", IsRequired=true, Name="Betrag")
    public betrag: GeldBetragOhneCent11EN;

    public constructor(init?: Partial<Zeile>) { (Object as any).assign(this, init); }
}

/** @description Allgemeine Daten */
// @Api(Description="Allgemeine Daten")
export class ZmZeilen
{
    /** @description Währung */
    // @ApiMember(Description="Währung", IsRequired=true, Name="Waehrung")
    public waehrung: Waehrung;

    /** @description Berichtigte Meldung */
    // @ApiMember(Description="Berichtigte Meldung", IsRequired=true, Name="Meldeart")
    public meldeart: Meldeart;

    /** @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. */
    // @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 anzeige: boolean;

    /** @description Widerruf meiner Anzeige nach § 18a Absatz 1 UStG */
    // @ApiMember(Description="Widerruf meiner Anzeige nach § 18a Absatz 1 UStG", IsRequired=true, Name="Widerruf")
    public widerruf: boolean;

    /** @description Meldungszeitraum */
    // @ApiMember(Description="Meldungszeitraum", IsRequired=true, Name="Mzr")
    public mzr: Mzr;

    /** @description Meldungen der Warenlieferungen */
    // @ApiMember(Description="Meldungen der Warenlieferungen", IsRequired=true, Name="Zeilen")
    public zeilen: Zeile[];

    public constructor(init?: Partial<ZmZeilen>) { (Object as any).assign(this, init); }
}

/** @description Create XML content that represents a recapitulative tax declaration for 2021. */
// @Api(Description="Create XML content that represents a recapitulative tax declaration for 2021.")
export class CreateZm2021XmlBase implements IPost
{
    /** @description 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 knri: string;

    /** @description Angaben zum Unternehmer */
    // @ApiMember(Description="Angaben zum Unternehmer", IsRequired=true)
    public anschrift: Anschrift;

    /** @description Allgemeine Daten */
    // @ApiMember(Description="Allgemeine Daten", IsRequired=true)
    public zmZeilen: ZmZeilen;

    /** @description 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 datenLieferant: string;

    public constructor(init?: Partial<CreateZm2021XmlBase>) { (Object as any).assign(this, init); }
}

/** @description Represents the response from a service that generates XML content. */
// @Api(Description="Represents the response from a service that generates XML content.")
export class XmlResponse
{
    /** @description The XML-based content of the response. */
    // @ApiMember(Description="The XML-based content of the response.")
    public content?: string;

    /** @description 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;

    public constructor(init?: Partial<XmlResponse>) { (Object as any).assign(this, init); }
}

/** @description An asynchronous service to create xml content that represents a recapitulative tax declaration for 2021. */
// @Api(Description="An asynchronous service to create xml content that represents a recapitulative tax declaration for 2021.")
export class CreateZm2021XmlAsync extends CreateZm2021XmlBase
{
    /** @description 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 knri: string;

    /** @description Angaben zum Unternehmer */
    // @ApiMember(Description="Angaben zum Unternehmer", IsRequired=true)
    public anschrift: Anschrift;

    /** @description Allgemeine Daten */
    // @ApiMember(Description="Allgemeine Daten", IsRequired=true)
    public zmZeilen: ZmZeilen;

    /** @description 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 datenLieferant: string;

    public constructor(init?: Partial<CreateZm2021XmlAsync>) { super(init); (Object as any).assign(this, init); }
}

TypeScript CreateZm2021XmlAsync DTOs

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

HTTP + OTHER

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

POST /CreateZm2021XmlAsync HTTP/1.1 
Host: taxfiling.pwc.de 
Accept: text/jsonl
Content-Type: text/jsonl
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/jsonl
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"}}}