@fin.cx/tax 2.4.1 → 2.6.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.
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/smallbusiness.d.ts +45 -13
- package/dist_ts/smallbusiness.js +13 -9
- package/dist_ts/ustva.js +47 -1
- package/dist_ts/ustva.types.d.ts +20 -0
- package/package.json +1 -1
- package/readme.md +18 -7
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/smallbusiness.ts +52 -20
- package/ts/ustva.ts +50 -0
- package/ts/ustva.types.ts +21 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@fin.cx/tax',
|
|
6
|
-
version: '2.
|
|
6
|
+
version: '2.6.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
|
|
@@ -30,14 +30,29 @@
|
|
|
30
30
|
* tax) and did not exempt the supplies but levied no tax on them; a year
|
|
31
31
|
* before 2025 answers `before_2025` and is not told.
|
|
32
32
|
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
33
|
+
* The year the business starts: the statute names no limit of its own for it
|
|
34
|
+
* (there is no previous year). The reasoning of the Jahressteuergesetz 2024
|
|
35
|
+
* (BT-Drs. 20/12780, read on dserver.bundestag.de 2026-09-30, p. 183 f., zu
|
|
36
|
+
* § 19 Abs. 1) does: "Nimmt der Unternehmer seine gewerbliche oder berufliche
|
|
37
|
+
* Tätigkeit auf, ist § 19 Absatz 1 Satz 1 UStG mit der Maßgabe anzuwenden,
|
|
38
|
+
* dass der Gesamtumsatz im laufenden Kalenderjahr den Betrag von 25 000 Euro
|
|
39
|
+
* nicht überschreitet. Bereits der Umsatz, mit dem die Grenze überschritten
|
|
40
|
+
* wird, unterliegt der Regelbesteuerung." (Art. 288a Abs. 1 UAbs. 3 RL
|
|
41
|
+
* 2006/112 EG); "Die bis zum Zeitpunkt der Überschreitung bewirkten Umsätze
|
|
42
|
+
* sind steuerfrei." And zu Abs. 2: "Übt der Unternehmer seine gewerbliche
|
|
43
|
+
* oder berufliche Tätigkeit nur für einen Teil des Kalenderjahres aus,
|
|
44
|
+
* entfällt die bisherige Umrechnung in einen Jahresgesamtumsatz": a part of a
|
|
45
|
+
* year counts as it is, in the year the business starts and as the next
|
|
46
|
+
* year's previous year. The Anleitung zur Umsatzsteuer-Voranmeldung 2026
|
|
47
|
+
* (p. 8, Zeile 12) reads the founding year the same way.
|
|
48
|
+
*
|
|
49
|
+
* The supply by which the running year exceeds 100 000 €: the reasoning says
|
|
50
|
+
* the scheme no longer applies "ab diesem Zeitpunkt", and the statute exempts
|
|
51
|
+
* a supply while the running year's Gesamtumsatz "nicht überschreitet"; both
|
|
52
|
+
* are read so that it is taxed: `endsWith` names the receipt at which the sum
|
|
53
|
+
* first exceeds the limit, and every receipt from it on is taxed. Not read:
|
|
54
|
+
* the BMF-Schreiben of 18 March 2025 (UStAE Abschn. 19.1 ff.), which the BMF
|
|
55
|
+
* site did not serve.
|
|
41
56
|
*/
|
|
42
57
|
import type { TCents } from '@fin.cx/calculation';
|
|
43
58
|
/** The first calendar year of the version of § 19 UStG this module applies (Jahressteuergesetz 2024, from 1 January 2025). */
|
|
@@ -46,6 +61,8 @@ export declare const SMALL_BUSINESS_FIRST_YEAR = 2025;
|
|
|
46
61
|
export declare const SMALL_BUSINESS_PREVIOUS_YEAR_LIMIT_CENTS: TCents;
|
|
47
62
|
/** 100 000 €: the running calendar year's limit (§ 19 Abs. 1 Satz 1 UStG) */
|
|
48
63
|
export declare const SMALL_BUSINESS_RUNNING_YEAR_LIMIT_CENTS: TCents;
|
|
64
|
+
/** 25 000 €: the running calendar year's limit in the year the business starts (BT-Drs. 20/12780, p. 183 f., zu § 19 Abs. 1 UStG) */
|
|
65
|
+
export declare const SMALL_BUSINESS_FOUNDING_YEAR_LIMIT_CENTS: TCents;
|
|
49
66
|
/**
|
|
50
67
|
* What a receipt is to the Gesamtumsatz (§ 19 Abs. 2 UStG):
|
|
51
68
|
* - `counted`: an Entgelt for a steuerbarer Umsatz (§ 1 Abs. 1 Nr. 1), taxed or
|
|
@@ -76,7 +93,12 @@ export interface IGesamtumsatzOfYear {
|
|
|
76
93
|
totalCents: TCents;
|
|
77
94
|
leftOutCents: Record<Exclude<TGesamtumsatzPart, 'counted'>, TCents>;
|
|
78
95
|
}
|
|
79
|
-
/**
|
|
96
|
+
/**
|
|
97
|
+
* Why a year starts with the exemption or without it. `within_limits` and
|
|
98
|
+
* `business_started_this_year` start it exempt: the one by the previous
|
|
99
|
+
* year's Gesamtumsatz, the other as the year the business starts, which has
|
|
100
|
+
* none (its running limit is 25 000 €).
|
|
101
|
+
*/
|
|
80
102
|
export type TSmallBusinessReason = 'within_limits' | 'previous_year_over' | 'waived' | 'previous_year_unknown' | 'business_started_this_year'
|
|
81
103
|
/** a year before 2025, under the version with other limits (`SMALL_BUSINESS_FIRST_YEAR`): not told */
|
|
82
104
|
| 'before_2025';
|
|
@@ -100,9 +122,17 @@ export interface ISmallBusinessStatus {
|
|
|
100
122
|
atStart: 'exempt' | 'taxable' | 'unknown';
|
|
101
123
|
reason: TSmallBusinessReason;
|
|
102
124
|
/**
|
|
103
|
-
* Where the year starts exempt
|
|
104
|
-
*
|
|
105
|
-
*
|
|
125
|
+
* Where the year starts exempt: the running year's Gesamtumsatz up to which
|
|
126
|
+
* it stays exempt, 100 000 € (`SMALL_BUSINESS_RUNNING_YEAR_LIMIT_CENTS`), or
|
|
127
|
+
* 25 000 € in the year the business starts
|
|
128
|
+
* (`SMALL_BUSINESS_FOUNDING_YEAR_LIMIT_CENTS`)
|
|
129
|
+
*/
|
|
130
|
+
runningLimitCents?: TCents;
|
|
131
|
+
/**
|
|
132
|
+
* Where the year starts exempt and its Gesamtumsatz exceeds
|
|
133
|
+
* `runningLimitCents`: the receipt by which it first does (its day, its
|
|
134
|
+
* place in the receipts as given, the sum with it). It and every later
|
|
135
|
+
* receipt are taxed.
|
|
106
136
|
*/
|
|
107
137
|
endsWith?: {
|
|
108
138
|
receivedOn: string;
|
|
@@ -118,7 +148,9 @@ export declare function gesamtumsatzOf(receiptsArg: readonly IGesamtumsatzReceip
|
|
|
118
148
|
* Whether a calendar year's supplies are exempt under § 19 Abs. 1 UStG: from
|
|
119
149
|
* its start where the previous year's Gesamtumsatz did not exceed 25 000 € and
|
|
120
150
|
* no waiver is in force, until the receipt by which the running year's
|
|
121
|
-
* Gesamtumsatz exceeds 100 000 € (`endsWith`).
|
|
151
|
+
* Gesamtumsatz exceeds 100 000 € (`endsWith`). In the year the business
|
|
152
|
+
* starts (`previousYearCents: 'business_started'`) from its start, until the
|
|
153
|
+
* receipt by which it exceeds 25 000 €, counted as it is, not as a whole year.
|
|
122
154
|
*/
|
|
123
155
|
export declare function smallBusinessStatusOf(inputArg: ISmallBusinessYearInput): ISmallBusinessStatus;
|
|
124
156
|
/** The last calendar year a waiver effective for `yearArg` binds (§ 19 Abs. 3 Satz 3 UStG: at least five calendar years). */
|
package/dist_ts/smallbusiness.js
CHANGED
|
@@ -4,6 +4,8 @@ export const SMALL_BUSINESS_FIRST_YEAR = 2025;
|
|
|
4
4
|
export const SMALL_BUSINESS_PREVIOUS_YEAR_LIMIT_CENTS = 2_500_000;
|
|
5
5
|
/** 100 000 €: the running calendar year's limit (§ 19 Abs. 1 Satz 1 UStG) */
|
|
6
6
|
export const SMALL_BUSINESS_RUNNING_YEAR_LIMIT_CENTS = 10_000_000;
|
|
7
|
+
/** 25 000 €: the running calendar year's limit in the year the business starts (BT-Drs. 20/12780, p. 183 f., zu § 19 Abs. 1 UStG) */
|
|
8
|
+
export const SMALL_BUSINESS_FOUNDING_YEAR_LIMIT_CENTS = 2_500_000;
|
|
7
9
|
export const GESAMTUMSATZ_PARTS = ['counted', 'exempt_section_4_listed', 'exempt_ancillary', 'fixed_assets', 'not_taxable_here'];
|
|
8
10
|
const isCalendarDay = (valueArg) => {
|
|
9
11
|
if (typeof valueArg !== 'string' || !/^\d{4}-\d{2}-\d{2}$/.test(valueArg)) {
|
|
@@ -52,7 +54,9 @@ export function gesamtumsatzOf(receiptsArg, yearArg) {
|
|
|
52
54
|
* Whether a calendar year's supplies are exempt under § 19 Abs. 1 UStG: from
|
|
53
55
|
* its start where the previous year's Gesamtumsatz did not exceed 25 000 € and
|
|
54
56
|
* no waiver is in force, until the receipt by which the running year's
|
|
55
|
-
* Gesamtumsatz exceeds 100 000 € (`endsWith`).
|
|
57
|
+
* Gesamtumsatz exceeds 100 000 € (`endsWith`). In the year the business
|
|
58
|
+
* starts (`previousYearCents: 'business_started'`) from its start, until the
|
|
59
|
+
* receipt by which it exceeds 25 000 €, counted as it is, not as a whole year.
|
|
56
60
|
*/
|
|
57
61
|
export function smallBusinessStatusOf(inputArg) {
|
|
58
62
|
assertYear(inputArg.year);
|
|
@@ -76,23 +80,23 @@ export function smallBusinessStatusOf(inputArg) {
|
|
|
76
80
|
if (inputArg.waived === true) {
|
|
77
81
|
return { ...base, atStart: 'taxable', reason: 'waived' };
|
|
78
82
|
}
|
|
79
|
-
if (previous === 'business_started') {
|
|
80
|
-
return { ...base, atStart: 'unknown', reason: 'business_started_this_year' };
|
|
81
|
-
}
|
|
82
83
|
if (previous === undefined) {
|
|
83
84
|
return { ...base, atStart: 'unknown', reason: 'previous_year_unknown' };
|
|
84
85
|
}
|
|
85
|
-
if (previous > SMALL_BUSINESS_PREVIOUS_YEAR_LIMIT_CENTS) {
|
|
86
|
+
if (previous !== 'business_started' && previous > SMALL_BUSINESS_PREVIOUS_YEAR_LIMIT_CENTS) {
|
|
86
87
|
return { ...base, atStart: 'taxable', reason: 'previous_year_over' };
|
|
87
88
|
}
|
|
89
|
+
const reason = previous === 'business_started' ? 'business_started_this_year' : 'within_limits';
|
|
90
|
+
const runningLimitCents = previous === 'business_started' ? SMALL_BUSINESS_FOUNDING_YEAR_LIMIT_CENTS : SMALL_BUSINESS_RUNNING_YEAR_LIMIT_CENTS;
|
|
91
|
+
const exempt = { ...base, atStart: 'exempt', reason, runningLimitCents };
|
|
88
92
|
let sum = 0;
|
|
89
93
|
for (const { receipt, index } of counted) {
|
|
90
94
|
sum += receipt.entgeltCents;
|
|
91
|
-
if (sum >
|
|
92
|
-
return { ...
|
|
95
|
+
if (sum > runningLimitCents) {
|
|
96
|
+
return { ...exempt, endsWith: { receivedOn: receipt.receivedOn, index, runningCents: sum } };
|
|
93
97
|
}
|
|
94
98
|
}
|
|
95
|
-
return
|
|
99
|
+
return exempt;
|
|
96
100
|
}
|
|
97
101
|
/** The last calendar year a waiver effective for `yearArg` binds (§ 19 Abs. 3 Satz 3 UStG: at least five calendar years). */
|
|
98
102
|
export function smallBusinessWaiverBindsUntil(yearArg) {
|
|
@@ -110,4 +114,4 @@ export function smallBusinessWaiverDeadline(yearArg) {
|
|
|
110
114
|
const leap = (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
|
|
111
115
|
return `${year}-02-${leap ? '29' : '28'}`;
|
|
112
116
|
}
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hbGxidXNpbmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYWxsYnVzaW5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMERBLDhIQUE4SDtBQUM5SCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLENBQUM7QUFFOUMsNkVBQTZFO0FBQzdFLE1BQU0sQ0FBQyxNQUFNLHdDQUF3QyxHQUFXLFNBQVMsQ0FBQztBQUMxRSw2RUFBNkU7QUFDN0UsTUFBTSxDQUFDLE1BQU0sdUNBQXVDLEdBQVcsVUFBVSxDQUFDO0FBQzFFLHFJQUFxSTtBQUNySSxNQUFNLENBQUMsTUFBTSx3Q0FBd0MsR0FBVyxTQUFTLENBQUM7QUFrQjFFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFpQyxDQUFDLFNBQVMsRUFBRSx5QkFBeUIsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztBQXVFL0osTUFBTSxhQUFhLEdBQUcsQ0FBQyxRQUFpQixFQUFzQixFQUFFO0lBQzlELElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDMUUsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3RELE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssS0FBSyxHQUFHLENBQUMs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
|
package/dist_ts/ustva.js
CHANGED
|
@@ -51,6 +51,7 @@ export const USTVA_KENNZAHL_LABELS = {
|
|
|
51
51
|
67: 'Vorsteuer aus Leistungen im Sinne des §13b UStG',
|
|
52
52
|
69: 'In Rechnungen unrichtig oder unberechtigt ausgewiesene Steuerbeträge (§ 14c UStG) sowie Steuerbeträge, die nach § 6a Absatz 4 Satz 2, § 17 Absatz 1 Satz 7, § 25b Absatz 2 UStG oder von einem Auslagerer oder Lagerhalter nach § 27 Absatz 40a UStG geschuldet werden',
|
|
53
53
|
39: 'Anrechnung der Sondervorauszahlung (Dauerfristverlängerung)',
|
|
54
|
+
70: 'Wechsel von der Kleinunternehmer-Regelung (§ 19 UStG) zur Regelbesteuerung – Datum des Wechsels',
|
|
54
55
|
83: 'Verbleibende Umsatzsteuer-Vorauszahlung / Überschuss',
|
|
55
56
|
};
|
|
56
57
|
/**
|
|
@@ -65,6 +66,35 @@ export const USTVA_KENNZAHL_LABELS = {
|
|
|
65
66
|
* dropped.
|
|
66
67
|
*/
|
|
67
68
|
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, 69, 39, 83];
|
|
69
|
+
/** Whether `valueArg` is a calendar day written `YYYY-MM-DD`. */
|
|
70
|
+
function isCalendarDay(valueArg) {
|
|
71
|
+
if (!/^\d{4}-\d{2}-\d{2}$/.test(valueArg))
|
|
72
|
+
return false;
|
|
73
|
+
const date = new Date(`${valueArg}T00:00:00Z`);
|
|
74
|
+
return !Number.isNaN(date.getTime()) && date.toISOString().slice(0, 10) === valueArg;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* The first and last day of a period label `YYYY-MM`, `YYYY-Qn` or `YYYY`;
|
|
78
|
+
* undefined for a label of another shape, which is informational only.
|
|
79
|
+
*/
|
|
80
|
+
function daysOfPeriod(periodArg) {
|
|
81
|
+
const lastDayOf = (yearArg, monthArg) => new Date(Date.UTC(yearArg, monthArg, 0)).toISOString().slice(0, 10);
|
|
82
|
+
const pad = (valueArg) => String(valueArg).padStart(2, '0');
|
|
83
|
+
let match = /^(\d{4})-(\d{2})$/.exec(periodArg);
|
|
84
|
+
if (match) {
|
|
85
|
+
const year = Number(match[1]);
|
|
86
|
+
const month = Number(match[2]);
|
|
87
|
+
return month >= 1 && month <= 12 ? { first: `${match[1]}-${pad(month)}-01`, last: lastDayOf(year, month) } : undefined;
|
|
88
|
+
}
|
|
89
|
+
match = /^(\d{4})-Q([1-4])$/.exec(periodArg);
|
|
90
|
+
if (match) {
|
|
91
|
+
const year = Number(match[1]);
|
|
92
|
+
const lastMonth = Number(match[2]) * 3;
|
|
93
|
+
return { first: `${match[1]}-${pad(lastMonth - 2)}-01`, last: lastDayOf(year, lastMonth) };
|
|
94
|
+
}
|
|
95
|
+
match = /^(\d{4})$/.exec(periodArg);
|
|
96
|
+
return match ? { first: `${match[1]}-01-01`, last: `${match[1]}-12-31` } : undefined;
|
|
97
|
+
}
|
|
68
98
|
/** full euros, cents truncated toward zero (form rule for bases) */
|
|
69
99
|
function truncateToEur(cents) {
|
|
70
100
|
return Math.trunc(cents / 100);
|
|
@@ -308,6 +338,21 @@ export function computeUstva(input) {
|
|
|
308
338
|
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`);
|
|
309
339
|
}
|
|
310
340
|
}
|
|
341
|
+
// ---- Kz 70: the day of the change from the Kleinunternehmer scheme ------
|
|
342
|
+
const dateFields = [];
|
|
343
|
+
const changeOn = input.smallBusinessChangeOn;
|
|
344
|
+
if (changeOn !== undefined) {
|
|
345
|
+
const period = daysOfPeriod(input.period);
|
|
346
|
+
if (!isCalendarDay(changeOn)) {
|
|
347
|
+
issues.push(`Kz 70 (the day of the change from the Kleinunternehmer scheme) ${changeOn} is no calendar day (YYYY-MM-DD)`);
|
|
348
|
+
}
|
|
349
|
+
else if (period && (changeOn < period.first || changeOn > period.last)) {
|
|
350
|
+
issues.push(`Kz 70 (the day of the change from the Kleinunternehmer scheme) ${changeOn} lies outside the period ${input.period} — it belongs in the return of the period that contains it`);
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
dateFields.push({ kennzahl: 70, value: changeOn, label: USTVA_KENNZAHL_LABELS[70] });
|
|
354
|
+
}
|
|
355
|
+
}
|
|
311
356
|
return {
|
|
312
357
|
chart: input.chart,
|
|
313
358
|
year: input.year,
|
|
@@ -322,6 +367,7 @@ export function computeUstva(input) {
|
|
|
322
367
|
checks,
|
|
323
368
|
},
|
|
324
369
|
issues,
|
|
370
|
+
dateFields,
|
|
325
371
|
};
|
|
326
372
|
}
|
|
327
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXN0dmEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy91c3R2YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE9BQU8sRUFBRSxlQUFlLEVBQWUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsUUFBUSxFQUFzQixNQUFNLG1CQUFtQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVNuRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFxQztJQUNyRSxFQUFFLEVBQUUsK0JBQStCO0lBQ25DLEVBQUUsRUFBRSw4QkFBOEI7SUFDbEMsRUFBRSxFQUFFLDREQUE0RDtJQUNoRSxFQUFFLEVBQUUscUNBQXFDO0lBQ3pDLEVBQUUsRUFBRSxvQ0FBb0M7SUFDeEMsRUFBRSxFQUFFLGdEQUFnRDtJQUNwRCxFQUFFLEVBQUUsd0RBQXdEO0lBQzVELEVBQUUsRUFBRSx5Q0FBeUM7SUFDN0MsRUFBRSxFQUFFLGdJQUFnSTtJQUNwSSxFQUFFLEVBQUUsdUJBQXVCO0lBQzNCLEVBQUUsRUFBRSxxRUFBcUU7SUFDekUsRUFBRSxFQUFFLHVCQUF1QjtJQUMzQixFQUFFLEVBQUUsK0RBQStEO0lBQ25FLEVBQUUsRUFBRSx1QkFBdUI7SUFDM0IsRUFBRSxFQUFFLHFGQUFxRjtJQUN6RixFQUFFLEVBQUUsb0RBQW9EO0lBQ3hELEVBQUUsRUFBRSxnRUFBZ0U7SUFDcEUsRUFBRSxFQUFFLDhDQUE4QztJQUNsRCxFQUFFLEVBQUUsOENBQThDO0lBQ2xELEVBQUUsRUFBRSxpQ0FBaUM7SUFDckMsRUFBRSxFQUFFLGlEQUFpRDtJQUNyRCxFQUFFLEVBQUUsd1FBQXdRO0lBQzVRLEVBQUUsRUFBRSw2REFBNkQ7SUFDakUsRUFBRSxFQUFFLHNEQUFzRDtDQUMzRCxDQUFDO0FBRUY7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sQ0FB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
|
|
373
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXN0dmEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy91c3R2YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE9BQU8sRUFBRSxlQUFlLEVBQWUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsUUFBUSxFQUFzQixNQUFNLG1CQUFtQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVVuRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFxQztJQUNyRSxFQUFFLEVBQUUsK0JBQStCO0lBQ25DLEVBQUUsRUFBRSw4QkFBOEI7SUFDbEMsRUFBRSxFQUFFLDREQUE0RDtJQUNoRSxFQUFFLEVBQUUscUNBQXFDO0lBQ3pDLEVBQUUsRUFBRSxvQ0FBb0M7SUFDeEMsRUFBRSxFQUFFLGdEQUFnRDtJQUNwRCxFQUFFLEVBQUUsd0RBQXdEO0lBQzVELEVBQUUsRUFBRSx5Q0FBeUM7SUFDN0MsRUFBRSxFQUFFLGdJQUFnSTtJQUNwSSxFQUFFLEVBQUUsdUJBQXVCO0lBQzNCLEVBQUUsRUFBRSxxRUFBcUU7SUFDekUsRUFBRSxFQUFFLHVCQUF1QjtJQUMzQixFQUFFLEVBQUUsK0RBQStEO0lBQ25FLEVBQUUsRUFBRSx1QkFBdUI7SUFDM0IsRUFBRSxFQUFFLHFGQUFxRjtJQUN6RixFQUFFLEVBQUUsb0RBQW9EO0lBQ3hELEVBQUUsRUFBRSxnRUFBZ0U7SUFDcEUsRUFBRSxFQUFFLDhDQUE4QztJQUNsRCxFQUFFLEVBQUUsOENBQThDO0lBQ2xELEVBQUUsRUFBRSxpQ0FBaUM7SUFDckMsRUFBRSxFQUFFLGlEQUFpRDtJQUNyRCxFQUFFLEVBQUUsd1FBQXdRO0lBQzVRLEVBQUUsRUFBRSw2REFBNkQ7SUFDakUsRUFBRSxFQUFFLGlHQUFpRztJQUNyRyxFQUFFLEVBQUUsc0RBQXNEO0NBQzNELENBQUM7QUFFRjs7Ozs7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
|
package/dist_ts/ustva.types.d.ts
CHANGED
|
@@ -83,6 +83,17 @@ export interface IUstvaInput {
|
|
|
83
83
|
* line. The chart data maps no account to it, so the caller states it.
|
|
84
84
|
*/
|
|
85
85
|
otherTaxOwed?: IOtherTaxOwedInput;
|
|
86
|
+
/**
|
|
87
|
+
* Kz 70 (Zeile 12 of the USt 1 A 2026, "Wechsel von der
|
|
88
|
+
* Kleinunternehmer-Regelung (§ 19 UStG) zur Regelbesteuerung – Datum des
|
|
89
|
+
* Wechsels"), `YYYY-MM-DD`: per the Anleitung zur UStVA 2026 (p. 8) the
|
|
90
|
+
* day of the supply by which the running year's Gesamtumsatz exceeded
|
|
91
|
+
* 100 000 € (in the year the business started, 25 000 €), or 1 January
|
|
92
|
+
* where a waiver of § 19 Abs. 3 UStG takes effect with the running year;
|
|
93
|
+
* none where the previous year exceeded 25 000 €. Stated in the return of
|
|
94
|
+
* the period that contains it; a day outside `period` is an issue.
|
|
95
|
+
*/
|
|
96
|
+
smallBusinessChangeOn?: string;
|
|
86
97
|
/** revenue accounts intentionally outside the UStVA (no issue raised) */
|
|
87
98
|
exemptAccounts?: string[];
|
|
88
99
|
/** override the built-in per-chart VAT account table */
|
|
@@ -95,6 +106,13 @@ export interface IUstvaInput {
|
|
|
95
106
|
reconciliationToleranceCents?: TCents;
|
|
96
107
|
}
|
|
97
108
|
export type TKennzahlKind = 'baseEur' | 'taxCents';
|
|
109
|
+
/** A field of the form that carries a day, not an amount (Kz 70). */
|
|
110
|
+
export interface IKennzahlDateValue {
|
|
111
|
+
kennzahl: number;
|
|
112
|
+
/** `YYYY-MM-DD` */
|
|
113
|
+
value: string;
|
|
114
|
+
label: string;
|
|
115
|
+
}
|
|
98
116
|
export interface IKennzahlValue {
|
|
99
117
|
kennzahl: number;
|
|
100
118
|
kind: TKennzahlKind;
|
|
@@ -125,4 +143,6 @@ export interface IUstvaResult {
|
|
|
125
143
|
reconciliation: IUstvaReconciliation;
|
|
126
144
|
/** hard problems — a filing must not be generated while non-empty */
|
|
127
145
|
issues: string[];
|
|
146
|
+
/** the fields that carry a day (Kz 70), in form order; empty where none is stated */
|
|
147
|
+
dateFields: IKennzahlDateValue[];
|
|
128
148
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fin.cx/tax",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "German tax computation engine: UStVA Kennzahl aggregation from ledger balances with form rounding, Zahllast and reconciliation checks — exact cents",
|
|
6
6
|
"main": "dist_ts/index.js",
|
package/readme.md
CHANGED
|
@@ -27,6 +27,7 @@ pnpm install @fin.cx/tax
|
|
|
27
27
|
|
|
28
28
|
- **igE and inbound §13b bases** (Kz 89/93, 46/47, 73/74, 84/85) are scenario figures, not single-account figures. Pass them exactly via `scenarioBases` (aggregated from tax-scenario-tagged journal entries, e.g. @fin.cx/skr's `taxScenario`): `reverseChargeServicesEuCents` for § 13b Abs. 1 (Kz 46), `reverseChargeRealEstateCents` for the Umsätze under the GrEStG, § 13b Abs. 2 Nr. 3 (Kz 73), `reverseChargeOtherCents` for the other § 13b Abs. 2 supplies (Kz 84); the tax fields split the ledger's § 13b output tax, each 19 % of its base and the last the rest, so they sum to the ledger, and the reconciliation checks Kz 67 against Kz 47+74+85. The fields carry the texts of section D of the USt 1 A 2026 (BMF, 29.12.2025), character for character: Kz 46 "Sonstige Leistungen nach § 3a Absatz 2 UStG eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (§ 13b Absatz 1 UStG)", Kz 73 "Umsätze, die unter das GrEStG fallen (§ 13b Absatz 2 Nummer 3 UStG)", Kz 84 "Andere Leistungen (§ 13b Absatz 2 Nummer 1, 2, 4 bis 12 UStG)". Without scenario bases the module derives the 19 % bases from the output-tax account movements and marks them `(derived)`.
|
|
29
29
|
- **Kz 69 (tax owed on other grounds)**, Zeile 47 of the USt 1 A 2026: "In Rechnungen unrichtig oder unberechtigt ausgewiesene Steuerbeträge (§ 14c UStG) sowie Steuerbeträge, die nach § 6a Absatz 4 Satz 2, § 17 Absatz 1 Satz 7, § 25b Absatz 2 UStG oder von einem Auslagerer oder Lagerhalter nach § 27 Absatz 40a UStG geschuldet werden" — e.g. the VAT a Kleinunternehmer's invoice states, or the tax the last buyer of a triangular transaction owes. The chart data maps no account to it, so the caller states it as `otherTaxOwed: { cents, onOutputAccountsCents? }`; it is added to Kz 83, and the part booked on the domestic output-tax accounts (`onOutputAccountsCents`) is left out of the domestic reconciliation, which has no base for it in Kz 81 or 86.
|
|
30
|
+
- **Kz 70 (the day of the change from the Kleinunternehmer scheme)**, Zeile 12 of the USt 1 A 2026: "Wechsel von der Kleinunternehmer-Regelung (§ 19 UStG) zur Regelbesteuerung – Datum des Wechsels". Per the Anleitung zur UStVA 2026 (p. 8) the day of the supply by which the running year's Gesamtumsatz exceeded 100 000 € (in the year the business started, 25 000 €), or 1 January for a waiver of § 19 Abs. 3 UStG from the running year; none where the previous year exceeded 25 000 €. The caller states it as `smallBusinessChangeOn` (`YYYY-MM-DD`) in the return of the period that contains it; it comes back in `dateFields` (`IKennzahlDateValue`: `kennzahl`, `value`, `label`), apart from the amounts. A day that is none, or one outside a `period` of the shape `YYYY-MM`, `YYYY-Qn` or `YYYY`, is an issue and is not returned.
|
|
30
31
|
- **Kz 83 (Zahllast/Erstattung)** is computed the way the form computes it, including an optional Sondervorauszahlung credit (Kz 39, Dauerfristverlängerung).
|
|
31
32
|
- **Reconciliation**: the ledger's output-tax balances are compared against the form computation; small drift from base truncation and per-invoice rounding is reported, drift beyond the tolerance (default 5.00 EUR) becomes an issue. igE and §13b input/output tax symmetry is checked too.
|
|
32
33
|
- **Loud failures**: revenue accounts without a UStVA mapping, unknown revenue-class accounts, undifferentiated output-VAT balances, and output VAT on the intra-EU acquisition of new vehicles from suppliers without a VAT ID (SKR 03 1784, SKR 04 3834, which this module does not compute) land in `issues`. **Do not generate a filing while `issues` is non-empty.**
|
|
@@ -88,16 +89,26 @@ const status = tax.smallBusinessStatusOf({
|
|
|
88
89
|
previousYearCents: tax.gesamtumsatzOf(receipts, 2025).totalCents,
|
|
89
90
|
receipts, // [{ receivedOn: '2026-03-01', entgeltCents: 120000, part: 'counted' }, …]
|
|
90
91
|
});
|
|
91
|
-
// { atStart: 'exempt', reason: 'within_limits', endsWith?: { receivedOn, index, runningCents }, runningCents }
|
|
92
|
+
// { atStart: 'exempt', reason: 'within_limits', runningLimitCents: 10000000, endsWith?: { receivedOn, index, runningCents }, runningCents }
|
|
92
93
|
```
|
|
93
94
|
|
|
94
95
|
`endsWith` names the receipt by which the running year first exceeds
|
|
95
|
-
100 000
|
|
96
|
-
year `taxable`; `smallBusinessWaiverDeadline`,
|
|
97
|
-
`…RevocableFrom` give its dates.
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
96
|
+
`runningLimitCents` (100 000 €); it and every later one are taxed. A waiver
|
|
97
|
+
(§ 19 Abs. 3) makes the year `taxable`; `smallBusinessWaiverDeadline`,
|
|
98
|
+
`…BindsUntil` and `…RevocableFrom` give its dates.
|
|
99
|
+
|
|
100
|
+
The year the business starts (`previousYearCents: 'business_started'`) has no
|
|
101
|
+
previous year, and the statute names no limit of its own for it. The reasoning
|
|
102
|
+
of the Jahressteuergesetz 2024 (BT-Drs. 20/12780, p. 183 f.) does: the running
|
|
103
|
+
year's Gesamtumsatz must not exceed 25 000 €, and the supply by which it does is
|
|
104
|
+
taxed already. So that year starts `exempt` (`business_started_this_year`) with
|
|
105
|
+
`runningLimitCents` 25 000 € (`SMALL_BUSINESS_FOUNDING_YEAR_LIMIT_CENTS`), and
|
|
106
|
+
`endsWith` names the receipt above it. A part of a year is not converted to a
|
|
107
|
+
whole year any longer (same source, zu Abs. 2): three months with 24 000 € are
|
|
108
|
+
24 000 €, in the year the business starts and as the next year's previous year.
|
|
109
|
+
|
|
110
|
+
A year before 2025 answers `unknown` (`before_2025`), under the version with
|
|
111
|
+
other limits (22 000 € / 50 000 €, with the tax). The rules cover businesses resident in Germany or the areas of
|
|
101
112
|
§ 1 Abs. 3 UStG; the new vehicles of § 19 Abs. 6 are not modelled.
|
|
102
113
|
|
|
103
114
|
## German VAT rates, dated
|
package/ts/00_commitinfo_data.ts
CHANGED
package/ts/smallbusiness.ts
CHANGED
|
@@ -30,14 +30,29 @@
|
|
|
30
30
|
* tax) and did not exempt the supplies but levied no tax on them; a year
|
|
31
31
|
* before 2025 answers `before_2025` and is not told.
|
|
32
32
|
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
33
|
+
* The year the business starts: the statute names no limit of its own for it
|
|
34
|
+
* (there is no previous year). The reasoning of the Jahressteuergesetz 2024
|
|
35
|
+
* (BT-Drs. 20/12780, read on dserver.bundestag.de 2026-09-30, p. 183 f., zu
|
|
36
|
+
* § 19 Abs. 1) does: "Nimmt der Unternehmer seine gewerbliche oder berufliche
|
|
37
|
+
* Tätigkeit auf, ist § 19 Absatz 1 Satz 1 UStG mit der Maßgabe anzuwenden,
|
|
38
|
+
* dass der Gesamtumsatz im laufenden Kalenderjahr den Betrag von 25 000 Euro
|
|
39
|
+
* nicht überschreitet. Bereits der Umsatz, mit dem die Grenze überschritten
|
|
40
|
+
* wird, unterliegt der Regelbesteuerung." (Art. 288a Abs. 1 UAbs. 3 RL
|
|
41
|
+
* 2006/112 EG); "Die bis zum Zeitpunkt der Überschreitung bewirkten Umsätze
|
|
42
|
+
* sind steuerfrei." And zu Abs. 2: "Übt der Unternehmer seine gewerbliche
|
|
43
|
+
* oder berufliche Tätigkeit nur für einen Teil des Kalenderjahres aus,
|
|
44
|
+
* entfällt die bisherige Umrechnung in einen Jahresgesamtumsatz": a part of a
|
|
45
|
+
* year counts as it is, in the year the business starts and as the next
|
|
46
|
+
* year's previous year. The Anleitung zur Umsatzsteuer-Voranmeldung 2026
|
|
47
|
+
* (p. 8, Zeile 12) reads the founding year the same way.
|
|
48
|
+
*
|
|
49
|
+
* The supply by which the running year exceeds 100 000 €: the reasoning says
|
|
50
|
+
* the scheme no longer applies "ab diesem Zeitpunkt", and the statute exempts
|
|
51
|
+
* a supply while the running year's Gesamtumsatz "nicht überschreitet"; both
|
|
52
|
+
* are read so that it is taxed: `endsWith` names the receipt at which the sum
|
|
53
|
+
* first exceeds the limit, and every receipt from it on is taxed. Not read:
|
|
54
|
+
* the BMF-Schreiben of 18 March 2025 (UStAE Abschn. 19.1 ff.), which the BMF
|
|
55
|
+
* site did not serve.
|
|
41
56
|
*/
|
|
42
57
|
import type { TCents } from '@fin.cx/calculation';
|
|
43
58
|
|
|
@@ -48,6 +63,8 @@ export const SMALL_BUSINESS_FIRST_YEAR = 2025;
|
|
|
48
63
|
export const SMALL_BUSINESS_PREVIOUS_YEAR_LIMIT_CENTS: TCents = 2_500_000;
|
|
49
64
|
/** 100 000 €: the running calendar year's limit (§ 19 Abs. 1 Satz 1 UStG) */
|
|
50
65
|
export const SMALL_BUSINESS_RUNNING_YEAR_LIMIT_CENTS: TCents = 10_000_000;
|
|
66
|
+
/** 25 000 €: the running calendar year's limit in the year the business starts (BT-Drs. 20/12780, p. 183 f., zu § 19 Abs. 1 UStG) */
|
|
67
|
+
export const SMALL_BUSINESS_FOUNDING_YEAR_LIMIT_CENTS: TCents = 2_500_000;
|
|
51
68
|
|
|
52
69
|
/**
|
|
53
70
|
* What a receipt is to the Gesamtumsatz (§ 19 Abs. 2 UStG):
|
|
@@ -83,7 +100,12 @@ export interface IGesamtumsatzOfYear {
|
|
|
83
100
|
leftOutCents: Record<Exclude<TGesamtumsatzPart, 'counted'>, TCents>;
|
|
84
101
|
}
|
|
85
102
|
|
|
86
|
-
/**
|
|
103
|
+
/**
|
|
104
|
+
* Why a year starts with the exemption or without it. `within_limits` and
|
|
105
|
+
* `business_started_this_year` start it exempt: the one by the previous
|
|
106
|
+
* year's Gesamtumsatz, the other as the year the business starts, which has
|
|
107
|
+
* none (its running limit is 25 000 €).
|
|
108
|
+
*/
|
|
87
109
|
export type TSmallBusinessReason =
|
|
88
110
|
| 'within_limits'
|
|
89
111
|
| 'previous_year_over'
|
|
@@ -114,9 +136,17 @@ export interface ISmallBusinessStatus {
|
|
|
114
136
|
atStart: 'exempt' | 'taxable' | 'unknown';
|
|
115
137
|
reason: TSmallBusinessReason;
|
|
116
138
|
/**
|
|
117
|
-
* Where the year starts exempt
|
|
118
|
-
*
|
|
119
|
-
*
|
|
139
|
+
* Where the year starts exempt: the running year's Gesamtumsatz up to which
|
|
140
|
+
* it stays exempt, 100 000 € (`SMALL_BUSINESS_RUNNING_YEAR_LIMIT_CENTS`), or
|
|
141
|
+
* 25 000 € in the year the business starts
|
|
142
|
+
* (`SMALL_BUSINESS_FOUNDING_YEAR_LIMIT_CENTS`)
|
|
143
|
+
*/
|
|
144
|
+
runningLimitCents?: TCents;
|
|
145
|
+
/**
|
|
146
|
+
* Where the year starts exempt and its Gesamtumsatz exceeds
|
|
147
|
+
* `runningLimitCents`: the receipt by which it first does (its day, its
|
|
148
|
+
* place in the receipts as given, the sum with it). It and every later
|
|
149
|
+
* receipt are taxed.
|
|
120
150
|
*/
|
|
121
151
|
endsWith?: { receivedOn: string; index: number; runningCents: TCents };
|
|
122
152
|
/** the year's Gesamtumsatz over all its receipts */
|
|
@@ -173,7 +203,9 @@ export function gesamtumsatzOf(receiptsArg: readonly IGesamtumsatzReceipt[], yea
|
|
|
173
203
|
* Whether a calendar year's supplies are exempt under § 19 Abs. 1 UStG: from
|
|
174
204
|
* its start where the previous year's Gesamtumsatz did not exceed 25 000 € and
|
|
175
205
|
* no waiver is in force, until the receipt by which the running year's
|
|
176
|
-
* Gesamtumsatz exceeds 100 000 € (`endsWith`).
|
|
206
|
+
* Gesamtumsatz exceeds 100 000 € (`endsWith`). In the year the business
|
|
207
|
+
* starts (`previousYearCents: 'business_started'`) from its start, until the
|
|
208
|
+
* receipt by which it exceeds 25 000 €, counted as it is, not as a whole year.
|
|
177
209
|
*/
|
|
178
210
|
export function smallBusinessStatusOf(inputArg: ISmallBusinessYearInput): ISmallBusinessStatus {
|
|
179
211
|
assertYear(inputArg.year);
|
|
@@ -197,23 +229,23 @@ export function smallBusinessStatusOf(inputArg: ISmallBusinessYearInput): ISmall
|
|
|
197
229
|
if (inputArg.waived === true) {
|
|
198
230
|
return { ...base, atStart: 'taxable', reason: 'waived' };
|
|
199
231
|
}
|
|
200
|
-
if (previous === 'business_started') {
|
|
201
|
-
return { ...base, atStart: 'unknown', reason: 'business_started_this_year' };
|
|
202
|
-
}
|
|
203
232
|
if (previous === undefined) {
|
|
204
233
|
return { ...base, atStart: 'unknown', reason: 'previous_year_unknown' };
|
|
205
234
|
}
|
|
206
|
-
if (previous > SMALL_BUSINESS_PREVIOUS_YEAR_LIMIT_CENTS) {
|
|
235
|
+
if (previous !== 'business_started' && previous > SMALL_BUSINESS_PREVIOUS_YEAR_LIMIT_CENTS) {
|
|
207
236
|
return { ...base, atStart: 'taxable', reason: 'previous_year_over' };
|
|
208
237
|
}
|
|
238
|
+
const reason: TSmallBusinessReason = previous === 'business_started' ? 'business_started_this_year' : 'within_limits';
|
|
239
|
+
const runningLimitCents = previous === 'business_started' ? SMALL_BUSINESS_FOUNDING_YEAR_LIMIT_CENTS : SMALL_BUSINESS_RUNNING_YEAR_LIMIT_CENTS;
|
|
240
|
+
const exempt = { ...base, atStart: 'exempt' as const, reason, runningLimitCents };
|
|
209
241
|
let sum = 0;
|
|
210
242
|
for (const { receipt, index } of counted) {
|
|
211
243
|
sum += receipt.entgeltCents;
|
|
212
|
-
if (sum >
|
|
213
|
-
return { ...
|
|
244
|
+
if (sum > runningLimitCents) {
|
|
245
|
+
return { ...exempt, endsWith: { receivedOn: receipt.receivedOn, index, runningCents: sum } };
|
|
214
246
|
}
|
|
215
247
|
}
|
|
216
|
-
return
|
|
248
|
+
return exempt;
|
|
217
249
|
}
|
|
218
250
|
|
|
219
251
|
/** The last calendar year a waiver effective for `yearArg` binds (§ 19 Abs. 3 Satz 3 UStG: at least five calendar years). */
|
package/ts/ustva.ts
CHANGED
|
@@ -22,6 +22,7 @@ import { vatFromNetCents, type TCents } from '@fin.cx/calculation';
|
|
|
22
22
|
import { getChart, type IChartAccount } from '@fin.cx/chartdata';
|
|
23
23
|
import { VAT_ACCOUNTS } from './ustva.accounts.js';
|
|
24
24
|
import type {
|
|
25
|
+
IKennzahlDateValue,
|
|
25
26
|
IKennzahlValue,
|
|
26
27
|
IUstvaInput,
|
|
27
28
|
IUstvaResult,
|
|
@@ -59,6 +60,7 @@ export const USTVA_KENNZAHL_LABELS: Readonly<Record<number, string>> = {
|
|
|
59
60
|
67: 'Vorsteuer aus Leistungen im Sinne des §13b UStG',
|
|
60
61
|
69: 'In Rechnungen unrichtig oder unberechtigt ausgewiesene Steuerbeträge (§ 14c UStG) sowie Steuerbeträge, die nach § 6a Absatz 4 Satz 2, § 17 Absatz 1 Satz 7, § 25b Absatz 2 UStG oder von einem Auslagerer oder Lagerhalter nach § 27 Absatz 40a UStG geschuldet werden',
|
|
61
62
|
39: 'Anrechnung der Sondervorauszahlung (Dauerfristverlängerung)',
|
|
63
|
+
70: 'Wechsel von der Kleinunternehmer-Regelung (§ 19 UStG) zur Regelbesteuerung – Datum des Wechsels',
|
|
62
64
|
83: 'Verbleibende Umsatzsteuer-Vorauszahlung / Überschuss',
|
|
63
65
|
};
|
|
64
66
|
|
|
@@ -75,6 +77,37 @@ export const USTVA_KENNZAHL_LABELS: Readonly<Record<number, string>> = {
|
|
|
75
77
|
*/
|
|
76
78
|
export const USTVA_KENNZAHL_ORDER: readonly number[] = [81, 86, 87, 41, 43, 48, 89, 93, 46, 47, 73, 74, 84, 85, 60, 21, 45, 66, 61, 62, 67, 69, 39, 83];
|
|
77
79
|
|
|
80
|
+
/** Whether `valueArg` is a calendar day written `YYYY-MM-DD`. */
|
|
81
|
+
function isCalendarDay(valueArg: string): boolean {
|
|
82
|
+
if (!/^\d{4}-\d{2}-\d{2}$/.test(valueArg)) return false;
|
|
83
|
+
const date = new Date(`${valueArg}T00:00:00Z`);
|
|
84
|
+
return !Number.isNaN(date.getTime()) && date.toISOString().slice(0, 10) === valueArg;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* The first and last day of a period label `YYYY-MM`, `YYYY-Qn` or `YYYY`;
|
|
89
|
+
* undefined for a label of another shape, which is informational only.
|
|
90
|
+
*/
|
|
91
|
+
function daysOfPeriod(periodArg: string): { first: string; last: string } | undefined {
|
|
92
|
+
const lastDayOf = (yearArg: number, monthArg: number): string =>
|
|
93
|
+
new Date(Date.UTC(yearArg, monthArg, 0)).toISOString().slice(0, 10);
|
|
94
|
+
const pad = (valueArg: number): string => String(valueArg).padStart(2, '0');
|
|
95
|
+
let match = /^(\d{4})-(\d{2})$/.exec(periodArg);
|
|
96
|
+
if (match) {
|
|
97
|
+
const year = Number(match[1]);
|
|
98
|
+
const month = Number(match[2]);
|
|
99
|
+
return month >= 1 && month <= 12 ? { first: `${match[1]}-${pad(month)}-01`, last: lastDayOf(year, month) } : undefined;
|
|
100
|
+
}
|
|
101
|
+
match = /^(\d{4})-Q([1-4])$/.exec(periodArg);
|
|
102
|
+
if (match) {
|
|
103
|
+
const year = Number(match[1]);
|
|
104
|
+
const lastMonth = Number(match[2]) * 3;
|
|
105
|
+
return { first: `${match[1]}-${pad(lastMonth - 2)}-01`, last: lastDayOf(year, lastMonth) };
|
|
106
|
+
}
|
|
107
|
+
match = /^(\d{4})$/.exec(periodArg);
|
|
108
|
+
return match ? { first: `${match[1]}-01-01`, last: `${match[1]}-12-31` } : undefined;
|
|
109
|
+
}
|
|
110
|
+
|
|
78
111
|
/** full euros, cents truncated toward zero (form rule for bases) */
|
|
79
112
|
function truncateToEur(cents: TCents): number {
|
|
80
113
|
return Math.trunc(cents / 100);
|
|
@@ -355,6 +388,22 @@ export function computeUstva(input: IUstvaInput): IUstvaResult {
|
|
|
355
388
|
}
|
|
356
389
|
}
|
|
357
390
|
|
|
391
|
+
// ---- Kz 70: the day of the change from the Kleinunternehmer scheme ------
|
|
392
|
+
const dateFields: IKennzahlDateValue[] = [];
|
|
393
|
+
const changeOn = input.smallBusinessChangeOn;
|
|
394
|
+
if (changeOn !== undefined) {
|
|
395
|
+
const period = daysOfPeriod(input.period);
|
|
396
|
+
if (!isCalendarDay(changeOn)) {
|
|
397
|
+
issues.push(`Kz 70 (the day of the change from the Kleinunternehmer scheme) ${changeOn} is no calendar day (YYYY-MM-DD)`);
|
|
398
|
+
} else if (period && (changeOn < period.first || changeOn > period.last)) {
|
|
399
|
+
issues.push(
|
|
400
|
+
`Kz 70 (the day of the change from the Kleinunternehmer scheme) ${changeOn} lies outside the period ${input.period} — it belongs in the return of the period that contains it`,
|
|
401
|
+
);
|
|
402
|
+
} else {
|
|
403
|
+
dateFields.push({ kennzahl: 70, value: changeOn, label: USTVA_KENNZAHL_LABELS[70] });
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
|
|
358
407
|
return {
|
|
359
408
|
chart: input.chart,
|
|
360
409
|
year: input.year,
|
|
@@ -369,5 +418,6 @@ export function computeUstva(input: IUstvaInput): IUstvaResult {
|
|
|
369
418
|
checks,
|
|
370
419
|
},
|
|
371
420
|
issues,
|
|
421
|
+
dateFields,
|
|
372
422
|
};
|
|
373
423
|
}
|
package/ts/ustva.types.ts
CHANGED
|
@@ -88,6 +88,17 @@ export interface IUstvaInput {
|
|
|
88
88
|
* line. The chart data maps no account to it, so the caller states it.
|
|
89
89
|
*/
|
|
90
90
|
otherTaxOwed?: IOtherTaxOwedInput;
|
|
91
|
+
/**
|
|
92
|
+
* Kz 70 (Zeile 12 of the USt 1 A 2026, "Wechsel von der
|
|
93
|
+
* Kleinunternehmer-Regelung (§ 19 UStG) zur Regelbesteuerung – Datum des
|
|
94
|
+
* Wechsels"), `YYYY-MM-DD`: per the Anleitung zur UStVA 2026 (p. 8) the
|
|
95
|
+
* day of the supply by which the running year's Gesamtumsatz exceeded
|
|
96
|
+
* 100 000 € (in the year the business started, 25 000 €), or 1 January
|
|
97
|
+
* where a waiver of § 19 Abs. 3 UStG takes effect with the running year;
|
|
98
|
+
* none where the previous year exceeded 25 000 €. Stated in the return of
|
|
99
|
+
* the period that contains it; a day outside `period` is an issue.
|
|
100
|
+
*/
|
|
101
|
+
smallBusinessChangeOn?: string;
|
|
91
102
|
/** revenue accounts intentionally outside the UStVA (no issue raised) */
|
|
92
103
|
exemptAccounts?: string[];
|
|
93
104
|
/** override the built-in per-chart VAT account table */
|
|
@@ -102,6 +113,14 @@ export interface IUstvaInput {
|
|
|
102
113
|
|
|
103
114
|
export type TKennzahlKind = 'baseEur' | 'taxCents';
|
|
104
115
|
|
|
116
|
+
/** A field of the form that carries a day, not an amount (Kz 70). */
|
|
117
|
+
export interface IKennzahlDateValue {
|
|
118
|
+
kennzahl: number;
|
|
119
|
+
/** `YYYY-MM-DD` */
|
|
120
|
+
value: string;
|
|
121
|
+
label: string;
|
|
122
|
+
}
|
|
123
|
+
|
|
105
124
|
export interface IKennzahlValue {
|
|
106
125
|
kennzahl: number;
|
|
107
126
|
kind: TKennzahlKind;
|
|
@@ -134,4 +153,6 @@ export interface IUstvaResult {
|
|
|
134
153
|
reconciliation: IUstvaReconciliation;
|
|
135
154
|
/** hard problems — a filing must not be generated while non-empty */
|
|
136
155
|
issues: string[];
|
|
156
|
+
/** the fields that carry a day (Kz 70), in form order; empty where none is stated */
|
|
157
|
+
dateFields: IKennzahlDateValue[];
|
|
137
158
|
}
|