@fin.cx/tax 2.0.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@fin.cx/tax',
6
- version: '2.0.0',
6
+ version: '2.2.0',
7
7
  description: 'German tax computation engine: UStVA Kennzahl aggregation from ledger balances with form rounding, Zahllast and reconciliation checks — exact cents'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxhQUFhO0lBQ25CLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFdBQVcsRUFBRSxxSkFBcUo7Q0FDbkssQ0FBQSJ9
@@ -1,3 +1,5 @@
1
1
  export * from './ustva.types.js';
2
2
  export * from './ustva.accounts.js';
3
3
  export * from './ustva.js';
4
+ export * from './zm.js';
5
+ export * from './rates.js';
package/dist_ts/index.js CHANGED
@@ -1,4 +1,6 @@
1
1
  export * from './ustva.types.js';
2
2
  export * from './ustva.accounts.js';
3
3
  export * from './ustva.js';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxZQUFZLENBQUMifQ==
4
+ export * from './zm.js';
5
+ export * from './rates.js';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxZQUFZLENBQUMifQ==
@@ -0,0 +1,112 @@
1
+ /**
2
+ * The rates of German VAT, dated: which rates German law sets for a supply
3
+ * carried out on a day, and the transition rules the administration granted
4
+ * around the rate changes of 2020 and 2021. The rate in force when the supply
5
+ * is carried out applies (§ 27 Abs. 1 Satz 1 UStG).
6
+ */
7
+ /** A rate German law sets for a supply, and the days it applies to: from `from`, until `to` inclusive when it ended. */
8
+ export interface IGermanVatRate {
9
+ ratePercent: number;
10
+ /** `YYYY-MM-DD` */
11
+ from: string;
12
+ /** `YYYY-MM-DD`, inclusive; absent while the rate is in force */
13
+ to?: string;
14
+ /** the rate this is: the general rate, the reduced rate, the 0 % of § 12 Abs. 3 UStG, or an average rate of § 24 Abs. 1 Satz 1 UStG by its number */
15
+ provision: 'general' | 'reduced' | 'zero' | 'average_nr1' | 'average_nr2' | 'average_nr3';
16
+ /** the provision that sets the rate for these days, and the act that set it */
17
+ basis: string;
18
+ }
19
+ /**
20
+ * The rates of German VAT, dated. The table begins on 2007-01-01.
21
+ * - The general rate, 19 % (§ 12 Abs. 1 UStG, since Art. 4 Nr. 1
22
+ * Haushaltsbegleitgesetz 2006, BGBl. I S. 1402, from 2007-01-01), and the
23
+ * reduced rate, 7 % (§ 12 Abs. 2 UStG). From 2020-07-01 to 2020-12-31, 16 %
24
+ * and 5 % in their place (§ 28 Abs. 1, 2 UStG, Art. 3 Zweites
25
+ * Corona-Steuerhilfegesetz, BGBl. I 2020 S. 1512).
26
+ * - § 24 Abs. 1 Satz 1 Nr. 2 UStG (Sägewerkserzeugnisse, Getränke and
27
+ * alkoholische Flüssigkeiten of a farmer or forester taxed by average
28
+ * rates): 19 %, the rate it states as read on gesetze-im-internet.de on
29
+ * 2026-09-27; 16 % from 2020-07-01 to 2020-12-31 (§ 24 Abs. 1 Satz 1 Nr. 2
30
+ * i. V. m. § 28 Abs. 3 UStG, Art. 3 Zweites Corona-Steuerhilfegesetz, BGBl. I
31
+ * 2020 S. 1512, as the BMF letter of 30 June 2020, Rz. 1, cites it; the act's
32
+ * own text was not read). That 19 % applied from 2007-01-01 is not verified
33
+ * from the amending act: the table starts it there with the general rate.
34
+ * - The average rates of § 24 Abs. 1 Satz 1 UStG, at which a farmer or
35
+ * forester taxed by them charges VAT on the invoice; the recipient deducts
36
+ * it as input tax (§ 15 Abs. 1 Satz 1 Nr. 1 UStG). Each from the amending
37
+ * act's text:
38
+ * - Nr. 1, forestry products: 5,5 % from 2007-01-01 (Art. 4 Nr. 2
39
+ * Buchst. a Doppelbuchst. aa Haushaltsbegleitgesetz 2006, "5 Prozent"
40
+ * replaced by "5,5 Prozent"); unchanged since.
41
+ * - Nr. 3, the other supplies: 10,7 % from 2007-01-01 (the same, Doppelbuchst.
42
+ * cc, "9 Prozent" by "10,7 Prozent"); 9,5 % from 2022-01-01 (Art. 1 Nr. 5
43
+ * Gesetz zur Umsetzung unionsrechtlicher Vorgaben im Umsatzsteuerrecht of
44
+ * 21.12.2021, BGBl. I S. 5250); 9,0 % from 2023-01-01 (Art. 12 Nr. 3 Achtes
45
+ * Gesetz zur Änderung von Verbrauchsteuergesetzen of 24.10.2022, BGBl. I
46
+ * S. 1838); 8,4 % from 2024-12-06 (Art. 24 Nr. 13 Jahressteuergesetz 2024
47
+ * of 02.12.2024, BGBl. 2024 I Nr. 387, in force the day after its
48
+ * promulgation on 2024-12-05, Art. 56 Abs. 1); 7,8 % from 2025-01-01
49
+ * (Art. 25 Nr. 21 of the same, Art. 56 Abs. 7), the rate § 24 Abs. 1 Satz 1
50
+ * Nr. 3 UStG states as read on gesetze-im-internet.de on 2026-09-25.
51
+ * - 0 % for the supplies of § 12 Abs. 3 UStG (photovoltaic installations:
52
+ * the modules and components delivered to their operator, their
53
+ * intra-Community acquisition, import and installation) from 2023-01-01
54
+ * (Art. 16 Nr. 5 Jahressteuergesetz 2022 of 16.12.2022, BGBl. I S. 2294,
55
+ * in force on 2023-01-01 by its Art. 43; the amending text as read on
56
+ * buzer.de on 2026-09-28, § 12 Abs. 3 as read on gesetze-im-internet.de).
57
+ */
58
+ export declare const GERMAN_VAT_RATES: readonly IGermanVatRate[];
59
+ /**
60
+ * The rates of German VAT for a supply carried out on a day (`YYYY-MM-DD`),
61
+ * each once, in the order of `GERMAN_VAT_RATES`. `undefined` for a day before
62
+ * the table begins (2007-01-01): the table holds no law for it.
63
+ */
64
+ export declare function germanVatRatesOn(dayArg: string): readonly number[] | undefined;
65
+ /**
66
+ * A rate the administration names for some supplies of some days around a
67
+ * change of the rates, with its source and the supplies it covers. Whether a
68
+ * supply is one of them is a fact the caller states; this table cannot tell.
69
+ */
70
+ export interface IGermanVatRateConcession {
71
+ ratePercent: number;
72
+ /**
73
+ * `required`: the letter says the rate is to be applied ("sind … anzuwenden");
74
+ * `accepted`: the letter allows it or does not object to it ("wird
75
+ * zugelassen", "wird nicht beanstandet"), and the law's rate of the day may be
76
+ * applied as well.
77
+ */
78
+ standing: 'required' | 'accepted';
79
+ /** `YYYY-MM-DD` */
80
+ from: string;
81
+ /** `YYYY-MM-DD`, inclusive */
82
+ to: string;
83
+ /** the BMF letter, its GZ and its Rz. */
84
+ source: string;
85
+ /** the supplies it covers, and what it allows */
86
+ covers: string;
87
+ }
88
+ /**
89
+ * The transition rules of the administration around the rate changes of
90
+ * 1 July 2020 and 1 January 2021, each read in the letter itself (the copies of
91
+ * 8 July 2020 and 5 November 2020 in the Internet Archive of the PDFs on
92
+ * bundesfinanzministerium.de, read 2026-09-27):
93
+ * - Rz. 44 of the letter of 30 June 2020 allows the new rates on
94
+ * Bewirtungsleistungen in the night of 30 June to 1 July 2020 (accepted), and
95
+ * Rz. 22 of the letter of 4 November 2020 requires them on Beherbergungen of
96
+ * that night (required), which Rz. 44 had left out.
97
+ * - Rz. 46 of the letter of 30 June 2020 accepts the old rates, 19 and
98
+ * 7 percent, on supplies to entrepreneurs in July 2020, with the input tax
99
+ * deduction of the stated tax.
100
+ * - Rz. 22 of the letter of 4 November 2020 allows 16 and 5 percent on
101
+ * Bewirtungsleistungen and Beherbergungen in the night of 31 December 2020
102
+ * to 1 January 2021.
103
+ * Not here: Rz. 47 of the letter of 30 June 2020 applies its rules "entsprechend"
104
+ * to the rise on 1 January 2021; the letters grant no deduction of 16 or
105
+ * 5 percent stated on a supply of January 2021 beyond the night above, except
106
+ * for advance payment invoices issued before 2021 (4 November 2020, Rz. 1 and
107
+ * 2), whose case needs the invoice's date. No letter on the § 24 changes of
108
+ * 2022, 2023, 2024-12-06 and 2025 was found.
109
+ */
110
+ export declare const GERMAN_VAT_RATE_CONCESSIONS: readonly IGermanVatRateConcession[];
111
+ /** The transition rules that cover a day of supply (`YYYY-MM-DD`), in the order of `GERMAN_VAT_RATE_CONCESSIONS`. */
112
+ export declare function germanVatRateConcessionsOn(dayArg: string): readonly IGermanVatRateConcession[];
@@ -0,0 +1,136 @@
1
+ /**
2
+ * The rates of German VAT, dated: which rates German law sets for a supply
3
+ * carried out on a day, and the transition rules the administration granted
4
+ * around the rate changes of 2020 and 2021. The rate in force when the supply
5
+ * is carried out applies (§ 27 Abs. 1 Satz 1 UStG).
6
+ */
7
+ const GENERAL = '§ 12 Abs. 1 UStG (Art. 4 Nr. 1 Haushaltsbegleitgesetz 2006, BGBl. I S. 1402)';
8
+ const REDUCED = '§ 12 Abs. 2 UStG';
9
+ const TEMPORARY = '§ 28 Abs. 1, 2 UStG (Art. 3 Zweites Corona-Steuerhilfegesetz, BGBl. I 2020 S. 1512)';
10
+ const SPECIAL_AVERAGE = '§ 24 Abs. 1 Satz 1 Nr. 2 UStG';
11
+ const FORESTRY = '§ 24 Abs. 1 Satz 1 Nr. 1 UStG (Art. 4 Nr. 2 Buchst. a Doppelbuchst. aa Haushaltsbegleitgesetz 2006)';
12
+ const AVERAGE_OTHER = '§ 24 Abs. 1 Satz 1 Nr. 3 UStG';
13
+ const ZERO = '§ 12 Abs. 3 UStG (Art. 16 Nr. 5 Jahressteuergesetz 2022 vom 16.12.2022, BGBl. I S. 2294, in force 2023-01-01 by its Art. 43)';
14
+ /**
15
+ * The rates of German VAT, dated. The table begins on 2007-01-01.
16
+ * - The general rate, 19 % (§ 12 Abs. 1 UStG, since Art. 4 Nr. 1
17
+ * Haushaltsbegleitgesetz 2006, BGBl. I S. 1402, from 2007-01-01), and the
18
+ * reduced rate, 7 % (§ 12 Abs. 2 UStG). From 2020-07-01 to 2020-12-31, 16 %
19
+ * and 5 % in their place (§ 28 Abs. 1, 2 UStG, Art. 3 Zweites
20
+ * Corona-Steuerhilfegesetz, BGBl. I 2020 S. 1512).
21
+ * - § 24 Abs. 1 Satz 1 Nr. 2 UStG (Sägewerkserzeugnisse, Getränke and
22
+ * alkoholische Flüssigkeiten of a farmer or forester taxed by average
23
+ * rates): 19 %, the rate it states as read on gesetze-im-internet.de on
24
+ * 2026-09-27; 16 % from 2020-07-01 to 2020-12-31 (§ 24 Abs. 1 Satz 1 Nr. 2
25
+ * i. V. m. § 28 Abs. 3 UStG, Art. 3 Zweites Corona-Steuerhilfegesetz, BGBl. I
26
+ * 2020 S. 1512, as the BMF letter of 30 June 2020, Rz. 1, cites it; the act's
27
+ * own text was not read). That 19 % applied from 2007-01-01 is not verified
28
+ * from the amending act: the table starts it there with the general rate.
29
+ * - The average rates of § 24 Abs. 1 Satz 1 UStG, at which a farmer or
30
+ * forester taxed by them charges VAT on the invoice; the recipient deducts
31
+ * it as input tax (§ 15 Abs. 1 Satz 1 Nr. 1 UStG). Each from the amending
32
+ * act's text:
33
+ * - Nr. 1, forestry products: 5,5 % from 2007-01-01 (Art. 4 Nr. 2
34
+ * Buchst. a Doppelbuchst. aa Haushaltsbegleitgesetz 2006, "5 Prozent"
35
+ * replaced by "5,5 Prozent"); unchanged since.
36
+ * - Nr. 3, the other supplies: 10,7 % from 2007-01-01 (the same, Doppelbuchst.
37
+ * cc, "9 Prozent" by "10,7 Prozent"); 9,5 % from 2022-01-01 (Art. 1 Nr. 5
38
+ * Gesetz zur Umsetzung unionsrechtlicher Vorgaben im Umsatzsteuerrecht of
39
+ * 21.12.2021, BGBl. I S. 5250); 9,0 % from 2023-01-01 (Art. 12 Nr. 3 Achtes
40
+ * Gesetz zur Änderung von Verbrauchsteuergesetzen of 24.10.2022, BGBl. I
41
+ * S. 1838); 8,4 % from 2024-12-06 (Art. 24 Nr. 13 Jahressteuergesetz 2024
42
+ * of 02.12.2024, BGBl. 2024 I Nr. 387, in force the day after its
43
+ * promulgation on 2024-12-05, Art. 56 Abs. 1); 7,8 % from 2025-01-01
44
+ * (Art. 25 Nr. 21 of the same, Art. 56 Abs. 7), the rate § 24 Abs. 1 Satz 1
45
+ * Nr. 3 UStG states as read on gesetze-im-internet.de on 2026-09-25.
46
+ * - 0 % for the supplies of § 12 Abs. 3 UStG (photovoltaic installations:
47
+ * the modules and components delivered to their operator, their
48
+ * intra-Community acquisition, import and installation) from 2023-01-01
49
+ * (Art. 16 Nr. 5 Jahressteuergesetz 2022 of 16.12.2022, BGBl. I S. 2294,
50
+ * in force on 2023-01-01 by its Art. 43; the amending text as read on
51
+ * buzer.de on 2026-09-28, § 12 Abs. 3 as read on gesetze-im-internet.de).
52
+ */
53
+ export const GERMAN_VAT_RATES = [
54
+ { ratePercent: 19, from: '2007-01-01', to: '2020-06-30', provision: 'general', basis: GENERAL },
55
+ { ratePercent: 19, from: '2021-01-01', provision: 'general', basis: GENERAL },
56
+ { ratePercent: 7, from: '2007-01-01', to: '2020-06-30', provision: 'reduced', basis: REDUCED },
57
+ { ratePercent: 7, from: '2021-01-01', provision: 'reduced', basis: REDUCED },
58
+ { ratePercent: 0, from: '2023-01-01', provision: 'zero', basis: ZERO },
59
+ { ratePercent: 16, from: '2020-07-01', to: '2020-12-31', provision: 'general', basis: `${TEMPORARY}, in place of the rate of § 12 Abs. 1 UStG` },
60
+ { ratePercent: 5, from: '2020-07-01', to: '2020-12-31', provision: 'reduced', basis: `${TEMPORARY}, in place of the rate of § 12 Abs. 2 UStG` },
61
+ { ratePercent: 19, from: '2007-01-01', to: '2020-06-30', provision: 'average_nr2', basis: `${SPECIAL_AVERAGE} (the act that set 19 % from 2007-01-01 not verified)` },
62
+ { ratePercent: 19, from: '2021-01-01', provision: 'average_nr2', basis: `${SPECIAL_AVERAGE} (19 % as read on gesetze-im-internet.de, 2026-09-27)` },
63
+ { ratePercent: 16, from: '2020-07-01', to: '2020-12-31', provision: 'average_nr2', basis: `${SPECIAL_AVERAGE} i. V. m. § 28 Abs. 3 UStG (Art. 3 Zweites Corona-Steuerhilfegesetz, BGBl. I 2020 S. 1512, as cited by BMF 30.06.2020 Rz. 1)` },
64
+ { ratePercent: 5.5, from: '2007-01-01', provision: 'average_nr1', basis: FORESTRY },
65
+ { ratePercent: 10.7, from: '2007-01-01', to: '2021-12-31', provision: 'average_nr3', basis: `${AVERAGE_OTHER} (Art. 4 Nr. 2 Buchst. a Doppelbuchst. cc Haushaltsbegleitgesetz 2006)` },
66
+ { ratePercent: 9.5, from: '2022-01-01', to: '2022-12-31', provision: 'average_nr3', basis: `${AVERAGE_OTHER} (Art. 1 Nr. 5 Gesetz zur Umsetzung unionsrechtlicher Vorgaben im Umsatzsteuerrecht, BGBl. I 2021 S. 5250)` },
67
+ { ratePercent: 9, from: '2023-01-01', to: '2024-12-05', provision: 'average_nr3', basis: `${AVERAGE_OTHER} (Art. 12 Nr. 3 Achtes Gesetz zur Änderung von Verbrauchsteuergesetzen, BGBl. I 2022 S. 1838)` },
68
+ { ratePercent: 8.4, from: '2024-12-06', to: '2024-12-31', provision: 'average_nr3', basis: `${AVERAGE_OTHER} (Art. 24 Nr. 13 Jahressteuergesetz 2024, BGBl. 2024 I Nr. 387)` },
69
+ { ratePercent: 7.8, from: '2025-01-01', provision: 'average_nr3', basis: `${AVERAGE_OTHER} (Art. 25 Nr. 21 Jahressteuergesetz 2024, BGBl. 2024 I Nr. 387)` },
70
+ ];
71
+ const TABLE_BEGINS = '2007-01-01';
72
+ const assertDay = (dayArg) => {
73
+ const match = /^(\d{4})-(\d{2})-(\d{2})$/.exec(dayArg);
74
+ const date = match ? new Date(Date.UTC(Number(match[1]), Number(match[2]) - 1, Number(match[3]))) : undefined;
75
+ if (!date || date.toISOString().slice(0, 10) !== dayArg) {
76
+ throw new Error(`a day of supply is written YYYY-MM-DD, got '${dayArg}'`);
77
+ }
78
+ };
79
+ /**
80
+ * The rates of German VAT for a supply carried out on a day (`YYYY-MM-DD`),
81
+ * each once, in the order of `GERMAN_VAT_RATES`. `undefined` for a day before
82
+ * the table begins (2007-01-01): the table holds no law for it.
83
+ */
84
+ export function germanVatRatesOn(dayArg) {
85
+ assertDay(dayArg);
86
+ if (dayArg < TABLE_BEGINS) {
87
+ return undefined;
88
+ }
89
+ return [...new Set(GERMAN_VAT_RATES
90
+ .filter((rateArg) => rateArg.from <= dayArg && (rateArg.to === undefined || dayArg <= rateArg.to))
91
+ .map((rateArg) => rateArg.ratePercent))];
92
+ }
93
+ const BMF_2020_06_30 = 'BMF-Schreiben vom 30. Juni 2020, III C 2 - S 7030/20/10009 :004, BStBl I S. 584';
94
+ const BMF_2020_11_04 = 'BMF-Schreiben vom 4. November 2020, III C 2 - S 7030/20/10009 :016';
95
+ const NIGHT_2020_06_30_BEWIRTUNG = 'Bewirtungsleistungen (food and drink for consumption on the spot, tobacco and the like) in the night of 30 June to 1 July 2020, at the rates in force from 1 July 2020 ("wird zugelassen")';
96
+ const NIGHT_2020_06_30_BEHERBERGUNG = 'Beherbergungen and the services that go with them in the night of 30 June to 1 July 2020, at the rates in force from 1 July 2020 ("sind … anzuwenden"; the letter of 30 June 2020, Rz. 44, had left them out)';
97
+ const JULY_2020 = '("wird es … nicht beanstandet") a supply to an entrepreneur carried out in July 2020 whose invoice states the rate in force before 1 July 2020 and whose supplier paid that tax: the invoice need not be corrected, and a recipient entitled to deduct input tax deducts the tax as stated (for § 13b supplies, the tax the recipient computed)';
98
+ const NIGHT_2020_12_31 = 'Bewirtungsleistungen, and Beherbergungen with the services that go with them, in the night of 31 December 2020 to 1 January 2021, at the rates of 16 and 5 percent ("wird zugelassen")';
99
+ /**
100
+ * The transition rules of the administration around the rate changes of
101
+ * 1 July 2020 and 1 January 2021, each read in the letter itself (the copies of
102
+ * 8 July 2020 and 5 November 2020 in the Internet Archive of the PDFs on
103
+ * bundesfinanzministerium.de, read 2026-09-27):
104
+ * - Rz. 44 of the letter of 30 June 2020 allows the new rates on
105
+ * Bewirtungsleistungen in the night of 30 June to 1 July 2020 (accepted), and
106
+ * Rz. 22 of the letter of 4 November 2020 requires them on Beherbergungen of
107
+ * that night (required), which Rz. 44 had left out.
108
+ * - Rz. 46 of the letter of 30 June 2020 accepts the old rates, 19 and
109
+ * 7 percent, on supplies to entrepreneurs in July 2020, with the input tax
110
+ * deduction of the stated tax.
111
+ * - Rz. 22 of the letter of 4 November 2020 allows 16 and 5 percent on
112
+ * Bewirtungsleistungen and Beherbergungen in the night of 31 December 2020
113
+ * to 1 January 2021.
114
+ * Not here: Rz. 47 of the letter of 30 June 2020 applies its rules "entsprechend"
115
+ * to the rise on 1 January 2021; the letters grant no deduction of 16 or
116
+ * 5 percent stated on a supply of January 2021 beyond the night above, except
117
+ * for advance payment invoices issued before 2021 (4 November 2020, Rz. 1 and
118
+ * 2), whose case needs the invoice's date. No letter on the § 24 changes of
119
+ * 2022, 2023, 2024-12-06 and 2025 was found.
120
+ */
121
+ export const GERMAN_VAT_RATE_CONCESSIONS = [
122
+ { ratePercent: 16, standing: 'accepted', from: '2020-06-30', to: '2020-06-30', source: `${BMF_2020_06_30}, Rz. 44; ${BMF_2020_11_04}, Rz. 22`, covers: NIGHT_2020_06_30_BEWIRTUNG },
123
+ { ratePercent: 5, standing: 'accepted', from: '2020-06-30', to: '2020-06-30', source: `${BMF_2020_06_30}, Rz. 44; ${BMF_2020_11_04}, Rz. 22`, covers: NIGHT_2020_06_30_BEWIRTUNG },
124
+ { ratePercent: 16, standing: 'required', from: '2020-06-30', to: '2020-06-30', source: `${BMF_2020_11_04}, Rz. 22`, covers: NIGHT_2020_06_30_BEHERBERGUNG },
125
+ { ratePercent: 5, standing: 'required', from: '2020-06-30', to: '2020-06-30', source: `${BMF_2020_11_04}, Rz. 22`, covers: NIGHT_2020_06_30_BEHERBERGUNG },
126
+ { ratePercent: 19, standing: 'accepted', from: '2020-07-01', to: '2020-07-31', source: `${BMF_2020_06_30}, Rz. 46`, covers: JULY_2020 },
127
+ { ratePercent: 7, standing: 'accepted', from: '2020-07-01', to: '2020-07-31', source: `${BMF_2020_06_30}, Rz. 46`, covers: JULY_2020 },
128
+ { ratePercent: 16, standing: 'accepted', from: '2021-01-01', to: '2021-01-01', source: `${BMF_2020_11_04}, Rz. 22`, covers: NIGHT_2020_12_31 },
129
+ { ratePercent: 5, standing: 'accepted', from: '2021-01-01', to: '2021-01-01', source: `${BMF_2020_11_04}, Rz. 22`, covers: NIGHT_2020_12_31 },
130
+ ];
131
+ /** The transition rules that cover a day of supply (`YYYY-MM-DD`), in the order of `GERMAN_VAT_RATE_CONCESSIONS`. */
132
+ export function germanVatRateConcessionsOn(dayArg) {
133
+ assertDay(dayArg);
134
+ return GERMAN_VAT_RATE_CONCESSIONS.filter((entryArg) => entryArg.from <= dayArg && dayArg <= entryArg.to);
135
+ }
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9yYXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQWVILE1BQU0sT0FBTyxHQUFHLDhFQUE4RSxDQUFDO0FBQy9GLE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQUFDO0FBQ25DLE1BQU0sU0FBUyxHQUFHLHFGQUFxRixDQUFDO0FBQ3hHLE1BQU0sZUFBZSxHQUFHLCtCQUErQixDQUFDO0FBQ3hELE1BQU0sUUFBUSxHQUFHLHFHQUFxRyxDQUFDO0FBQ3ZILE1BQU0sYUFBYSxHQUFHLCtCQUErQixDQUFDO0FBQ3RELE1BQU0sSUFBSSxHQUFHLDhIQUE4SCxDQUFDO0FBRTVJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNDRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUE4QjtJQUN6RCxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtJQUMvRixFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7SUFDN0UsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7SUFDOUYsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQzVFLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUs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
@@ -1,2 +1,20 @@
1
1
  import type { IUstvaInput, IUstvaResult } from './ustva.types.js';
2
+ /**
3
+ * The labels of the Kennzahlen this module fills. Kz 21, 45 and 87 carry the
4
+ * titles of their fields in ELSTER's "Anleitung zur UStVA 2026" (read
5
+ * 2026-09-25); Kz 46, 73 and 84, the fields of section D of the USt 1 A 2026
6
+ * (BMF, 29.12.2025), their texts there.
7
+ */
8
+ export declare const USTVA_KENNZAHL_LABELS: Readonly<Record<number, string>>;
9
+ /**
10
+ * The Kennzahlen this module fills, in the order of the UStVA 2026 form
11
+ * (ELSTER, "Anleitung zur UStVA 2026"): taxable supplies (81, 86, 87), tax-free
12
+ * supplies (41, 43, 48), intra-Community acquisitions (89, 93), the tax the
13
+ * recipient owes (46/47, 73/74, 84/85), supplies whose recipient owes the tax (60),
14
+ * services in the rest of the Community (21), other non-taxable turnover (45),
15
+ * input tax (66, 61, 62, 67), the Sondervorauszahlung (39) and the result (83).
16
+ * A Kennzahl computed but not listed here is reported as an issue, never
17
+ * dropped.
18
+ */
19
+ export declare const USTVA_KENNZAHL_ORDER: readonly number[];
2
20
  export declare function computeUstva(input: IUstvaInput): IUstvaResult;
package/dist_ts/ustva.js CHANGED
@@ -21,19 +21,30 @@
21
21
  import { vatFromNetCents } from '@fin.cx/calculation';
22
22
  import { getChart } from '@fin.cx/chartdata';
23
23
  import { VAT_ACCOUNTS } from './ustva.accounts.js';
24
- const KENNZAHL_LABELS = {
24
+ /**
25
+ * The labels of the Kennzahlen this module fills. Kz 21, 45 and 87 carry the
26
+ * titles of their fields in ELSTER's "Anleitung zur UStVA 2026" (read
27
+ * 2026-09-25); Kz 46, 73 and 84, the fields of section D of the USt 1 A 2026
28
+ * (BMF, 29.12.2025), their texts there.
29
+ */
30
+ export const USTVA_KENNZAHL_LABELS = {
25
31
  81: 'Steuerpflichtige Umsätze 19 %',
26
32
  86: 'Steuerpflichtige Umsätze 7 %',
33
+ 87: 'Steuerpflichtige Lieferungen und sonstige Leistungen (0 %)',
27
34
  89: 'Innergemeinschaftliche Erwerbe 19 %',
28
35
  93: 'Innergemeinschaftliche Erwerbe 7 %',
29
36
  41: 'Steuerfreie innergemeinschaftliche Lieferungen',
30
37
  43: 'Steuerfreie Umsätze mit Vorsteuerabzug (u. a. Ausfuhr)',
31
38
  48: 'Steuerfreie Umsätze ohne Vorsteuerabzug',
32
- 46: 'Sonstige Leistungen aus dem übrigen Gemeinschaftsgebiet (§13b)',
39
+ 46: 'Sonstige Leistungen nach § 3a Absatz 2 UStG eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (§ 13b Absatz 1 UStG)',
33
40
  47: 'Steuer zu Kennzahl 46',
34
- 84: 'Andere Leistungen eines im Ausland ansässigen Unternehmers (§13b)',
41
+ 73: 'Umsätze, die unter das GrEStG fallen (§ 13b Absatz 2 Nummer 3 UStG)',
42
+ 74: 'Steuer zu Kennzahl 73',
43
+ 84: 'Andere Leistungen (§ 13b Absatz 2 Nummer 1, 2, 4 bis 12 UStG)',
35
44
  85: 'Steuer zu Kennzahl 84',
36
45
  60: 'Steuerpflichtige Umsätze, für die der Leistungsempfänger die Steuer schuldet (§13b)',
46
+ 21: 'Sonstige Leistungen im übrigen Gemeinschaftsgebiet',
47
+ 45: 'Übrige nicht steuerbare Umsätze (Leistungsort nicht im Inland)',
37
48
  66: 'Vorsteuer aus Rechnungen anderer Unternehmer',
38
49
  61: 'Vorsteuer aus innergemeinschaftlichem Erwerb',
39
50
  62: 'Entrichtete Einfuhrumsatzsteuer',
@@ -41,8 +52,17 @@ const KENNZAHL_LABELS = {
41
52
  39: 'Anrechnung der Sondervorauszahlung (Dauerfristverlängerung)',
42
53
  83: 'Verbleibende Umsatzsteuer-Vorauszahlung / Überschuss',
43
54
  };
44
- /** result order follows the form sections */
45
- const KENNZAHL_ORDER = [81, 86, 89, 93, 41, 43, 48, 46, 47, 84, 85, 60, 66, 61, 62, 67, 39, 83];
55
+ /**
56
+ * The Kennzahlen this module fills, in the order of the UStVA 2026 form
57
+ * (ELSTER, "Anleitung zur UStVA 2026"): taxable supplies (81, 86, 87), tax-free
58
+ * supplies (41, 43, 48), intra-Community acquisitions (89, 93), the tax the
59
+ * recipient owes (46/47, 73/74, 84/85), supplies whose recipient owes the tax (60),
60
+ * services in the rest of the Community (21), other non-taxable turnover (45),
61
+ * input tax (66, 61, 62, 67), the Sondervorauszahlung (39) and the result (83).
62
+ * A Kennzahl computed but not listed here is reported as an issue, never
63
+ * dropped.
64
+ */
65
+ export const USTVA_KENNZAHL_ORDER = [81, 86, 87, 41, 43, 48, 89, 93, 46, 47, 73, 74, 84, 85, 60, 21, 45, 66, 61, 62, 67, 39, 83];
46
66
  /** full euros, cents truncated toward zero (form rule for bases) */
47
67
  function truncateToEur(cents) {
48
68
  return Math.trunc(cents / 100);
@@ -157,30 +177,34 @@ export function computeUstva(input) {
157
177
  const kz93Cents = scenario.intraEuAcquisitionReducedCents ?? 0;
158
178
  let kz46Cents = scenario.reverseChargeServicesEuCents ?? 0;
159
179
  let kz46Source = '(scenario)';
180
+ const kz73Cents = scenario.reverseChargeRealEstateCents ?? 0;
160
181
  const kz84Cents = scenario.reverseChargeOtherCents ?? 0;
161
182
  const hasRcScenario = scenario.reverseChargeServicesEuCents !== undefined ||
183
+ scenario.reverseChargeRealEstateCents !== undefined ||
162
184
  scenario.reverseChargeOtherCents !== undefined;
163
185
  if (!hasRcScenario && ledgerRcOutputCents !== 0) {
164
186
  kz46Cents = Math.round((ledgerRcOutputCents * 100) / 19);
165
187
  kz46Source = '(derived)';
166
188
  derived.push(`Kz 46 derived from §13b output tax movement (${ledgerRcOutputCents} cents / 19 %) — split vs Kz 84 unknown without scenario bases`);
167
189
  }
168
- // §13b tax split: keep the total identical to the ledger movement
169
- let kz47Cents = 0;
170
- let kz85Cents = 0;
171
- if (kz46Cents !== 0 && kz84Cents !== 0) {
172
- kz47Cents = vatFromNetCents(kz46Cents, 19);
173
- kz85Cents = ledgerRcOutputCents - kz47Cents;
174
- }
175
- else if (kz84Cents !== 0) {
176
- kz85Cents = ledgerRcOutputCents;
177
- }
178
- else if (kz46Cents !== 0) {
179
- kz47Cents = ledgerRcOutputCents;
190
+ // §13b tax split over Kz 47, 74 and 85: each base's 19 %, the last base carrying what keeps the total identical to
191
+ // the ledger movement; a single base carries the whole movement
192
+ const rcTaxCents = new Map();
193
+ const rcBases = [[47, kz46Cents], [74, kz73Cents], [85, kz84Cents]].filter(([, cents]) => cents !== 0);
194
+ if (rcBases.length > 0) {
195
+ let rest = ledgerRcOutputCents;
196
+ rcBases.forEach(([taxKennzahl, baseCents], index) => {
197
+ const cents = index === rcBases.length - 1 ? rest : vatFromNetCents(baseCents, 19);
198
+ rcTaxCents.set(taxKennzahl, cents);
199
+ rest -= cents;
200
+ });
180
201
  }
181
202
  else if (ledgerRcOutputCents !== 0) {
182
- kz47Cents = ledgerRcOutputCents; // derived path above set Kz 46
203
+ rcTaxCents.set(47, ledgerRcOutputCents); // derived path above set Kz 46
183
204
  }
205
+ const kz47Cents = rcTaxCents.get(47) ?? 0;
206
+ const kz74Cents = rcTaxCents.get(74) ?? 0;
207
+ const kz85Cents = rcTaxCents.get(85) ?? 0;
184
208
  // consistency: scenario bases × rate must reproduce the ledger tax
185
209
  if (kz89Source === '(scenario)' && kz89Cents !== 0) {
186
210
  const expected = vatFromNetCents(kz89Cents, 19);
@@ -191,7 +215,7 @@ export function computeUstva(input) {
191
215
  }
192
216
  }
193
217
  if (hasRcScenario) {
194
- const expected = vatFromNetCents(kz46Cents, 19) + vatFromNetCents(kz84Cents, 19);
218
+ const expected = vatFromNetCents(kz46Cents, 19) + vatFromNetCents(kz73Cents, 19) + vatFromNetCents(kz84Cents, 19);
195
219
  const diff = ledgerRcOutputCents - expected;
196
220
  checks.push(`§13b: ledger output tax ${ledgerRcOutputCents} vs 19 % of scenario bases ${expected} (diff ${diff})`);
197
221
  if (Math.abs(diff) > tolerance) {
@@ -208,7 +232,7 @@ export function computeUstva(input) {
208
232
  kennzahl,
209
233
  kind,
210
234
  value,
211
- label: KENNZAHL_LABELS[kennzahl] ?? `Kennzahl ${kennzahl}`,
235
+ label: USTVA_KENNZAHL_LABELS[kennzahl] ?? `Kennzahl ${kennzahl}`,
212
236
  accounts,
213
237
  });
214
238
  };
@@ -226,6 +250,10 @@ export function computeUstva(input) {
226
250
  put(46, 'baseEur', truncateToEur(kz46Cents), [kz46Source]);
227
251
  if (kz47Cents !== 0)
228
252
  put(47, 'taxCents', kz47Cents, VAT_ACCOUNTS[input.chart].outputReverseCharge);
253
+ if (kz73Cents !== 0)
254
+ put(73, 'baseEur', truncateToEur(kz73Cents), ['(scenario)']);
255
+ if (kz74Cents !== 0)
256
+ put(74, 'taxCents', kz74Cents, VAT_ACCOUNTS[input.chart].outputReverseCharge);
229
257
  if (kz84Cents !== 0)
230
258
  put(84, 'baseEur', truncateToEur(kz84Cents), ['(scenario)']);
231
259
  if (kz85Cents !== 0)
@@ -241,6 +269,7 @@ export function computeUstva(input) {
241
269
  const zahllastCents = formDomesticTaxCents +
242
270
  formIgeTaxCents +
243
271
  kz47Cents +
272
+ kz74Cents +
244
273
  kz85Cents -
245
274
  inputTaxCents -
246
275
  sondervorauszahlung;
@@ -256,11 +285,19 @@ export function computeUstva(input) {
256
285
  if (kzValue(61) !== 0 || ledgerIgeOutputCents !== 0) {
257
286
  checks.push(`igE input vs output tax: Kz 61 ${kzValue(61)} vs ledger igE output ${ledgerIgeOutputCents} (diff ${igeDeductionDiff}; non-zero = partial deduction or inconsistency)`);
258
287
  }
259
- const rcDeductionDiff = kzValue(67) - (kz47Cents + kz85Cents);
260
- if (kzValue(67) !== 0 || kz47Cents !== 0 || kz85Cents !== 0) {
261
- checks.push(`§13b input vs output tax: Kz 67 ${kzValue(67)} vs Kz 47+85 ${kz47Cents + kz85Cents} (diff ${rcDeductionDiff}; non-zero = partial deduction or inconsistency)`);
288
+ // every § 13b tax field the recipient owes, the GrEStG's Kz 74 included, against its deduction
289
+ const rcOutputCents = kz47Cents + kz74Cents + kz85Cents;
290
+ const rcDeductionDiff = kzValue(67) - rcOutputCents;
291
+ if (kzValue(67) !== 0 || kz47Cents !== 0 || kz74Cents !== 0 || kz85Cents !== 0) {
292
+ checks.push(`§13b input vs output tax: Kz 67 ${kzValue(67)} vs Kz 47+74+85 ${rcOutputCents} (diff ${rcDeductionDiff}; non-zero = partial deduction or inconsistency)`);
293
+ }
294
+ const kennzahlen = USTVA_KENNZAHL_ORDER.filter((kennzahl) => values.has(kennzahl)).map((kennzahl) => values.get(kennzahl));
295
+ // a figure the form order does not place would be left out of the filing: say so instead
296
+ for (const [kennzahl, value] of values) {
297
+ if (!USTVA_KENNZAHL_ORDER.includes(kennzahl)) {
298
+ issues.push(`Kennzahl ${kennzahl} (from ${value.accounts.join(', ')}) has no place in this module's form order — it cannot be filed; add it to USTVA_KENNZAHL_ORDER`);
299
+ }
262
300
  }
263
- const kennzahlen = KENNZAHL_ORDER.filter((kennzahl) => values.has(kennzahl)).map((kennzahl) => values.get(kennzahl));
264
301
  return {
265
302
  chart: input.chart,
266
303
  year: input.year,
@@ -277,4 +314,4 @@ export function computeUstva(input) {
277
314
  issues,
278
315
  };
279
316
  }
280
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXN0dmEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy91c3R2YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE9BQU8sRUFBRSxlQUFlLEVBQWUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsUUFBUSxFQUFzQixNQUFNLG1CQUFtQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVNuRCxNQUFNLGVBQWUsR0FBMkI7SUFDOUMsRUFBRSxFQUFFLCtCQUErQjtJQUNuQyxFQUFFLEVBQUUsOEJBQThCO0lBQ2xDLEVBQUUsRUFBRSxxQ0FBcUM7SUFDekMsRUFBRSxFQUFFLG9DQUFvQztJQUN4QyxFQUFFLEVBQUUsZ0RBQWdEO0lBQ3BELEVBQUUsRUFBRSx3REFBd0Q7SUFDNUQsRUFBRSxFQUFFLHlDQUF5QztJQUM3QyxFQUFFLEVBQUUsZ0VBQWdFO0lBQ3BFLEVBQUUsRUFBRSx1QkFBdUI7SUFDM0IsRUFBRSxFQUFFLG1FQUFtRTtJQUN2RSxFQUFFLEVBQUUsdUJBQXVCO0lBQzNCLEVBQUUsRUFBRSxxRkFBcUY7SUFDekYsRUFBRSxFQUFFLDhDQUE4QztJQUNsRCxFQUFFLEVBQUUsOENBQThDO0lBQ2xELEVBQUUsRUFBRSxpQ0FBaUM7SUFDckMsRUFBRSxFQUFFLGlEQUFpRDtJQUNyRCxFQUFFLEVBQUUsNkRBQTZEO0lBQ2pFLEVBQUUsRUFBRSxzREFBc0Q7Q0FDM0QsQ0FBQztBQUVGLDZDQUE2QztBQUM3QyxNQUFNLGNBQWMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFB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
317
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXN0dmEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy91c3R2YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE9BQU8sRUFBRSxlQUFlLEVBQWUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsUUFBUSxFQUFzQixNQUFNLG1CQUFtQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVNuRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFxQztJQUNyRSxFQUFFLEVBQUUsK0JBQStCO0lBQ25DLEVBQUUsRUFBRSw4QkFBOEI7SUFDbEMsRUFBRSxFQUFFLDREQUE0RDtJQUNoRSxFQUFFLEVBQUUscUNBQXFDO0lBQ3pDLEVBQUUsRUFBRSxvQ0FBb0M7SUFDeEMsRUFBRSxFQUFFLGdEQUFnRDtJQUNwRCxFQUFFLEVBQUUsd0RBQXdEO0lBQzVELEVBQUUsRUFBRSx5Q0FBeUM7SUFDN0MsRUFBRSxFQUFFLGdJQUFnSTtJQUNwSSxFQUFFLEVBQUUsdUJBQXVCO0lBQzNCLEVBQUUsRUFBRSxxRUFBcUU7SUFDekUsRUFBRSxFQUFFLHVCQUF1QjtJQUMzQixFQUFFLEVBQUUsK0RBQStEO0lBQ25FLEVBQUUsRUFBRSx1QkFBdUI7SUFDM0IsRUFBRSxFQUFFLHFGQUFxRjtJQUN6RixFQUFFLEVBQUUsb0RBQW9EO0lBQ3hELEVBQUUsRUFBRSxnRUFBZ0U7SUFDcEUsRUFBRSxFQUFFLDhDQUE4QztJQUNsRCxFQUFFLEVBQUUsOENBQThDO0lBQ2xELEVBQUUsRUFBRSxpQ0FBaUM7SUFDckMsRUFBRSxFQUFFLGlEQUFpRDtJQUNyRCxFQUFFLEVBQUUsNkRBQTZEO0lBQ2pFLEVBQUUsRUFBRSxzREFBc0Q7Q0FDM0QsQ0FBQztBQUVGOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFzQixDQUFD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
@@ -16,9 +16,11 @@ export interface IScenarioBaseInput {
16
16
  intraEuAcquisitionStandardCents?: TCents;
17
17
  /** igE 7 % net bases -> Kz 93 */
18
18
  intraEuAcquisitionReducedCents?: TCents;
19
- /** §13b sonstige Leistungen from the EU -> Kz 46/47 */
19
+ /** §13b Abs. 1: sonstige Leistungen of an entrepreneur established in another member state -> Kz 46/47 */
20
20
  reverseChargeServicesEuCents?: TCents;
21
- /** other §13b inputs -> Kz 84/85 */
21
+ /** §13b Abs. 2 Nr. 3: Umsätze, die unter das GrEStG fallen -> Kz 73/74 */
22
+ reverseChargeRealEstateCents?: TCents;
23
+ /** the other §13b inputs, Abs. 2 Nr. 1, 2, 4 bis 12 -> Kz 84/85 */
22
24
  reverseChargeOtherCents?: TCents;
23
25
  }
24
26
  /**