@fin.cx/chartdata 1.1.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.d.ts +8 -0
- package/dist_ts/00_commitinfo_data.js +9 -0
- package/dist_ts/chartdata.lookup.d.ts +22 -0
- package/dist_ts/chartdata.lookup.js +78 -0
- package/dist_ts/chartdata.types.d.ts +83 -0
- package/dist_ts/chartdata.types.js +2 -0
- package/dist_ts/data/skr03.2026.d.ts +2 -0
- package/dist_ts/data/skr03.2026.js +1247 -0
- package/dist_ts/data/skr04.2026.d.ts +2 -0
- package/dist_ts/data/skr04.2026.js +1290 -0
- package/dist_ts/index.d.ts +4 -0
- package/dist_ts/index.js +5 -0
- package/license +20 -0
- package/package.json +48 -0
- package/readme.md +98 -0
- package/ts/00_commitinfo_data.ts +8 -0
- package/ts/chartdata.lookup.ts +107 -0
- package/ts/chartdata.types.ts +86 -0
- package/ts/data/skr03.2026.ts +1249 -0
- package/ts/data/skr04.2026.ts +1292 -0
- package/ts/index.ts +4 -0
package/dist_ts/index.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './chartdata.types.js';
|
|
2
|
+
export * from './chartdata.lookup.js';
|
|
3
|
+
export { SKR03_2026 } from './data/skr03.2026.js';
|
|
4
|
+
export { SKR04_2026 } from './data/skr04.2026.js';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQyJ9
|
package/license
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Task Venture Capital GmbH
|
|
4
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
5
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
6
|
+
in the Software without restriction, including without limitation the rights
|
|
7
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
8
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
9
|
+
furnished to do so, subject to the following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be included in all
|
|
12
|
+
copies or substantial portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
15
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
16
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
17
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
18
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
19
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
20
|
+
SOFTWARE.
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@fin.cx/chartdata",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"private": false,
|
|
5
|
+
"description": "Year-versioned German SKR03/SKR04 chart-of-accounts datasets with Automatikkonto functions, BU-key rules, and UStVA-Kennzahl mappings",
|
|
6
|
+
"main": "dist_ts/index.js",
|
|
7
|
+
"typings": "dist_ts/index.d.ts",
|
|
8
|
+
"type": "module",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "https://code.foss.global/fin.cx/chartdata.git"
|
|
12
|
+
},
|
|
13
|
+
"keywords": [
|
|
14
|
+
"skr03",
|
|
15
|
+
"skr04",
|
|
16
|
+
"chart of accounts",
|
|
17
|
+
"kontenrahmen",
|
|
18
|
+
"datev",
|
|
19
|
+
"ustva",
|
|
20
|
+
"accounting",
|
|
21
|
+
"german",
|
|
22
|
+
"typescript"
|
|
23
|
+
],
|
|
24
|
+
"author": "fin.cx",
|
|
25
|
+
"license": "MIT",
|
|
26
|
+
"bugs": {
|
|
27
|
+
"url": "https://code.foss.global/fin.cx/chartdata/issues"
|
|
28
|
+
},
|
|
29
|
+
"homepage": "https://code.foss.global/fin.cx/chartdata#readme",
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@git.zone/tsbuild": "^4.4.2",
|
|
32
|
+
"@git.zone/tsrun": "^2.0.5",
|
|
33
|
+
"@git.zone/tstest": "^3.6.6",
|
|
34
|
+
"@types/node": "^26.1.1"
|
|
35
|
+
},
|
|
36
|
+
"files": [
|
|
37
|
+
"ts/**/*",
|
|
38
|
+
"dist_ts/**/*",
|
|
39
|
+
"dist_ts_web/**/*",
|
|
40
|
+
"readme.md",
|
|
41
|
+
"license"
|
|
42
|
+
],
|
|
43
|
+
"scripts": {
|
|
44
|
+
"test": "(tstest test/ --verbose)",
|
|
45
|
+
"build": "(tsbuild --web --node)",
|
|
46
|
+
"buildDocs": "tsdoc"
|
|
47
|
+
}
|
|
48
|
+
}
|
package/readme.md
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# @fin.cx/chartdata
|
|
2
|
+
|
|
3
|
+
Year-versioned German SKR03/SKR04 chart-of-accounts datasets with Automatikkonto
|
|
4
|
+
functions, BU-key rules, and UStVA-Kennzahl mappings. Pure data plus a small
|
|
5
|
+
lookup API — no database, no runtime dependencies.
|
|
6
|
+
|
|
7
|
+
This package is the data backbone for `@fin.cx/skr` (the bookkeeping core) and
|
|
8
|
+
the upcoming filing packages: account→UStVA-Kennzahl mappings feed the
|
|
9
|
+
Umsatzsteuer-Voranmeldung engine; HGB §266/§275 and E-Bilanz taxonomy mappings
|
|
10
|
+
land here as they are curated (A2/A3 milestones).
|
|
11
|
+
|
|
12
|
+
## Issue Reporting and Security
|
|
13
|
+
|
|
14
|
+
For reporting bugs, issues, or security vulnerabilities, please visit [community.foss.global/](https://community.foss.global/). This is the central community hub for all issue reporting. Developers who sign and comply with our contribution agreement and go through identification can also get a [code.foss.global/](https://code.foss.global/) account to submit Pull Requests directly.
|
|
15
|
+
|
|
16
|
+
## What This Package Provides
|
|
17
|
+
|
|
18
|
+
- Year-keyed SKR03 and SKR04 datasets (`SKR03_2026`, `SKR04_2026`)
|
|
19
|
+
- Automatikkonto functions (USt/VSt automatism incl. rate, tax-free accounts)
|
|
20
|
+
with the allowed BU keys per account ('' or '40' on automatik accounts)
|
|
21
|
+
- Account→UStVA-Kennzahl mappings (`ustva: { kennzahl, role: 'base' | 'tax' }`)
|
|
22
|
+
- Scenario-driven Kennzahlen (`USTVA_SCENARIO_KENNZAHLEN`) for igE and §13b
|
|
23
|
+
Bemessungsgrundlagen that cannot be derived from a single account
|
|
24
|
+
- Coverage introspection that fails loudly on mapping gaps
|
|
25
|
+
- Provenance on every record
|
|
26
|
+
|
|
27
|
+
## Installation
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
pnpm add @fin.cx/chartdata
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Usage
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
import {
|
|
37
|
+
getChart,
|
|
38
|
+
getAccount,
|
|
39
|
+
getMappingCoverage,
|
|
40
|
+
USTVA_SCENARIO_KENNZAHLEN,
|
|
41
|
+
} from '@fin.cx/chartdata';
|
|
42
|
+
|
|
43
|
+
const chart = getChart('SKR03', 2026);
|
|
44
|
+
|
|
45
|
+
const revenue = getAccount('SKR03', 2026, '8400');
|
|
46
|
+
// { automatikFunction: { taxType: 'ust', ratePercent: 19 },
|
|
47
|
+
// allowedBuKeys: ['', '40'], ustva: { kennzahl: 81, role: 'base' }, ... }
|
|
48
|
+
|
|
49
|
+
// before generating a UStVA: every used account must be mapped
|
|
50
|
+
const coverage = getMappingCoverage('SKR03', 2026, usedAccountNumbers, 'ustva');
|
|
51
|
+
if (coverage.missing.length > 0 || coverage.unknown.length > 0) {
|
|
52
|
+
throw new Error(`UStVA mapping gaps: ${[...coverage.missing, ...coverage.unknown].join(', ')}`);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
USTVA_SCENARIO_KENNZAHLEN.intraEuAcquisitionBaseStandard; // 89
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Data Provenance and Verification
|
|
59
|
+
|
|
60
|
+
Records carry a `provenance` string. The current datasets are seeded from the
|
|
61
|
+
`@fin.cx/skr` built-in charts and enriched with standard DATEV SKR account
|
|
62
|
+
semantics cross-checked against multiple public sources (2026-07-09). The
|
|
63
|
+
official DATEV tables are portal-gated; the standing verification gates are
|
|
64
|
+
ERiC validation of generated filings and periodic manual DATEV imports.
|
|
65
|
+
HGB §266/§275 and E-Bilanz (de-gaap-ci) positions are not populated yet —
|
|
66
|
+
`getMappingCoverage()` reports them as missing by design.
|
|
67
|
+
|
|
68
|
+
The generation pipeline lives in the unpublished `tools/` directory
|
|
69
|
+
(`tsx tools/seed-from-skr.ts`); datasets are generated files — extend the
|
|
70
|
+
enrichment tables in the tool, never edit `ts/data/*` by hand.
|
|
71
|
+
|
|
72
|
+
## Development
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
pnpm build
|
|
76
|
+
pnpm test
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## License and Legal Information
|
|
80
|
+
|
|
81
|
+
This repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [license](./license) file.
|
|
82
|
+
|
|
83
|
+
**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.
|
|
84
|
+
|
|
85
|
+
### Trademarks
|
|
86
|
+
|
|
87
|
+
This project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH or third parties, and are not included within the scope of the MIT license granted herein.
|
|
88
|
+
|
|
89
|
+
Use of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines or the guidelines of the respective third-party owners, and any usage must be approved in writing. Third-party trademarks used herein are the property of their respective owners and used only in a descriptive manner, e.g. for an implementation of an API or similar.
|
|
90
|
+
|
|
91
|
+
### Company Information
|
|
92
|
+
|
|
93
|
+
Task Venture Capital GmbH
|
|
94
|
+
Registered at District Court Bremen HRB 35230 HB, Germany
|
|
95
|
+
|
|
96
|
+
For any legal inquiries or further information, please contact us via email at hello@task.vc.
|
|
97
|
+
|
|
98
|
+
By using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* autocreated commitinfo by @push.rocks/commitinfo
|
|
3
|
+
*/
|
|
4
|
+
export const commitinfo = {
|
|
5
|
+
name: '@fin.cx/chartdata',
|
|
6
|
+
version: '1.1.0',
|
|
7
|
+
description: 'Year-versioned German SKR03/SKR04 chart-of-accounts datasets with Automatikkonto functions, BU-key rules, and UStVA-Kennzahl mappings'
|
|
8
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
IChart,
|
|
3
|
+
IChartAccount,
|
|
4
|
+
IMappingCoverage,
|
|
5
|
+
IScenarioKennzahlen,
|
|
6
|
+
TChartName,
|
|
7
|
+
TMappingDimension,
|
|
8
|
+
} from './chartdata.types.js';
|
|
9
|
+
import { SKR03_2026 } from './data/skr03.2026.js';
|
|
10
|
+
import { SKR04_2026 } from './data/skr04.2026.js';
|
|
11
|
+
|
|
12
|
+
const CHARTS: IChart[] = [SKR03_2026, SKR04_2026];
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* UStVA Kennzahlen driven by the tax scenario of a booking (not by a single
|
|
16
|
+
* account). Verified against the stable UStVA layout; ERiC validation in the
|
|
17
|
+
* elster milestone is the final oracle.
|
|
18
|
+
*/
|
|
19
|
+
export const USTVA_SCENARIO_KENNZAHLEN: IScenarioKennzahlen = {
|
|
20
|
+
intraEuAcquisitionBaseStandard: 89,
|
|
21
|
+
intraEuAcquisitionBaseReduced: 93,
|
|
22
|
+
reverseChargeServicesEuBase: 46,
|
|
23
|
+
reverseChargeServicesEuTax: 47,
|
|
24
|
+
reverseChargeOtherBase: 84,
|
|
25
|
+
reverseChargeOtherTax: 85,
|
|
26
|
+
intraEuSupplyBase: 41,
|
|
27
|
+
exportBase: 43,
|
|
28
|
+
domesticStandardBase: 81,
|
|
29
|
+
domesticReducedBase: 86,
|
|
30
|
+
outboundReverseChargeBase: 60,
|
|
31
|
+
inputVat: 66,
|
|
32
|
+
inputVatIntraEu: 61,
|
|
33
|
+
inputVatReverseCharge: 67,
|
|
34
|
+
importVat: 62,
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export function listAvailableCharts(): Array<{ chart: TChartName; year: number }> {
|
|
38
|
+
return CHARTS.map(({ chart, year }) => ({ chart, year }));
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Get a chart dataset. Throws for unknown chart/year combinations —
|
|
43
|
+
* year-versioned data must never fall back silently.
|
|
44
|
+
*/
|
|
45
|
+
export function getChart(chart: TChartName, year: number): IChart {
|
|
46
|
+
const found = CHARTS.find((candidate) => candidate.chart === chart && candidate.year === year);
|
|
47
|
+
if (!found) {
|
|
48
|
+
throw new Error(
|
|
49
|
+
`No ${chart} dataset for year ${year}. Available: ${CHARTS.map(
|
|
50
|
+
(candidate) => `${candidate.chart}/${candidate.year}`,
|
|
51
|
+
).join(', ')}`,
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
return found;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export function getAccount(
|
|
58
|
+
chart: TChartName,
|
|
59
|
+
year: number,
|
|
60
|
+
accountNumber: string,
|
|
61
|
+
): IChartAccount | null {
|
|
62
|
+
return (
|
|
63
|
+
getChart(chart, year).accounts.find(
|
|
64
|
+
(account) => account.accountNumber === accountNumber,
|
|
65
|
+
) ?? null
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function hasMapping(account: IChartAccount, dimension: TMappingDimension): boolean {
|
|
70
|
+
switch (dimension) {
|
|
71
|
+
case 'ustva':
|
|
72
|
+
return account.ustva !== undefined;
|
|
73
|
+
case 'hgb266':
|
|
74
|
+
return account.hgb266Position !== undefined;
|
|
75
|
+
case 'hgb275':
|
|
76
|
+
return account.hgb275Position !== undefined;
|
|
77
|
+
case 'ebilanz':
|
|
78
|
+
return account.ebilanzPosition !== undefined;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Coverage check for the accounts a ledger actually uses. Callers must treat
|
|
84
|
+
* missing/unknown accounts as a hard error before generating filings.
|
|
85
|
+
*/
|
|
86
|
+
export function getMappingCoverage(
|
|
87
|
+
chart: TChartName,
|
|
88
|
+
year: number,
|
|
89
|
+
usedAccounts: string[],
|
|
90
|
+
dimension: TMappingDimension,
|
|
91
|
+
): IMappingCoverage {
|
|
92
|
+
const dataset = getChart(chart, year);
|
|
93
|
+
const byNumber = new Map(dataset.accounts.map((account) => [account.accountNumber, account]));
|
|
94
|
+
const missing: string[] = [];
|
|
95
|
+
const unknown: string[] = [];
|
|
96
|
+
let covered = 0;
|
|
97
|
+
for (const accountNumber of usedAccounts) {
|
|
98
|
+
const account = byNumber.get(accountNumber);
|
|
99
|
+
if (!account) {
|
|
100
|
+
unknown.push(accountNumber);
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
if (hasMapping(account, dimension)) covered++;
|
|
104
|
+
else missing.push(accountNumber);
|
|
105
|
+
}
|
|
106
|
+
return { dimension, requested: usedAccounts.length, covered, missing, unknown };
|
|
107
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
export type TChartName = 'SKR03' | 'SKR04';
|
|
2
|
+
|
|
3
|
+
export type TAccountType = 'asset' | 'liability' | 'equity' | 'revenue' | 'expense';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Built-in DATEV tax automatism of an account. Lines on automatik accounts
|
|
7
|
+
* must carry no BU key (automatism applies) or key 40 (automatism cancelled).
|
|
8
|
+
*/
|
|
9
|
+
export type TAutomatikFunction =
|
|
10
|
+
| { taxType: 'ust'; ratePercent: number }
|
|
11
|
+
| { taxType: 'vst'; ratePercent: number }
|
|
12
|
+
| { taxType: 'free' };
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Direct account→UStVA mapping. role 'base' = the account's period movement
|
|
16
|
+
* is a Bemessungsgrundlage for the Kennzahl; role 'tax' = the account balance
|
|
17
|
+
* IS the tax figure reported under the Kennzahl.
|
|
18
|
+
*/
|
|
19
|
+
export interface IUstvaMapping {
|
|
20
|
+
kennzahl: number;
|
|
21
|
+
role: 'base' | 'tax';
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface IChartAccount {
|
|
25
|
+
accountNumber: string;
|
|
26
|
+
accountName: string;
|
|
27
|
+
accountClass: number;
|
|
28
|
+
accountType: TAccountType;
|
|
29
|
+
description?: string;
|
|
30
|
+
automatikFunction?: TAutomatikFunction;
|
|
31
|
+
/** BU keys allowed on lines of this account ('' = none). Unset = all. */
|
|
32
|
+
allowedBuKeys?: string[];
|
|
33
|
+
ustva?: IUstvaMapping;
|
|
34
|
+
/** HGB §266 balance-sheet position path (A2 — not yet populated) */
|
|
35
|
+
hgb266Position?: string;
|
|
36
|
+
/** HGB §275 GuV position path (A2 — not yet populated) */
|
|
37
|
+
hgb275Position?: string;
|
|
38
|
+
/** E-Bilanz de-gaap-ci taxonomy position (A3 — not yet populated) */
|
|
39
|
+
ebilanzPosition?: string;
|
|
40
|
+
/** where this record's facts come from (source, date) */
|
|
41
|
+
provenance: string;
|
|
42
|
+
/** first year this record is valid for */
|
|
43
|
+
validFrom: number;
|
|
44
|
+
validTo?: number;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface IChart {
|
|
48
|
+
chart: TChartName;
|
|
49
|
+
year: number;
|
|
50
|
+
accounts: IChartAccount[];
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export type TMappingDimension = 'ustva' | 'hgb266' | 'hgb275' | 'ebilanz';
|
|
54
|
+
|
|
55
|
+
export interface IMappingCoverage {
|
|
56
|
+
dimension: TMappingDimension;
|
|
57
|
+
requested: number;
|
|
58
|
+
covered: number;
|
|
59
|
+
/** account numbers without a mapping — callers must fail loudly on gaps */
|
|
60
|
+
missing: string[];
|
|
61
|
+
/** requested accounts that do not exist in the chart at all */
|
|
62
|
+
unknown: string[];
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* UStVA Kennzahlen that derive from the TAX SCENARIO of a booking rather
|
|
67
|
+
* than from a single account (Bemessungsgrundlagen for igE and §13b are
|
|
68
|
+
* reported per scenario; the base can sit on any expense account).
|
|
69
|
+
*/
|
|
70
|
+
export interface IScenarioKennzahlen {
|
|
71
|
+
intraEuAcquisitionBaseStandard: number; // Kz 89 (igE 19 %)
|
|
72
|
+
intraEuAcquisitionBaseReduced: number; // Kz 93 (igE 7 %)
|
|
73
|
+
reverseChargeServicesEuBase: number; // Kz 46 (§13b sonstige Leistungen EU)
|
|
74
|
+
reverseChargeServicesEuTax: number; // Kz 47
|
|
75
|
+
reverseChargeOtherBase: number; // Kz 84 (andere Leistungen §13b)
|
|
76
|
+
reverseChargeOtherTax: number; // Kz 85
|
|
77
|
+
intraEuSupplyBase: number; // Kz 41 (steuerfreie igL)
|
|
78
|
+
exportBase: number; // Kz 43 (steuerfrei mit Vorsteuerabzug, u.a. Ausfuhr)
|
|
79
|
+
domesticStandardBase: number; // Kz 81 (19 %)
|
|
80
|
+
domesticReducedBase: number; // Kz 86 (7 %)
|
|
81
|
+
outboundReverseChargeBase: number; // Kz 60 (Umsätze §13b des Leistenden)
|
|
82
|
+
inputVat: number; // Kz 66 (Vorsteuer aus Rechnungen)
|
|
83
|
+
inputVatIntraEu: number; // Kz 61 (Vorsteuer aus igE)
|
|
84
|
+
inputVatReverseCharge: number; // Kz 67 (Vorsteuer §13b)
|
|
85
|
+
importVat: number; // Kz 62 (entrichtete EUSt)
|
|
86
|
+
}
|