8 Commits

Author SHA1 Message Date
jkunz c8411b0265 v1.1.0
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2026-05-14 12:41:33 +00:00
jkunz d79e013ebf feat(data-loading): load fee schedule catalogs and data from generated JSON payloads instead of bundled Germany TypeScript exports 2026-05-14 12:41:31 +00:00
jkunz 04248e0629 v1.0.4
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2026-05-14 10:08:14 +00:00
jkunz e6acb3e26b fix(repo): no code changes to release 2026-05-14 10:08:11 +00:00
jkunz 67f0a3ac4a v1.0.3
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2026-05-14 10:07:31 +00:00
jkunz 758a60ca57 fix(repository): no changes to commit 2026-05-14 10:07:29 +00:00
jkunz e560b1fdd4 v1.0.2
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2026-05-14 10:07:02 +00:00
jkunz 28396fc1f0 fix(repo): no changes to commit 2026-05-14 10:07:00 +00:00
35 changed files with 90635 additions and 90527 deletions
File diff suppressed because one or more lines are too long
+227
View File
@@ -0,0 +1,227 @@
{
"schemaVersion": 1,
"catalogs": [
{
"countryCode": "DE",
"countryName": "Germany",
"schedules": [
{
"id": "de-goae",
"countryCode": "DE",
"area": "Ärzte privat",
"abbreviation": "GOÄ",
"description": "Gebührenordnung für Ärzte; privatärztliche Leistungen außerhalb GKV."
},
{
"id": "de-goz",
"countryCode": "DE",
"area": "Zahnärzte privat",
"abbreviation": "GOZ",
"description": "Gebührenordnung für Zahnärzte; privat-/selbst zu zahlende zahnärztliche Leistungen."
},
{
"id": "de-gop",
"countryCode": "DE",
"area": "Psychotherapeuten privat",
"abbreviation": "GOP",
"description": "Gebührenordnung für Psychologische Psychotherapeuten und Kinder-/Jugendlichenpsychotherapeuten."
},
{
"id": "de-ebm",
"countryCode": "DE",
"area": "Ärzte GKV",
"abbreviation": "EBM",
"description": "Einheitlicher Bewertungsmaßstab; Abrechnung von Vertragsärzten und Vertragspsychotherapeuten mit der GKV."
},
{
"id": "de-bema",
"countryCode": "DE",
"area": "Zahnärzte GKV",
"abbreviation": "BEMA",
"description": "Bewertungsmaßstab zahnärztlicher Leistungen; GKV-Abrechnung in Zahnarztpraxen."
},
{
"id": "de-ag-drg-fpv",
"countryCode": "DE",
"area": "Krankenhäuser",
"abbreviation": "aG-DRG / FPV",
"description": "Fallpauschalen-Katalog und Abrechnungsbestimmungen für stationäre Krankenhausfälle."
},
{
"id": "de-uv-goae",
"countryCode": "DE",
"area": "Berufsgenossenschaft/Unfallversicherung",
"abbreviation": "UV-GOÄ",
"description": "Gebührenordnung für Ärzte im Bereich gesetzliche Unfallversicherung."
},
{
"id": "de-got",
"countryCode": "DE",
"area": "Tierärzte",
"abbreviation": "GOT",
"description": "Gebührenordnung für Tierärztinnen und Tierärzte."
},
{
"id": "de-stbvv",
"countryCode": "DE",
"area": "Steuerberater",
"abbreviation": "StBVV",
"description": "Steuerberatervergütungsverordnung; gesetzliche Vergütung für steuerberatende Vorbehaltsaufgaben."
},
{
"id": "de-rvg",
"countryCode": "DE",
"area": "Rechtsanwälte",
"abbreviation": "RVG",
"description": "Rechtsanwaltsvergütungsgesetz mit Vergütungsverzeichnis."
},
{
"id": "de-gnotkg",
"countryCode": "DE",
"area": "Notare / Grundbuch / Nachlass",
"abbreviation": "GNotKG",
"description": "Gerichts- und Notarkostengesetz; bundesweit einheitliche Notarkosten."
},
{
"id": "de-gkg",
"countryCode": "DE",
"area": "Gerichte allgemein",
"abbreviation": "GKG",
"description": "Gerichtskostengesetz mit Kostenverzeichnis und Gebührentabellen."
},
{
"id": "de-famgkg",
"countryCode": "DE",
"area": "Familiengericht",
"abbreviation": "FamGKG",
"description": "Gerichtskosten in Familiensachen."
},
{
"id": "de-gvkostg",
"countryCode": "DE",
"area": "Gerichtsvollzieher",
"abbreviation": "GvKostG",
"description": "Gerichtsvollzieherkostengesetz mit Kostenverzeichnis."
},
{
"id": "de-jveg",
"countryCode": "DE",
"area": "Sachverständige/Dolmetscher/Zeugen bei Gericht",
"abbreviation": "JVEG",
"description": "Justizvergütungs- und -entschädigungsgesetz."
},
{
"id": "de-insvv",
"countryCode": "DE",
"area": "Insolvenzverwalter",
"abbreviation": "InsVV",
"description": "Insolvenzrechtliche Vergütungsverordnung."
},
{
"id": "de-hoai",
"countryCode": "DE",
"area": "Architekten/Ingenieure",
"abbreviation": "HOAI",
"description": "Honorarordnung für Architekten und Ingenieure; heute vor allem Orientierungs-/Auffangsystem für erfasste Planungsleistungen."
},
{
"id": "de-heilmittel-gkv",
"countryCode": "DE",
"area": "Heilmittel, z. B. Physio/Logo/Ergo",
"abbreviation": "keine einzelne GO",
"description": "GKV-Vergütungsvereinbarungen/Preislisten nach Bundesrahmenverträgen."
},
{
"id": "de-hebammenhilfevertrag",
"countryCode": "DE",
"area": "Hebammen GKV",
"abbreviation": "Hebammenhilfevertrag",
"description": "Vertrag/Vergütungsvereinbarung nach § 134a SGB V."
},
{
"id": "de-ampreisv",
"countryCode": "DE",
"area": "Apotheken/Rx-Arzneimittel",
"abbreviation": "AMPreisV",
"description": "Arzneimittelpreisverordnung; Preisbildung für verschreibungspflichtige Arzneimittel."
},
{
"id": "de-gebueh",
"countryCode": "DE",
"area": "Heilpraktiker",
"abbreviation": "GebüH",
"description": "Gebührenverzeichnis für Heilpraktiker; keine amtliche verbindliche Gebührenordnung, eher Orientierung/übliche Vergütung."
}
]
}
],
"generationSources": {
"federal": [
{ "scheduleId": "de-goae", "fileName": "goae", "sourcePath": "go__1982", "rowMode": "code" },
{ "scheduleId": "de-goz", "fileName": "goz", "sourcePath": "goz_1987", "rowMode": "code" },
{ "scheduleId": "de-gop", "fileName": "gop", "sourcePath": "gop", "rowMode": "none" },
{ "scheduleId": "de-got", "fileName": "got", "sourcePath": "got_2022", "rowMode": "code" },
{ "scheduleId": "de-stbvv", "fileName": "stbvv", "sourcePath": "stbgebv", "rowMode": "table" },
{ "scheduleId": "de-rvg", "fileName": "rvg", "sourcePath": "rvg", "rowMode": "code" },
{ "scheduleId": "de-gnotkg", "fileName": "gnotkg", "sourcePath": "gnotkg", "rowMode": "code" },
{ "scheduleId": "de-gkg", "fileName": "gkg", "sourcePath": "gkg_2004", "rowMode": "code" },
{ "scheduleId": "de-famgkg", "fileName": "famgkg", "sourcePath": "famgkg", "rowMode": "code" },
{ "scheduleId": "de-gvkostg", "fileName": "gvkostg", "sourcePath": "gvkostg", "rowMode": "code" },
{ "scheduleId": "de-jveg", "fileName": "jveg", "sourcePath": "jveg", "rowMode": "code" },
{ "scheduleId": "de-insvv", "fileName": "insvv", "sourcePath": "insvv", "rowMode": "none" },
{ "scheduleId": "de-hoai", "fileName": "hoai", "sourcePath": "hoai_2013", "rowMode": "table" },
{ "scheduleId": "de-ampreisv", "fileName": "ampreisv", "sourcePath": "ampreisv", "rowMode": "none" }
],
"external": [
{
"scheduleId": "de-ebm",
"fileName": "ebm",
"sourceName": "Kassenärztliche Bundesvereinigung EBM",
"sourceUrl": "https://www.kbv.de/html/ebm.php",
"note": "External self-administration source; not part of gesetze-im-internet federal XML corpus."
},
{
"scheduleId": "de-bema",
"fileName": "bema",
"sourceName": "Kassenzahnärztliche Bundesvereinigung BEMA",
"sourceUrl": "https://www.kzbv.de/bema",
"note": "External dental self-administration source; not part of gesetze-im-internet federal XML corpus."
},
{
"scheduleId": "de-ag-drg-fpv",
"fileName": "agdrgfpv",
"sourceName": "InEK aG-DRG Fallpauschalen-Katalog / FPV",
"sourceUrl": "https://www.g-drg.de",
"note": "Year-specific InEK catalog source; not part of gesetze-im-internet federal XML corpus."
},
{
"scheduleId": "de-uv-goae",
"fileName": "uvgoae",
"sourceName": "Deutsche Gesetzliche Unfallversicherung UV-GOÄ",
"sourceUrl": "https://www.dguv.de",
"note": "External accident insurance fee schedule source; not part of gesetze-im-internet federal XML corpus."
},
{
"scheduleId": "de-heilmittel-gkv",
"fileName": "heilmittelgkv",
"sourceName": "GKV-Spitzenverband Heilmittel contracts and price lists",
"sourceUrl": "https://www.gkv-spitzenverband.de/krankenversicherung/ambulante_leistungen/heilmittel/heilmittel.jsp",
"note": "External contract and price list source by remedy area; not part of gesetze-im-internet federal XML corpus."
},
{
"scheduleId": "de-hebammenhilfevertrag",
"fileName": "hebammenhilfevertrag",
"sourceName": "GKV-Spitzenverband Hebammenhilfevertrag",
"sourceUrl": "https://www.gkv-spitzenverband.de/krankenversicherung/ambulante_leistungen/hebammen_geburtshaeuser/hebammenhilfevertrag/hebammenhilfevertrag.jsp",
"note": "External contract and remuneration agreement source; not part of gesetze-im-internet federal XML corpus."
},
{
"scheduleId": "de-gebueh",
"fileName": "gebueh",
"sourceName": "Gebührenverzeichnis für Heilpraktiker",
"sourceUrl": "https://www.gebueh.de",
"note": "Non-official customary fee directory; not part of gesetze-im-internet federal XML corpus."
}
]
}
}
+32
View File
@@ -4,6 +4,38 @@
## 2026-05-14 - 1.1.0
### Features
- load fee schedule catalogs and data from generated JSON payloads instead of bundled Germany TypeScript exports (data-loading)
- adds runtime payload loading with remote, browser-local, and node-local fallbacks
- replaces hardcoded Germany catalog exports with generic payload-based catalogs and supported country codes
- moves generation output to git-only .onlygit JSON files and removes generated ts/germany data modules
- updates package contents, exports, tests, and README to reflect the new payload-based API
## 2026-05-14 - 1.0.4
### Fixes
- no code changes to release (repo)
## 2026-05-14 - 1.0.3
### Fixes
- no changes to commit (repository)
## 2026-05-14 - 1.0.2
### Fixes
- no changes to commit (repo)
## 2026-05-14 - 1.0.1 ## 2026-05-14 - 1.0.1
### Fixes ### Fixes
+1 -2
View File
@@ -1,6 +1,6 @@
{ {
"name": "@fin.cx/fee-schedules", "name": "@fin.cx/fee-schedules",
"version": "1.0.1", "version": "1.1.0",
"private": false, "private": false,
"description": "Typed fee schedule catalogs by country, starting with German statutory and professional fee schedules.", "description": "Typed fee schedule catalogs by country, starting with German statutory and professional fee schedules.",
"main": "dist_ts/index.js", "main": "dist_ts/index.js",
@@ -34,7 +34,6 @@
"homepage": "https://code.foss.global/fin.cx/fee-schedules#readme", "homepage": "https://code.foss.global/fin.cx/fee-schedules#readme",
"files": [ "files": [
"ts/**/*", "ts/**/*",
"scripts/**/*",
"dist/**/*", "dist/**/*",
"dist_*/**/*", "dist_*/**/*",
"dist_ts/**/*", "dist_ts/**/*",
+29 -20
View File
@@ -17,9 +17,10 @@ pnpm add @fin.cx/fee-schedules
## Quick Start ## Quick Start
```ts ```ts
import { FeeSchedules, GERMANY_FEE_SCHEDULES, feeSchedules } from '@fin.cx/fee-schedules'; import { FEE_SCHEDULE_CATALOGS, FeeSchedules, feeSchedules } from '@fin.cx/fee-schedules';
const schedules = new FeeSchedules(); const schedules = new FeeSchedules();
const germanyCatalog = FEE_SCHEDULE_CATALOGS.find((catalog) => catalog.countryCode === 'DE');
const germany = schedules.getByCountry('DE'); const germany = schedules.getByCountry('DE');
const goae = schedules.findByAbbreviation('GOÄ'); const goae = schedules.findByAbbreviation('GOÄ');
@@ -27,7 +28,7 @@ const goaeNumber1 = schedules.getFeeRow('de-goae', '1');
const legalFeeRows = schedules.searchFeeRows('Einigungsgebühr', 'de-rvg'); const legalFeeRows = schedules.searchFeeRows('Einigungsgebühr', 'de-rvg');
const courtFees = feeSchedules.getById('de-gkg'); const courtFees = feeSchedules.getById('de-gkg');
console.log(GERMANY_FEE_SCHEDULES.length); // 21 console.log(germanyCatalog?.schedules.length); // 21
console.log(goae?.description); // Gebührenordnung für Ärzte; privatärztliche Leistungen außerhalb GKV. console.log(goae?.description); // Gebührenordnung für Ärzte; privatärztliche Leistungen außerhalb GKV.
console.log(goaeNumber1?.cells); // ['1', 'Beratung - auch mittels Fernsprecher -', '80', '9,12'] console.log(goaeNumber1?.cells); // ['1', 'Beratung - auch mittels Fernsprecher -', '80', '9,12']
console.log(legalFeeRows.map((item) => item.code)); console.log(legalFeeRows.map((item) => item.code));
@@ -50,11 +51,12 @@ console.log(germany.map((item) => item.id));
| Export | Description | | Export | Description |
| --- | --- | | --- | --- |
| `GERMANY_FEE_SCHEDULES` | Flat list of German fee schedule records. | | `FEE_SCHEDULE_DATA_URL` | Raw `code.foss.global` URL used for startup data loading. |
| `GERMANY_FEE_SCHEDULE_DATA` | Imported German fee data, rule sections, source metadata, and import status. | | `feeSchedulePayload` | Full remotely loaded payload. |
| `GERMANY_GOAE_FEE_SCHEDULE_DATA` | GOÄ fee data generated into `ts/germany/goae.ts`. Other German schedules follow the same one-file-per-schedule pattern. | | `FEE_SCHEDULE_CATALOGS` | All available country catalogs from the remotely loaded payload. |
| `GERMANY_FEE_SCHEDULE_CATALOG` | Germany catalog metadata plus all German schedules. | | `FEE_SCHEDULE_DATA` | Imported fee data, rule sections, source metadata, and import status from the remotely loaded payload. |
| `FEE_SCHEDULE_CATALOGS` | All available country catalogs. Currently contains Germany. | | `SUPPORTED_COUNTRY_CODES` | Country codes derived from `FEE_SCHEDULE_CATALOGS`. |
| `loadFeeSchedulePayload(url?)` | Loads and validates a fee schedule payload from a URL. |
| `FeeSchedules` | Lookup/search class. Can be constructed with the default catalog/data lists or custom lists. | | `FeeSchedules` | Lookup/search class. Can be constructed with the default catalog/data lists or custom lists. |
| `feeSchedules` | Default singleton instance of `FeeSchedules`. | | `feeSchedules` | Default singleton instance of `FeeSchedules`. |
@@ -69,7 +71,7 @@ console.log(germany.map((item) => item.id));
| `getFeeRows(scheduleId)` | Returns all imported fee rows for a schedule. | | `getFeeRows(scheduleId)` | Returns all imported fee rows for a schedule. |
| `getFeeRow(scheduleId, code)` | Returns the first imported coded fee row matching a schedule and code. | | `getFeeRow(scheduleId, code)` | Returns the first imported coded fee row matching a schedule and code. |
| `getRuleSections(scheduleId)` | Returns imported rule sections for a schedule. | | `getRuleSections(scheduleId)` | Returns imported rule sections for a schedule. |
| `findByAbbreviation(abbreviation, countryCode?)` | Returns the first schedule matching an abbreviation. Abbreviation lookup normalizes whitespace and casing using German locale rules. | | `findByAbbreviation(abbreviation, countryCode?)` | Returns the first schedule matching an abbreviation. Abbreviation lookup normalizes whitespace and casing. |
| `search(query, countryCode?)` | Searches `id`, `area`, `abbreviation`, and `description`. Returns an empty array for empty queries. | | `search(query, countryCode?)` | Searches `id`, `area`, `abbreviation`, and `description`. Returns an empty array for empty queries. |
| `searchFeeRows(query, scheduleId?)` | Searches imported fee rows and original source cells. | | `searchFeeRows(query, scheduleId?)` | Searches imported fee rows and original source cells. |
| `searchRuleSections(query, scheduleId?)` | Searches imported rule sections. | | `searchRuleSections(query, scheduleId?)` | Searches imported rule sections. |
@@ -77,7 +79,7 @@ console.log(germany.map((item) => item.id));
### Data Shape ### Data Shape
```ts ```ts
export type TFeeScheduleCountryCode = 'DE'; export type TFeeScheduleCountryCode = string;
export interface IFeeSchedule { export interface IFeeSchedule {
id: string; id: string;
@@ -102,6 +104,13 @@ export interface IFeeScheduleData {
ruleSections: IFeeScheduleRuleSection[]; ruleSections: IFeeScheduleRuleSection[];
notes: string[]; notes: string[];
} }
export interface IFeeSchedulePayload {
schemaVersion: number;
generatedAt?: string;
catalogs: ICountryFeeScheduleCatalog[];
scheduleData: IFeeScheduleData[];
}
``` ```
Fee rows preserve the original source cells in order. Where the row is code-based, `code`, `description`, `points`, and `amountEur` are populated when those values can be read directly from the source table. Fee rows preserve the original source cells in order. Where the row is code-based, `code`, `description`, `points`, and `amountEur` are populated when those values can be read directly from the source table.
@@ -121,26 +130,26 @@ Some German fee schedules are not federal XML laws on `gesetze-im-internet.de`.
## Generated Files ## Generated Files
German fee data is generated by: The npm package does not ship the catalog or fee data payload. Supported countries, schedule metadata, generation source config, fee rows, and rule sections live under `.onlygit/` in git.
Runtime startup loads the generated payload from:
```text
https://code.foss.global/fin.cx/fee-schedules/raw/branch/main/.onlygit/fee-schedules.json
```
Maintainers regenerate the git-only JSON payload with:
```bash ```bash
pnpm run generate:germany pnpm run generate:germany
``` ```
The generator lives in `scripts/generate-germany.mjs`. It downloads the official XML ZIP files into `.nogit/fee-schedules-sources/`, extracts them, parses fee table rows and rule sections, and writes generated TypeScript files into `ts/germany/`. The generator lives in `scripts/generate-germany.mjs`. It reads `.onlygit/fee-schedules.sources.json`, downloads the official XML ZIP files into `.nogit/fee-schedules-sources/`, extracts them, parses fee table rows and rule sections, and writes:
The generated layout is one file per German fee structure:
```text ```text
ts/germany/goae.ts .onlygit/fee-schedules.json
ts/germany/goz.ts
ts/germany/rvg.ts
ts/germany/gnotkg.ts
ts/germany/index.ts
``` ```
The filename uses ASCII transliteration, so `GOÄ` is generated as `goae.ts`. Each generated file exports one `IFeeScheduleData` object, and `ts/germany/index.ts` re-exports the individual objects plus the combined `GERMANY_FEE_SCHEDULE_DATA` array.
## Germany Catalog ## Germany Catalog
The initial catalog covers 21 German fee schedule systems. The initial catalog covers 21 German fee schedule systems.
+20 -129
View File
@@ -5,89 +5,17 @@ import { fileURLToPath } from 'node:url';
const packageRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); const packageRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
const sourceRoot = path.join(packageRoot, '.nogit', 'fee-schedules-sources'); const sourceRoot = path.join(packageRoot, '.nogit', 'fee-schedules-sources');
const outDir = path.join(packageRoot, 'ts', 'germany'); const onlyGitDir = path.join(packageRoot, '.onlygit');
const manifestPath = path.join(onlyGitDir, 'fee-schedules.sources.json');
const outPath = path.join(onlyGitDir, 'fee-schedules.json');
const generatedAt = new Date().toISOString().slice(0, 10); const generatedAt = new Date().toISOString().slice(0, 10);
const federalSources = [ const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8'));
{ scheduleId: 'de-goae', fileName: 'goae', exportName: 'GERMANY_GOAE_FEE_SCHEDULE_DATA', sourcePath: 'go__1982', rowMode: 'code' }, const federalSources = manifest.generationSources.federal;
{ scheduleId: 'de-goz', fileName: 'goz', exportName: 'GERMANY_GOZ_FEE_SCHEDULE_DATA', sourcePath: 'goz_1987', rowMode: 'code' }, const externalSources = manifest.generationSources.external;
{ scheduleId: 'de-gop', fileName: 'gop', exportName: 'GERMANY_GOP_FEE_SCHEDULE_DATA', sourcePath: 'gop', rowMode: 'none' },
{ scheduleId: 'de-got', fileName: 'got', exportName: 'GERMANY_GOT_FEE_SCHEDULE_DATA', sourcePath: 'got_2022', rowMode: 'code' },
{ scheduleId: 'de-stbvv', fileName: 'stbvv', exportName: 'GERMANY_STBVV_FEE_SCHEDULE_DATA', sourcePath: 'stbgebv', rowMode: 'table' },
{ scheduleId: 'de-rvg', fileName: 'rvg', exportName: 'GERMANY_RVG_FEE_SCHEDULE_DATA', sourcePath: 'rvg', rowMode: 'code' },
{ scheduleId: 'de-gnotkg', fileName: 'gnotkg', exportName: 'GERMANY_GNOTKG_FEE_SCHEDULE_DATA', sourcePath: 'gnotkg', rowMode: 'code' },
{ scheduleId: 'de-gkg', fileName: 'gkg', exportName: 'GERMANY_GKG_FEE_SCHEDULE_DATA', sourcePath: 'gkg_2004', rowMode: 'code' },
{ scheduleId: 'de-famgkg', fileName: 'famgkg', exportName: 'GERMANY_FAMGKG_FEE_SCHEDULE_DATA', sourcePath: 'famgkg', rowMode: 'code' },
{ scheduleId: 'de-gvkostg', fileName: 'gvkostg', exportName: 'GERMANY_GVKOSTG_FEE_SCHEDULE_DATA', sourcePath: 'gvkostg', rowMode: 'code' },
{ scheduleId: 'de-jveg', fileName: 'jveg', exportName: 'GERMANY_JVEG_FEE_SCHEDULE_DATA', sourcePath: 'jveg', rowMode: 'code' },
{ scheduleId: 'de-insvv', fileName: 'insvv', exportName: 'GERMANY_INSVV_FEE_SCHEDULE_DATA', sourcePath: 'insvv', rowMode: 'none' },
{ scheduleId: 'de-hoai', fileName: 'hoai', exportName: 'GERMANY_HOAI_FEE_SCHEDULE_DATA', sourcePath: 'hoai_2013', rowMode: 'table' },
{ scheduleId: 'de-ampreisv', fileName: 'ampreisv', exportName: 'GERMANY_AMPREISV_FEE_SCHEDULE_DATA', sourcePath: 'ampreisv', rowMode: 'none' },
];
const externalSources = [
{
scheduleId: 'de-ebm',
fileName: 'ebm',
exportName: 'GERMANY_EBM_FEE_SCHEDULE_DATA',
sourceName: 'Kassenärztliche Bundesvereinigung EBM',
sourceUrl: 'https://www.kbv.de/html/ebm.php',
note: 'External self-administration source; not part of gesetze-im-internet federal XML corpus.',
},
{
scheduleId: 'de-bema',
fileName: 'bema',
exportName: 'GERMANY_BEMA_FEE_SCHEDULE_DATA',
sourceName: 'Kassenzahnärztliche Bundesvereinigung BEMA',
sourceUrl: 'https://www.kzbv.de/bema',
note: 'External dental self-administration source; not part of gesetze-im-internet federal XML corpus.',
},
{
scheduleId: 'de-ag-drg-fpv',
fileName: 'agdrgfpv',
exportName: 'GERMANY_AGDRGFPV_FEE_SCHEDULE_DATA',
sourceName: 'InEK aG-DRG Fallpauschalen-Katalog / FPV',
sourceUrl: 'https://www.g-drg.de',
note: 'Year-specific InEK catalog source; not part of gesetze-im-internet federal XML corpus.',
},
{
scheduleId: 'de-uv-goae',
fileName: 'uvgoae',
exportName: 'GERMANY_UVGOAE_FEE_SCHEDULE_DATA',
sourceName: 'Deutsche Gesetzliche Unfallversicherung UV-GOÄ',
sourceUrl: 'https://www.dguv.de',
note: 'External accident insurance fee schedule source; not part of gesetze-im-internet federal XML corpus.',
},
{
scheduleId: 'de-heilmittel-gkv',
fileName: 'heilmittelgkv',
exportName: 'GERMANY_HEILMITTELGKV_FEE_SCHEDULE_DATA',
sourceName: 'GKV-Spitzenverband Heilmittel contracts and price lists',
sourceUrl: 'https://www.gkv-spitzenverband.de/krankenversicherung/ambulante_leistungen/heilmittel/heilmittel.jsp',
note: 'External contract and price list source by remedy area; not part of gesetze-im-internet federal XML corpus.',
},
{
scheduleId: 'de-hebammenhilfevertrag',
fileName: 'hebammenhilfevertrag',
exportName: 'GERMANY_HEBAMMENHILFEVERTRAG_FEE_SCHEDULE_DATA',
sourceName: 'GKV-Spitzenverband Hebammenhilfevertrag',
sourceUrl: 'https://www.gkv-spitzenverband.de/krankenversicherung/ambulante_leistungen/hebammen_geburtshaeuser/hebammenhilfevertrag/hebammenhilfevertrag.jsp',
note: 'External contract and remuneration agreement source; not part of gesetze-im-internet federal XML corpus.',
},
{
scheduleId: 'de-gebueh',
fileName: 'gebueh',
exportName: 'GERMANY_GEBUEH_FEE_SCHEDULE_DATA',
sourceName: 'Gebührenverzeichnis für Heilpraktiker',
sourceUrl: 'https://www.gebueh.de',
note: 'Non-official customary fee directory; not part of gesetze-im-internet federal XML corpus.',
},
];
const allSources = [...federalSources, ...externalSources];
fs.mkdirSync(sourceRoot, { recursive: true }); fs.mkdirSync(sourceRoot, { recursive: true });
fs.mkdirSync(outDir, { recursive: true }); fs.mkdirSync(onlyGitDir, { recursive: true });
const decodeEntities = (input) => input const decodeEntities = (input) => input
.replace(/ | /g, ' ') .replace(/ | /g, ' ')
@@ -140,20 +68,6 @@ const getRowType = (cells, mode) => {
return undefined; return undefined;
}; };
const writeGeneratedTsFile = (fileName, exportName, data) => {
const filePath = path.join(outDir, `${fileName}.ts`);
const body = [
`// Generated by scripts/generate-germany.mjs on ${generatedAt}.`,
'// Do not edit this file manually.',
"import type { IFeeScheduleData } from '../feeschedules.types.js';",
'',
`export const ${exportName}: IFeeScheduleData = ${JSON.stringify(data, null, 2)};`,
'',
].join('\n');
fs.writeFileSync(filePath, body);
};
const downloadFederalXml = async (source) => { const downloadFederalXml = async (source) => {
const zipUrl = `https://www.gesetze-im-internet.de/${source.sourcePath}/xml.zip`; const zipUrl = `https://www.gesetze-im-internet.de/${source.sourcePath}/xml.zip`;
const zipPath = path.join(sourceRoot, `${source.sourcePath}.zip`); const zipPath = path.join(sourceRoot, `${source.sourcePath}.zip`);
@@ -303,49 +217,26 @@ const getExternalSourceData = (source) => ({
notes: [source.note], notes: [source.note],
}); });
for (const source of allSources) { const scheduleData = [];
const filePath = path.join(outDir, `${source.fileName}.ts`);
if (fs.existsSync(filePath)) {
fs.rmSync(filePath);
}
}
const generatedData = [];
for (const source of federalSources) { for (const source of federalSources) {
const data = await parseFederalSource(source); const data = await parseFederalSource(source);
writeGeneratedTsFile(source.fileName, source.exportName, data); scheduleData.push(data);
generatedData.push({ ...source, data }); console.log(`${source.fileName}: ${data.dataStatus}, rows=${data.feeRows.length}, sections=${data.ruleSections.length}`);
console.log(`${source.fileName}.ts: ${data.dataStatus}, rows=${data.feeRows.length}, sections=${data.ruleSections.length}`);
} }
for (const source of externalSources) { for (const source of externalSources) {
const data = getExternalSourceData(source); const data = getExternalSourceData(source);
writeGeneratedTsFile(source.fileName, source.exportName, data); scheduleData.push(data);
generatedData.push({ ...source, data }); console.log(`${source.fileName}: ${data.dataStatus}, rows=0, sections=0`);
console.log(`${source.fileName}.ts: ${data.dataStatus}, rows=0, sections=0`);
} }
const indexImports = generatedData const payload = {
.map((source) => `import { ${source.exportName} } from './${source.fileName}.js';`) schemaVersion: 1,
.join('\n'); generatedAt,
catalogs: manifest.catalogs,
scheduleData,
};
const indexExports = generatedData fs.writeFileSync(outPath, `${JSON.stringify(payload, null, 2)}\n`);
.map((source) => `export { ${source.exportName} } from './${source.fileName}.js';`) console.log(`wrote ${path.relative(packageRoot, outPath)}`);
.join('\n');
const indexBody = [
`// Generated by scripts/generate-germany.mjs on ${generatedAt}.`,
'// Do not edit this file manually.',
"import type { IFeeScheduleData } from '../feeschedules.types.js';",
indexImports,
'',
indexExports,
'',
'export const GERMANY_FEE_SCHEDULE_DATA: IFeeScheduleData[] = [',
...generatedData.map((source) => ` ${source.exportName},`),
'];',
'',
].join('\n');
fs.writeFileSync(path.join(outDir, 'index.ts'), indexBody);
@@ -1,21 +1,31 @@
import { expect, tap } from '@git.zone/tstest/tapbundle'; import { expect, tap } from '@git.zone/tstest/tapbundle';
import * as feeSchedules from '../ts/index.js'; import * as feeSchedules from '../ts/index.js';
const getGermanyCatalog = () => {
const catalog = feeSchedules.FEE_SCHEDULE_CATALOGS.find((item) => item.countryCode === 'DE');
if (!catalog) {
throw new Error('Expected Germany catalog in generated fee schedule payload.');
}
return catalog;
};
tap.test('exports Germany fee schedules and API helpers', async () => { tap.test('exports Germany fee schedules and API helpers', async () => {
expect(feeSchedules.GERMANY_FEE_SCHEDULES).toBeArray(); expect(feeSchedules.FEE_SCHEDULE_CATALOGS).toBeArray();
expect(feeSchedules.GERMANY_FEE_SCHEDULE_DATA).toBeArray(); expect(feeSchedules.FEE_SCHEDULE_DATA).toBeArray();
expect(feeSchedules.GERMANY_GOAE_FEE_SCHEDULE_DATA.scheduleId).toEqual('de-goae'); expect(feeSchedules.SUPPORTED_COUNTRY_CODES).toContain('DE');
expect(feeSchedules.GERMANY_FEE_SCHEDULE_CATALOG.countryCode).toEqual('DE');
expect(feeSchedules.FEE_SCHEDULE_CATALOGS).toHaveLength(1); expect(feeSchedules.FEE_SCHEDULE_CATALOGS).toHaveLength(1);
expect(feeSchedules.FeeSchedules).toBeTypeOf('function'); expect(feeSchedules.FeeSchedules).toBeTypeOf('function');
expect(feeSchedules.feeSchedules).toBeInstanceOf(feeSchedules.FeeSchedules); expect(feeSchedules.feeSchedules).toBeInstanceOf(feeSchedules.FeeSchedules);
}); });
tap.test('contains the initial German schedule catalog', async () => { tap.test('contains the initial German schedule catalog', async () => {
expect(feeSchedules.GERMANY_FEE_SCHEDULES).toHaveLength(21); const germanyCatalog = getGermanyCatalog();
expect(feeSchedules.GERMANY_FEE_SCHEDULE_DATA).toHaveLength(21);
for (const schedule of feeSchedules.GERMANY_FEE_SCHEDULES) { expect(germanyCatalog.schedules).toHaveLength(21);
expect(feeSchedules.FEE_SCHEDULE_DATA).toHaveLength(21);
for (const schedule of germanyCatalog.schedules) {
expect(schedule.id).toBeTypeofString(); expect(schedule.id).toBeTypeofString();
expect(schedule.countryCode).toEqual('DE'); expect(schedule.countryCode).toEqual('DE');
expect(schedule.area).toBeTypeofString(); expect(schedule.area).toBeTypeofString();
+1 -1
View File
@@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@fin.cx/fee-schedules', name: '@fin.cx/fee-schedules',
version: '1.0.1', version: '1.1.0',
description: 'Typed fee schedule catalogs by country, starting with German statutory and professional fee schedules.' description: 'Typed fee schedule catalogs by country, starting with German statutory and professional fee schedules.'
} }
+3 -8
View File
@@ -5,12 +5,7 @@ import type {
IFeeScheduleFeeRow, IFeeScheduleFeeRow,
IFeeScheduleRuleSection, IFeeScheduleRuleSection,
} from './feeschedules.types.js'; } from './feeschedules.types.js';
import { GERMANY_FEE_SCHEDULE_CATALOG } from './feeschedules.germany.js'; import { FEE_SCHEDULE_CATALOGS, FEE_SCHEDULE_DATA } from './feeschedules.data.js';
import { GERMANY_FEE_SCHEDULE_DATA } from './germany/index.js';
export const FEE_SCHEDULE_CATALOGS: ICountryFeeScheduleCatalog[] = [
GERMANY_FEE_SCHEDULE_CATALOG,
];
export class FeeSchedules { export class FeeSchedules {
private catalogs: ICountryFeeScheduleCatalog[]; private catalogs: ICountryFeeScheduleCatalog[];
@@ -18,7 +13,7 @@ export class FeeSchedules {
constructor( constructor(
catalogs: ICountryFeeScheduleCatalog[] = FEE_SCHEDULE_CATALOGS, catalogs: ICountryFeeScheduleCatalog[] = FEE_SCHEDULE_CATALOGS,
data: IFeeScheduleData[] = GERMANY_FEE_SCHEDULE_DATA, data: IFeeScheduleData[] = FEE_SCHEDULE_DATA,
) { ) {
this.catalogs = catalogs; this.catalogs = catalogs;
this.data = data; this.data = data;
@@ -131,5 +126,5 @@ export class FeeSchedules {
export const feeSchedules = new FeeSchedules(); export const feeSchedules = new FeeSchedules();
const normalizeSearchValue = (value: string): string => { const normalizeSearchValue = (value: string): string => {
return value.trim().toLocaleLowerCase('de-DE').replace(/\s+/g, ' '); return value.trim().toLocaleLowerCase().replace(/\s+/g, ' ');
}; };
+93
View File
@@ -0,0 +1,93 @@
import type { IFeeSchedulePayload } from './feeschedules.types.js';
export const FEE_SCHEDULE_DATA_URL = 'https://code.foss.global/fin.cx/fee-schedules/raw/branch/main/.onlygit/fee-schedules.json';
export async function loadFeeSchedulePayload(url = FEE_SCHEDULE_DATA_URL): Promise<IFeeSchedulePayload> {
let remoteError: unknown;
try {
return await fetchPayload(url);
} catch (error) {
remoteError = error;
}
const browserLocalPayload = await loadBrowserLocalPayload();
if (browserLocalPayload) {
return browserLocalPayload;
}
const nodeLocalPayload = await loadNodeLocalPayload();
if (nodeLocalPayload) {
return nodeLocalPayload;
}
throw new Error(`Failed to load fee schedule data from ${url}: ${formatError(remoteError)}`);
}
const fetchPayload = async (url: string): Promise<IFeeSchedulePayload> => {
const response = await fetch(url);
if (!response.ok) {
throw new Error(`${response.status} ${response.statusText}`);
}
return parsePayload(await response.json());
};
const loadBrowserLocalPayload = async (): Promise<IFeeSchedulePayload | undefined> => {
if (typeof location === 'undefined') {
return undefined;
}
try {
return await fetchPayload('/.onlygit/fee-schedules.json');
} catch {
return undefined;
}
};
const loadNodeLocalPayload = async (): Promise<IFeeSchedulePayload | undefined> => {
if (!isNodeRuntime()) {
return undefined;
}
try {
const dynamicImport = new Function('specifier', 'return import(specifier)') as (specifier: string) => Promise<any>;
const [{ readFile }, { fileURLToPath }, path] = await Promise.all([
dynamicImport('node:fs/promises'),
dynamicImport('node:url'),
dynamicImport('node:path'),
]);
const currentDir = path.dirname(fileURLToPath(import.meta.url));
const filePath = path.resolve(currentDir, '../.onlygit/fee-schedules.json');
const fileContent = await readFile(filePath, 'utf8');
return parsePayload(JSON.parse(fileContent));
} catch {
return undefined;
}
};
const parsePayload = (payload: unknown): IFeeSchedulePayload => {
if (!payload || typeof payload !== 'object') {
throw new Error('Fee schedule payload is not an object.');
}
const typedPayload = payload as IFeeSchedulePayload;
if (!Array.isArray(typedPayload.catalogs) || !Array.isArray(typedPayload.scheduleData)) {
throw new Error('Fee schedule payload is missing catalogs or scheduleData arrays.');
}
return typedPayload;
};
const isNodeRuntime = (): boolean => {
return typeof process !== 'undefined' && Boolean(process.versions?.node);
};
const formatError = (error: unknown): string => {
return error instanceof Error ? error.message : String(error);
};
export const feeSchedulePayload = await loadFeeSchedulePayload();
export const FEE_SCHEDULE_CATALOGS = feeSchedulePayload.catalogs;
export const FEE_SCHEDULE_DATA = feeSchedulePayload.scheduleData;
export const SUPPORTED_COUNTRY_CODES = FEE_SCHEDULE_CATALOGS.map((catalog) => catalog.countryCode);
-157
View File
@@ -1,157 +0,0 @@
import type { ICountryFeeScheduleCatalog, IFeeSchedule } from './feeschedules.types.js';
export const GERMANY_FEE_SCHEDULES: IFeeSchedule[] = [
{
id: 'de-goae',
countryCode: 'DE',
area: 'Ärzte privat',
abbreviation: 'GOÄ',
description: 'Gebührenordnung für Ärzte; privatärztliche Leistungen außerhalb GKV.',
},
{
id: 'de-goz',
countryCode: 'DE',
area: 'Zahnärzte privat',
abbreviation: 'GOZ',
description: 'Gebührenordnung für Zahnärzte; privat-/selbst zu zahlende zahnärztliche Leistungen.',
},
{
id: 'de-gop',
countryCode: 'DE',
area: 'Psychotherapeuten privat',
abbreviation: 'GOP',
description: 'Gebührenordnung für Psychologische Psychotherapeuten und Kinder-/Jugendlichenpsychotherapeuten.',
},
{
id: 'de-ebm',
countryCode: 'DE',
area: 'Ärzte GKV',
abbreviation: 'EBM',
description: 'Einheitlicher Bewertungsmaßstab; Abrechnung von Vertragsärzten und Vertragspsychotherapeuten mit der GKV.',
},
{
id: 'de-bema',
countryCode: 'DE',
area: 'Zahnärzte GKV',
abbreviation: 'BEMA',
description: 'Bewertungsmaßstab zahnärztlicher Leistungen; GKV-Abrechnung in Zahnarztpraxen.',
},
{
id: 'de-ag-drg-fpv',
countryCode: 'DE',
area: 'Krankenhäuser',
abbreviation: 'aG-DRG / FPV',
description: 'Fallpauschalen-Katalog und Abrechnungsbestimmungen für stationäre Krankenhausfälle.',
},
{
id: 'de-uv-goae',
countryCode: 'DE',
area: 'Berufsgenossenschaft/Unfallversicherung',
abbreviation: 'UV-GOÄ',
description: 'Gebührenordnung für Ärzte im Bereich gesetzliche Unfallversicherung.',
},
{
id: 'de-got',
countryCode: 'DE',
area: 'Tierärzte',
abbreviation: 'GOT',
description: 'Gebührenordnung für Tierärztinnen und Tierärzte.',
},
{
id: 'de-stbvv',
countryCode: 'DE',
area: 'Steuerberater',
abbreviation: 'StBVV',
description: 'Steuerberatervergütungsverordnung; gesetzliche Vergütung für steuerberatende Vorbehaltsaufgaben.',
},
{
id: 'de-rvg',
countryCode: 'DE',
area: 'Rechtsanwälte',
abbreviation: 'RVG',
description: 'Rechtsanwaltsvergütungsgesetz mit Vergütungsverzeichnis.',
},
{
id: 'de-gnotkg',
countryCode: 'DE',
area: 'Notare / Grundbuch / Nachlass',
abbreviation: 'GNotKG',
description: 'Gerichts- und Notarkostengesetz; bundesweit einheitliche Notarkosten.',
},
{
id: 'de-gkg',
countryCode: 'DE',
area: 'Gerichte allgemein',
abbreviation: 'GKG',
description: 'Gerichtskostengesetz mit Kostenverzeichnis und Gebührentabellen.',
},
{
id: 'de-famgkg',
countryCode: 'DE',
area: 'Familiengericht',
abbreviation: 'FamGKG',
description: 'Gerichtskosten in Familiensachen.',
},
{
id: 'de-gvkostg',
countryCode: 'DE',
area: 'Gerichtsvollzieher',
abbreviation: 'GvKostG',
description: 'Gerichtsvollzieherkostengesetz mit Kostenverzeichnis.',
},
{
id: 'de-jveg',
countryCode: 'DE',
area: 'Sachverständige/Dolmetscher/Zeugen bei Gericht',
abbreviation: 'JVEG',
description: 'Justizvergütungs- und -entschädigungsgesetz.',
},
{
id: 'de-insvv',
countryCode: 'DE',
area: 'Insolvenzverwalter',
abbreviation: 'InsVV',
description: 'Insolvenzrechtliche Vergütungsverordnung.',
},
{
id: 'de-hoai',
countryCode: 'DE',
area: 'Architekten/Ingenieure',
abbreviation: 'HOAI',
description: 'Honorarordnung für Architekten und Ingenieure; heute vor allem Orientierungs-/Auffangsystem für erfasste Planungsleistungen.',
},
{
id: 'de-heilmittel-gkv',
countryCode: 'DE',
area: 'Heilmittel, z. B. Physio/Logo/Ergo',
abbreviation: 'keine einzelne GO',
description: 'GKV-Vergütungsvereinbarungen/Preislisten nach Bundesrahmenverträgen.',
},
{
id: 'de-hebammenhilfevertrag',
countryCode: 'DE',
area: 'Hebammen GKV',
abbreviation: 'Hebammenhilfevertrag',
description: 'Vertrag/Vergütungsvereinbarung nach § 134a SGB V.',
},
{
id: 'de-ampreisv',
countryCode: 'DE',
area: 'Apotheken/Rx-Arzneimittel',
abbreviation: 'AMPreisV',
description: 'Arzneimittelpreisverordnung; Preisbildung für verschreibungspflichtige Arzneimittel.',
},
{
id: 'de-gebueh',
countryCode: 'DE',
area: 'Heilpraktiker',
abbreviation: 'GebüH',
description: 'Gebührenverzeichnis für Heilpraktiker; keine amtliche verbindliche Gebührenordnung, eher Orientierung/übliche Vergütung.',
},
];
export const GERMANY_FEE_SCHEDULE_CATALOG: ICountryFeeScheduleCatalog = {
countryCode: 'DE',
countryName: 'Germany',
schedules: GERMANY_FEE_SCHEDULES,
};
+8 -1
View File
@@ -1,4 +1,4 @@
export type TFeeScheduleCountryCode = 'DE'; export type TFeeScheduleCountryCode = string;
export type TFeeScheduleDataStatus = export type TFeeScheduleDataStatus =
| 'federal-law-fee-data' | 'federal-law-fee-data'
@@ -65,3 +65,10 @@ export interface IFeeScheduleData {
ruleSections: IFeeScheduleRuleSection[]; ruleSections: IFeeScheduleRuleSection[];
notes: string[]; notes: string[];
} }
export interface IFeeSchedulePayload {
schemaVersion: number;
generatedAt?: string;
catalogs: ICountryFeeScheduleCatalog[];
scheduleData: IFeeScheduleData[];
}
-19
View File
@@ -1,19 +0,0 @@
// Generated by scripts/generate-germany.mjs on 2026-05-14.
// Do not edit this file manually.
import type { IFeeScheduleData } from '../feeschedules.types.js';
export const GERMANY_AGDRGFPV_FEE_SCHEDULE_DATA: IFeeScheduleData = {
"scheduleId": "de-ag-drg-fpv",
"dataStatus": "external-source-pending",
"edition": "Source identified 2026-05-14",
"source": {
"name": "InEK aG-DRG Fallpauschalen-Katalog / FPV",
"url": "https://www.g-drg.de",
"retrievedAt": "2026-05-14"
},
"feeRows": [],
"ruleSections": [],
"notes": [
"Year-specific InEK catalog source; not part of gesetze-im-internet federal XML corpus."
]
};
-146
View File
@@ -1,146 +0,0 @@
// Generated by scripts/generate-germany.mjs on 2026-05-14.
// Do not edit this file manually.
import type { IFeeScheduleData } from '../feeschedules.types.js';
export const GERMANY_AMPREISV_FEE_SCHEDULE_DATA: IFeeScheduleData = {
"scheduleId": "de-ampreisv",
"dataStatus": "federal-law-rules-only",
"edition": "Zuletzt geändert durch Art. 5 G v. 19.7.2023 I Nr. 197",
"source": {
"name": "Gesetze im Internet",
"url": "https://www.gesetze-im-internet.de/ampreisv/xml.zip",
"pageUrl": "https://www.gesetze-im-internet.de/ampreisv/",
"retrievedAt": "2026-05-14",
"sourceFileName": "BJNR021470980.xml",
"officialAbbreviation": "AMPreisV",
"legalAbbreviation": "AMPreisV",
"title": "Arzneimittelpreisverordnung",
"issuedAt": "1980-11-14",
"statusNotes": [
"Zuletzt geändert durch Art. 5 G v. 19.7.2023 I Nr. 197"
]
},
"feeRows": [],
"ruleSections": [
{
"id": "de-ampreisv-section-1",
"scheduleId": "de-ampreisv",
"sourceNormId": "BJNR021470980",
"reference": "AMPreisV",
"text": "(+++ Textnachweis ab: 1.1.1981 +++)"
},
{
"id": "de-ampreisv-section-2",
"scheduleId": "de-ampreisv",
"sourceNormId": "BJNR021470980BJNE000100312",
"reference": "Eingangsformel",
"text": "Auf Grund des § 78 des Arzneimittelgesetzes vom 24. August 1976 (BGBl. I S. 2445, 2448) wird im Einvernehmen mit dem Bundesminister für Jugend, Familie und Gesundheit, dem Bundesminister für Arbeit und Sozialordnung und dem Bundesminister für Ernährung, Landwirtschaft und Forsten mit Zustimmung des Bundesrates verordnet:"
},
{
"id": "de-ampreisv-section-3",
"scheduleId": "de-ampreisv",
"sourceNormId": "BJNR021470980BJNE000211116",
"reference": "§ 1",
"title": "Anwendungsbereich der Verordnung",
"text": "(1) Für Arzneimittel, die im voraus hergestellt und in einer zur Abgabe an den Verbraucher bestimmten Packung in den Verkehr gebracht werden (Fertigarzneimittel) und deren Abgabe nach § 43 Abs. 1 des Arzneimittelgesetzes den Apotheken vorbehalten ist, werden durch diese Verordnung festgelegt 1. die Preisspannen des Großhandels bei der Abgabe im Wiederverkauf an Apotheken oder Tierärzte (§ 2), 2. die Preisspannen sowie die Preise für besondere Leistungen der Apotheken bei der Abgabe im Wiederverkauf (§§ 3, 6 und 7), 3. die Preisspannen der Tierärzte bei der Abgabe im Wiederverkauf an Tierhalter (§ 10). (2) Für Arzneimittel, die in Apotheken oder von Tierärzten hergestellt werden und deren Abgabe nach § 43 Abs. 1 und 3 des Arzneimittelgesetzes den Apotheken vorbehalten ist, werden durch diese Verordnung festgelegt 1. die Preisspannen sowie die Preise für besondere Leistungen der Apotheken (§§ 4 bis 7), 2. die Preisspannen der Tierärzte (§ 10). (3) Ausgenommen sind die Preisspannen und Preise der Apotheken, wenn es sich um eine Abgabe handelt 1. durch Krankenhausapotheken, soweit es sich nicht um die Abgabe von parenteralen Zubereitungen aus Fertigarzneimitteln in der Onkologie zur ambulanten Versorgung handelt, 2. an Krankenhäuser und diesen nach § 14 Absatz 8 Satz 2 des Apothekengesetzes gleichgestellte Einrichtungen sowie an Justizvollzugsanstalten und Jugendarrestanstalten, 3. an die in § 47 Absatz 1 Satz 1 Nummer 2 bis 10 des Arzneimittelgesetzes genannten Personen und Einrichtungen unter den dort bezeichneten Voraussetzungen, 3a. von Impfstoffen, die zur Anwendung bei öffentlich empfohlenen Schutzimpfungen im Sinne des § 20 Abs. 3 des Infektionsschutzgesetzes vom 20. Juli 2000 (BGBl. I S. 1045) bestimmt sind und diese Impfstoffe an Krankenhäuser, Gesundheitsämter und Ärzte abgegeben werden, sofern es sich nicht um die Abgabe von saisonalen Grippeimpfstoffen an Ärzte handelt, 4. von Impfstoffen, die zur Anwendung bei allgemeinen, insbesondere behördlichen oder betrieblichen Grippevorsorgemaßnahmen bestimmt sind, 5. an Gesundheitsämter für Maßnahmen der Rachitisvorsorge, 6. von Arzneimitteln, die zur Anwendung bei der Dialyse Nierenkranker bestimmt sind, 7. von aus Fertigarzneimitteln auf Grund ärztlicher Verordnung entnommenen Teilmengen, soweit deren Darreichungsform, Zusammensetzung und Stärke unverändert bleibt, 8. von Fertigarzneimitteln in parenteralen Zubereitungen. Im Fall von Satz 1 Nummer 1 bleibt § 129a des Fünften Buches Sozialgesetzbuch unberührt. Im Fall von Satz 1 Nr. 7 können Sozialleistungsträger, private Krankenversicherungen oder deren Verbände das Verfahren für die Berechnung der Apothekenabgabepreise für die zu ihren Lasten abgegebenen Arzneimittel mit Apotheken oder deren Verbänden vereinbaren. (4) Ausgenommen sind die Preisspannen und Preise von nicht verschreibungspflichtigen Arzneimitteln."
},
{
"id": "de-ampreisv-section-4",
"scheduleId": "de-ampreisv",
"sourceNormId": "BJNR021470980BJNE000308130",
"reference": "§ 2",
"title": "Großhandelszuschläge für Fertigarzneimittel",
"text": "(1) Bei der Abgabe von Fertigarzneimitteln, die zur Anwendung bei Menschen bestimmt sind, durch den Großhandel an Apotheken oder Tierärzte sind auf den Abgabepreis des pharmazeutischen Unternehmers ein Festzuschlag von 73 Cent sowie die Umsatzsteuer zu erheben; zusätzlich darf auf den Abgabepreis des pharmazeutischen Unternehmers ohne die Umsatzsteuer höchstens ein Zuschlag von 3,15 Prozent, höchstens jedoch 37,80 Euro erhoben werden. Bei der Abgabe von Fertigarzneimitteln, die zur Anwendung bei Tieren bestimmt sind, durch den Großhandel an Apotheken oder Tierärzte dürfen auf den Abgabepreis des pharmazeutischen Unternehmers ohne die Umsatzsteuer höchstens Zuschläge nach Absatz 2 oder 3 sowie die Umsatzsteuer erhoben werden. Der Berechnung der Zuschläge nach Satz 1 ist jeweils der Betrag zugrunde zu legen, zu dem der pharmazeutische Unternehmer das Arzneimittel nach § 78 Absatz 3 oder Absatz 3a des Arzneimittelgesetzes abgibt. (2) Der Höchstzuschlag nach Absatz 1 Satz 2 ist bei einem Abgabepreis des pharmazeutischen Unternehmers bis 0,84 Euro 21,0 Prozent (Spanne 17,4 Prozent), von 0,89 Euro bis 1,70 Euro 20,0 Prozent (Spanne 16,7 Prozent), von 1,75 Euro bis 2,56 Euro 19,5 Prozent (Spanne 16,3 Prozent), von 2,64 Euro bis 3,65 Euro 19,0 Prozent (Spanne 16,0 Prozent), von 3,76 Euro bis 6,03 Euro 18,5 Prozent (Spanne 15,6 Prozent), von 6,21 Euro bis 9,10 Euro 18,0 Prozent (Spanne 15,3 Prozent), von 10,93 Euro bis 44,46 Euro 15,0 Prozent (Spanne 13,0 Prozent), von 55,59 Euro bis 684,76 Euro 12,0 Prozent (Spanne 10,7 Prozent), ab 684,77 Euro 3,0 Prozent zuzüglich 61,63 Euro. (3) Der Höchstzuschlag nach Absatz 1 Satz 2 ist bei einem Abgabepreis des pharmazeutischen Unternehmers von 0,85 Euro bis 0,88 Euro 0,18 Euro, von 1,71 Euro bis 1,74 Euro 0,34 Euro, von 2,57 Euro bis 2,63 Euro 0,50 Euro, von 3,66 Euro bis 3,75 Euro 0,70 Euro, von 6,04 Euro bis 6,20 Euro 1,12 Euro, von 9,11 Euro bis 10,92 Euro 1,64 Euro, von 44,47 Euro bis 55,58 Euro 6,67 Euro."
},
{
"id": "de-ampreisv-section-5",
"scheduleId": "de-ampreisv",
"sourceNormId": "BJNR021470980BJNE000412130",
"reference": "§ 3",
"title": "Apothekenzuschläge für Fertigarzneimittel",
"text": "(1) Bei der Abgabe von Fertigarzneimitteln, die zur Anwendung bei Menschen bestimmt sind, durch die Apotheken sind zur Berechnung des Apothekenabgabepreises ein Festzuschlag von 3 Prozent zuzüglich 8,35 Euro zuzüglich 21 Cent zur Förderung der Sicherstellung des Notdienstes zuzüglich 20 Cent zur Finanzierung zusätzlicher pharmazeutischer Dienstleistungen nach § 129 Absatz 5e des Fünften Buches Sozialgesetzbuch sowie die Umsatzsteuer zu erheben; bei der Abgabe von saisonalen Grippeimpfstoffen durch die Apotheken an Ärzte sind abweichend ein Zuschlag von 1 Euro je Einzeldosis, höchstens jedoch 75 Euro je Verordnungszeile, sowie die Umsatzsteuer zu erheben. Soweit Fertigarzneimittel, die zur Anwendung bei Menschen bestimmt sind, durch die Apotheken zur Anwendung bei Tieren abgegeben werden, dürfen zur Berechnung des Apothekenabgabepreises abweichend von Satz 1 höchstens ein Zuschlag von 3 Prozent zuzüglich 8,10 Euro sowie die Umsatzsteuer erhoben werden. Bei der Abgabe von Fertigarzneimitteln, die zur Anwendung bei Tieren bestimmt sind, durch die Apotheken dürfen zur Berechnung des Apothekenabgabepreises höchstens Zuschläge nach Absatz 3 oder 4 sowie die Umsatzsteuer erhoben werden. (1a) Im Fall eines Austauschs eines verordneten Arzneimittels nach § 129 Absatz 2a des Fünften Buches Sozialgesetzbuch durch die Apotheke ist ein Zuschlag in Höhe von 50 Cent zuzüglich Umsatzsteuer zu erheben. (2) Der Festzuschlag ist zu erheben 1. auf den Betrag, der sich aus der Zusammenrechnung des bei Belieferung des Großhandels geltenden Abgabepreises des pharmazeutischen Unternehmers ohne die Umsatzsteuer und des darauf entfallenden Großhandelshöchstzuschlags nach § 2 ergibt, 2. bei Fertigarzneimitteln, die nach § 52b Absatz 2 Satz 3 des Arzneimittelgesetzes nur vom pharmazeutischen Unternehmer direkt zu beziehen sind, auf den bei Belieferung der Apotheke geltenden Abgabepreis des pharmazeutischen Unternehmers ohne die Umsatzsteuer; § 2 Absatz 1 Satz 3 gilt entsprechend. (3) Der Höchstzuschlag nach Absatz 1 Satz 3 ist bei einem Betrag bis 1,22 Euro 68 Prozent (Spanne 40,5 Prozent), von 1,35 Euro bis 3,88 Euro 62 Prozent (Spanne 38,3 Prozent), von 4,23 Euro bis 7,30 Euro 57 Prozent (Spanne 36,3 Prozent), von 8,68 Euro bis 12,14 Euro 48 Prozent (Spanne 32,4 Prozent), von 13,56 Euro bis 19,42 Euro 43 Prozent (Spanne 30,1 Prozent), von 22,58 Euro bis 29,14 Euro 37 Prozent (Spanne 27,0 Prozent), von 35,95 Euro bis 543,91 Euro 30 Prozent (Spanne 23,1 Prozent), ab 543,92 Euro 8,263 Prozent zuzüglich 118,24 Euro. (4) Der Höchstzuschlag nach Absatz 1 Satz 3 ist bei einem Betrag von 1,23 Euro bis 1,34 Euro 0,83 Euro, von 3,89 Euro bis 4,22 Euro 2,41 Euro, von 7,31 Euro bis 8,67 Euro 4,16 Euro, von 12,15 Euro bis 13,55 Euro 5,83 Euro, von 19,43 Euro bis 22,57 Euro 8,35 Euro, von 29,15 Euro bis 35,94 Euro 10,78 Euro. (5) Sofern die abzugebende Menge nicht in der Verschreibung vorgeschrieben oder gesetzlich bestimmt ist, haben die Apotheken, soweit mit den Kostenträgern nichts anderes vereinbart ist, die kleinste im Verkehr befindliche Packung zu berechnen. Satz 1 gilt auch in dem Fall, dass statt der verschriebenen Packungsgröße die verschriebene Menge des Arzneimittels als Teilmenge aus einer Packung abgegeben wird, die größer ist als die verschriebene Packungsgröße. (6) Für die erneute Abgabe der an eine Apotheke zurückgegebenen verschreibungspflichtigen Fertigarzneimittel durch die Apotheke beträgt der Festzuschlag 5,80 Euro."
},
{
"id": "de-ampreisv-section-6",
"scheduleId": "de-ampreisv",
"sourceNormId": "BJNR021470980BJNE000505116",
"reference": "§ 4",
"title": "Apothekenzuschläge für Stoffe",
"text": "(1) Bei der Abgabe eines Stoffes, der in Apotheken in unverändertem Zustand umgefüllt, abgefüllt, abgepackt oder gekennzeichnet wird, sind ein Festzuschlag von 100 Prozent (Spanne 50 Prozent) auf die Apothekeneinkaufspreise ohne Umsatzsteuer für Stoff und erforderliche Verpackung sowie die Umsatzsteuer zu erheben. (2) Auszugehen ist von dem Apothekeneinkaufspreis der abzugebenden Menge des Stoffes, wobei der Einkaufspreis der üblichen Abpackung maßgebend ist. (3) Trifft die für die Wahrnehmung der wirtschaftlichen Interessen gebildete maßgebliche Spitzenorganisation der Apotheker mit dem Spitzenverband Bund der Krankenkassen Vereinbarungen über Apothekeneinkaufspreise, die der Berechnung zugrunde gelegt werden sollen, so ist der Festzuschlag für die durch diese Vereinbarungen erfaßten Abgaben abweichend von den Absätzen 1 und 2 auf diese Preise zu erheben. Das Gleiche gilt, wenn Sozialleistungsträger, private Krankenversicherungen oder deren Verbände mit Apotheken oder deren Verbänden entsprechende Vereinbarungen treffen; liegt eine solche Vereinbarung nicht vor, kann auf die nach Satz 1 vereinbarten Preise abgestellt werden. (4) Trifft die für die Wahrnehmung der wirtschaftlichen Interessen gebildete maßgebliche Spitzenorganisation der Apotheker mit dem Spitzenverband Bund der Krankenkassen Vereinbarungen über die Höhe des Festzuschlages nach Absatz 1, so ist der vereinbarte Zuschlag abweichend von Absatz 1 bei der Preisberechnung zu berücksichtigen. Das Gleiche gilt, wenn Sozialleistungsträger, private Krankenversicherungsunternehmen oder deren Verbände mit Apotheken oder deren Verbänden entsprechende Vereinbarungen treffen. Liegt eine Vereinbarung nach Satz 2 nicht vor, kann auf die nach Satz 1 vereinbarten Preise abgestellt werden."
},
{
"id": "de-ampreisv-section-7",
"scheduleId": "de-ampreisv",
"sourceNormId": "BJNR021470980BJNE000609360",
"reference": "§ 5",
"title": "Apothekenzuschläge für Zubereitungen aus Stoffen",
"text": "(1) Bei der Abgabe einer Zubereitung aus einem Stoff oder mehreren Stoffen, die in Apotheken angefertigt wird, sind 1. ein Festzuschlag von 90 Prozent auf die Apothekeneinkaufspreise ohne Umsatzsteuer für Stoffe und erforderliche Verpackung, 2. ein Rezepturzuschlag nach Absatz 3, 3. ein Festzuschlag von 8,35 Euro für Zubereitungen nach Absatz 3, die nicht Absatz 6 unterfallen sowie die Umsatzsteuer zu erheben. (2) Auszugehen ist von den Apothekeneinkaufspreisen der für die Zubereitung erforderlichen Mengen an Stoffen und Fertigarzneimitteln. Maßgebend ist 1. bei Stoffen der Einkaufspreis der üblichen Abpackung, 2. bei Fertigarzneimitteln der Einkaufspreis nach § 3 Abs. 2 der erforderlichen Packungsgröße, höchstens jedoch der Apothekeneinkaufspreis, der für Fertigarzneimittel bei Abgabe in öffentlichen Apotheken gilt. (3) Der Rezepturzuschlag beträgt für 1. die Herstellung eines Arzneimittels durch Zubereitung aus einem Stoff oder mehreren Stoffen bis zur Grundmenge von 500 g, die Anfertigung eines gemischten Tees, Herstellung einer Lösung ohne Anwendung von Wärme, Mischen von Flüssigkeiten bis zur Grundmenge von 300 g 3,50 Euro, 2. die Anfertigung von Pudern, ungeteilten Pulvern, Salben, Pasten, Suspensionen und Emulsionen bis zur Grundmenge von 200 g, die Anfertigung von Lösungen unter Anwendung von Wärme, Mazerationen, Aufgüssen und Abkochungen bis zur Grundmenge von 300 g 6,00 Euro, 3. die Anfertigung von Pillen, Tabletten und Pastillen bis zur Grundmenge von 50 Stück, die Anfertigung von abgeteilten Pulvern, Zäpfchen, Vaginal-Kugeln und für das Füllen von Kapseln bis zur Grundmenge von 12 Stück, die Anfertigung von Arzneimitteln mit Durchführung einer Sterilisation, Sterilfiltration oder aseptischen Zubereitung bis zur Grundmenge von 300 g, das Zuschmelzen von Ampullen bis zur Grundmenge von 6 Stück 8,00 Euro. Für jede über die Grundmenge hinausgehende kleinere bis gleich große Menge erhöht sich der Rezepturzuschlag um jeweils 50 Prozent. (4) Trifft die für die Wahrnehmung der wirtschaftlichen Interessen gebildete maßgebliche Spitzenorganisation der Apotheker mit dem Spitzenverband Bund der Krankenkassen Vereinbarungen über Apothekeneinkaufspreise, die der Berechnung zugrunde gelegt werden sollen, so ist der Festzuschlag nach Absatz 1 Nr. 1 für die durch diese Vereinbarungen erfaßten Abgaben abweichend von den Absätzen 1 und 2 auf diese Preise zu erheben. Das Gleiche gilt, wenn Sozialleistungsträger, private Krankenversicherungen oder deren Verbände mit Apotheken oder deren Verbänden entsprechende Vereinbarungen treffen; liegt eine solche Vereinbarung nicht vor, kann auf die nach Satz 1 vereinbarten Preise abgestellt werden. Besteht keine Vereinbarung über abrechnungsfähige Einkaufspreise für Fertigarzneimittel in Zubereitungen nach Satz 1 oder Satz 2, ist höchstens der Apothekeneinkaufspreis zu berechnen, der bei Abgabe an Verbraucher auf Grund dieser Verordnung gilt. Bei einer umsatzsteuerfreien Abgabe von parenteralen Zubereitungen aus Fertigarzneimitteln in der Onkologie zur ambulanten Versorgung durch Krankenhausapotheken ist höchstens der Apothekeneinkaufspreis nach Satz 3 einschließlich der in diesem enthaltenen Umsatzsteuer zu berechnen. (5) Trifft die für die Wahrnehmung der wirtschaftlichen Interessen gebildete maßgebliche Spitzenorganisation der Apotheker mit dem Spitzenverband Bund der Krankenkassen Vereinbarungen über die Höhe des Fest- oder Rezepturzuschlages nach Absatz 1, so sind die vereinbarten Zuschläge abweichend von Absatz 1 oder Absatz 3 bei der Preisberechnung zu berücksichtigen. Das Gleiche gilt, wenn Sozialleistungsträger, private Krankenversicherungen oder deren Verbände mit Apotheken oder deren Verbänden entsprechende Vereinbarungen treffen; liegt eine solche Vereinbarung nicht vor, kann auf die nach Satz 1 vereinbarten Preise abgestellt werden. (6) Besteht keine Vereinbarung über Apothekenzuschläge für die Zubereitung von Stoffen nach Absatz 5 Satz 1 oder Satz 2, beträgt der Zuschlag für parenterale Lösungen abweichend von Absatz 1 oder Absatz 3 für 1. zytostatikahaltige Lösungen 90 Euro, 2. Lösungen mit monoklonalen Antikörpern 87 Euro, 3. antibiotika- und virustatikahaltige Lösungen 51 Euro, 4. Lösungen mit Schmerzmitteln 51 Euro, 5. Ernährungslösungen 83 Euro, 6. Calciumfolinatlösungen 51 Euro, 7. sonstige Lösungen 70 Euro."
},
{
"id": "de-ampreisv-section-8",
"scheduleId": "de-ampreisv",
"sourceNormId": "BJNR021470980BJNE000704310",
"reference": "§ 6",
"title": "Notdienst",
"text": "Bei der Inanspruchnahme in der Zeit von 20 bis 6 Uhr, an Sonn- und Feiertagen sowie am 24. Dezember, wenn dieser Tag auf einen Werktag fällt, bis 6 Uhr und ab 14 Uhr können die Apotheken einen zusätzlichen Betrag von 2,50 Euro einschließlich Umsatzsteuer berechnen."
},
{
"id": "de-ampreisv-section-9",
"scheduleId": "de-ampreisv",
"sourceNormId": "BJNR021470980BJNE000803116",
"reference": "§ 7",
"title": "Betäubungsmittel und Arzneimittel nach § 3a der Arzneimittelverschreibungsverordnung",
"text": "Bei der Abgabe eines Betäubungsmittels, dessen Verbleib nach § 1 Absatz 3 der Betäubungsmittel-Verschreibungsverordnung nachzuweisen ist, sowie bei der Abgabe von Arzneimitteln nach § 3a der Arzneimittelverschreibungsverordnung können die Apotheken einen zusätzlichen Betrag von 4,26 Euro einschließlich Umsatzsteuer berechnen."
},
{
"id": "de-ampreisv-section-10",
"scheduleId": "de-ampreisv",
"sourceNormId": "BJNR021470980BJNE000900312",
"reference": "§ 8",
"title": "Sonderbeschaffung",
"text": "Unvermeidbare Telegrammgebühren, Fernsprechgebühren, Porti, Zölle und andere Kosten der Beschaffung von Arzneimitteln, die üblicherweise weder in Apotheken noch im Großhandel vorrätig gehalten werden, können die Apotheken mit Zustimmung des Kostenträgers gesondert berechnen."
},
{
"id": "de-ampreisv-section-11",
"scheduleId": "de-ampreisv",
"sourceNormId": "BJNR021470980BJNE001000312",
"reference": "§ 9",
"title": "Angaben auf der Verschreibung",
"text": "Auf der Verschreibung sind von den Apotheken einzeln anzugeben 1. bei Fertigarzneimitteln der Apothekenabgabepreis, zusätzlich berechnete Beträge und die Summe der Einzelbeträge, 2. bei Arzneimitteln, die in Apotheken hergestellt werden, außerdem die Einzelbeträge des Apothekenabgabepreises, 3. bei einem Betrag nach § 6 auch die Zeit der Inanspruchnahme."
},
{
"id": "de-ampreisv-section-12",
"scheduleId": "de-ampreisv",
"sourceNormId": "BJNR021470980BJNE001103310",
"reference": "§ 10",
"title": "Zuschläge der Tierärzte",
"text": "(1) Bei der Abgabe von Arzneimitteln durch Tierärzte an Tierhalter dürfen höchstens Zuschläge entsprechend § 3 Abs. 1 Satz 2 und 3 und Abs. 2 bis 4, § 4 Abs. 1 und 2 und § 5 Abs. 1 bis 3 sowie die Umsatzsteuer erhoben werden. (2) Liegt der für den Zuschlag entsprechend § 3 Abs. 2 maßgebliche Betrag über 51,13 Euro, so sind für den 51,13 Euro übersteigenden Betrag folgende Zuschläge zu erheben: von 51,13 Euro bis 127,82 Euro höchstens 25 Prozent, von mehr als 127,82 Euro höchstens 20 Prozent. (3) (weggefallen)"
},
{
"id": "de-ampreisv-section-13",
"scheduleId": "de-ampreisv",
"sourceNormId": "BJNR021470980BJNE001500310",
"reference": "§ 11",
"title": "Preise in besonderen Fällen",
"text": "Bei der Abgabe von Fertigarzneimitteln in den Fällen des § 78 Abs. 4 des Arzneimittelgesetzes wird bei Anwendung dieser Verordnung der Abgabepreis des pharmazeutischen Unternehmers durch den Länderabgabepreis ersetzt. Bei Abgabe von Stoffen oder Zubereitungen ist zur Berechnung des Apothekeneinkaufspreises sowie bei Vereinbarungen über Apothekeneinkaufspreise nach § 4 Abs. 3 und § 5 Abs. 4 ebenfalls der Länderabgabepreis zugrunde zu legen. Abweichend von § 4 Abs. 3 sowie § 5 Abs. 4 und 5 können auch die für die Wahrnehmung der wirtschaftlichen Interessen gebildeten Verbände der Apotheker mit den Krankenkassen oder ihren Verbänden Vereinbarungen über die Apothekeneinkaufspreise und Zuschläge treffen."
},
{
"id": "de-ampreisv-section-14",
"scheduleId": "de-ampreisv",
"sourceNormId": "BJNR021470980BJNE001300312",
"reference": "§ 12",
"title": "Inkrafttreten, abgelöste Vorschriften",
"text": "(1) Diese Verordnung tritt am 1. Januar 1981 in Kraft. (2) (Aufhebungsvorschriften)"
},
{
"id": "de-ampreisv-section-15",
"scheduleId": "de-ampreisv",
"sourceNormId": "BJNR021470980BJNE001400312",
"reference": "Schlußformel",
"text": "Der Bundesminister für Wirtschaft"
}
],
"notes": [
"No separate fee table rows were present in the federal XML. Fee rules are represented as rule sections."
]
};
-19
View File
@@ -1,19 +0,0 @@
// Generated by scripts/generate-germany.mjs on 2026-05-14.
// Do not edit this file manually.
import type { IFeeScheduleData } from '../feeschedules.types.js';
export const GERMANY_BEMA_FEE_SCHEDULE_DATA: IFeeScheduleData = {
"scheduleId": "de-bema",
"dataStatus": "external-source-pending",
"edition": "Source identified 2026-05-14",
"source": {
"name": "Kassenzahnärztliche Bundesvereinigung BEMA",
"url": "https://www.kzbv.de/bema",
"retrievedAt": "2026-05-14"
},
"feeRows": [],
"ruleSections": [],
"notes": [
"External dental self-administration source; not part of gesetze-im-internet federal XML corpus."
]
};
-19
View File
@@ -1,19 +0,0 @@
// Generated by scripts/generate-germany.mjs on 2026-05-14.
// Do not edit this file manually.
import type { IFeeScheduleData } from '../feeschedules.types.js';
export const GERMANY_EBM_FEE_SCHEDULE_DATA: IFeeScheduleData = {
"scheduleId": "de-ebm",
"dataStatus": "external-source-pending",
"edition": "Source identified 2026-05-14",
"source": {
"name": "Kassenärztliche Bundesvereinigung EBM",
"url": "https://www.kbv.de/html/ebm.php",
"retrievedAt": "2026-05-14"
},
"feeRows": [],
"ruleSections": [],
"notes": [
"External self-administration source; not part of gesetze-im-internet federal XML corpus."
]
};
-1915
View File
File diff suppressed because one or more lines are too long
-19
View File
@@ -1,19 +0,0 @@
// Generated by scripts/generate-germany.mjs on 2026-05-14.
// Do not edit this file manually.
import type { IFeeScheduleData } from '../feeschedules.types.js';
export const GERMANY_GEBUEH_FEE_SCHEDULE_DATA: IFeeScheduleData = {
"scheduleId": "de-gebueh",
"dataStatus": "external-source-pending",
"edition": "Source identified 2026-05-14",
"source": {
"name": "Gebührenverzeichnis für Heilpraktiker",
"url": "https://www.gebueh.de",
"retrievedAt": "2026-05-14"
},
"feeRows": [],
"ruleSections": [],
"notes": [
"Non-official customary fee directory; not part of gesetze-im-internet federal XML corpus."
]
};
-5508
View File
File diff suppressed because one or more lines are too long
-5814
View File
File diff suppressed because one or more lines are too long
-42537
View File
File diff suppressed because one or more lines are too long
-71
View File
@@ -1,71 +0,0 @@
// Generated by scripts/generate-germany.mjs on 2026-05-14.
// Do not edit this file manually.
import type { IFeeScheduleData } from '../feeschedules.types.js';
export const GERMANY_GOP_FEE_SCHEDULE_DATA: IFeeScheduleData = {
"scheduleId": "de-gop",
"dataStatus": "federal-law-rules-only",
"edition": "Geändert durch § 5 Satz 3 V v. 18.10.2001 I 2721",
"source": {
"name": "Gesetze im Internet",
"url": "https://www.gesetze-im-internet.de/gop/xml.zip",
"pageUrl": "https://www.gesetze-im-internet.de/gop/",
"retrievedAt": "2026-05-14",
"sourceFileName": "BJNR081800000.xml",
"officialAbbreviation": "GOP",
"legalAbbreviation": "GOP",
"title": "Gebührenordnung für Psychologische Psychotherapeuten und Kinder- und Jugendlichenpsychotherapeuten",
"issuedAt": "2000-06-08",
"statusNotes": [
"Geändert durch § 5 Satz 3 V v. 18.10.2001 I 2721"
]
},
"feeRows": [],
"ruleSections": [
{
"id": "de-gop-section-1",
"scheduleId": "de-gop",
"sourceNormId": "BJNR081800000",
"reference": "GOP",
"text": "(+++ Textnachweis ab: 24.6.2000 +++)"
},
{
"id": "de-gop-section-2",
"scheduleId": "de-gop",
"sourceNormId": "BJNR081800000BJNE000100305",
"reference": "Eingangsformel",
"text": "Auf Grund des § 9 des Psychotherapeutengesetzes vom 16. Juni 1998 (BGBl. I S. 1311) verordnet das Bundesministerium für Gesundheit:"
},
{
"id": "de-gop-section-3",
"scheduleId": "de-gop",
"sourceNormId": "BJNR081800000BJNE000200305",
"reference": "§ 1",
"text": "(1) Die Vergütungen für die beruflichen Leistungen der Psychologischen Psychotherapeuten und der Kinder- und Jugendlichenpsychotherapeuten im Sinne von § 1 Abs. 3 des Psychotherapeutengesetzes richten sich nach der Gebührenordnung für Ärzte in der Fassung der Bekanntmachung vom 9. Februar 1996 (BGBl. I S. 210), geändert durch Artikel 17 des Gesetzes vom 22. Dezember 1999 (BGBl. I S. 2626), soweit nicht durch Bundesgesetz etwas anderes bestimmt ist. (2) Vergütungen nach Absatz 1 sind nur für Leistungen berechnungsfähig, die in den Abschnitten B und G des Gebührenverzeichnisses der Gebührenordnung für Ärzte aufgeführt sind. § 6 Abs. 2 der Gebührenordnung für Ärzte gilt mit der Maßgabe, dass psychotherapeutische Leistungen, die nicht im Gebührenverzeichnis der Gebührenordnung für Ärzte enthalten sind, entsprechend einer nach Art, Kosten- und Zeitaufwand gleichwertigen Leistung der Abschnitte B und G des Gebührenverzeichnisses der Gebührenordnung für Ärzte berechnet werden können."
},
{
"id": "de-gop-section-4",
"scheduleId": "de-gop",
"sourceNormId": "BJNR081800000BJNE000301320",
"reference": "§ 2",
"text": "(weggefallen)"
},
{
"id": "de-gop-section-5",
"scheduleId": "de-gop",
"sourceNormId": "BJNR081800000BJNE000400305",
"reference": "§ 3",
"text": "Diese Verordnung tritt am Tage nach der Verkündung in Kraft."
},
{
"id": "de-gop-section-6",
"scheduleId": "de-gop",
"sourceNormId": "BJNR081800000BJNE000500305",
"reference": "Schlussformel",
"text": "Der Bundesrat hat zugestimmt."
}
],
"notes": [
"No separate fee table rows were present in the federal XML. Fee rules are represented as rule sections."
]
};
-13234
View File
File diff suppressed because one or more lines are too long
-3169
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-19
View File
@@ -1,19 +0,0 @@
// Generated by scripts/generate-germany.mjs on 2026-05-14.
// Do not edit this file manually.
import type { IFeeScheduleData } from '../feeschedules.types.js';
export const GERMANY_HEBAMMENHILFEVERTRAG_FEE_SCHEDULE_DATA: IFeeScheduleData = {
"scheduleId": "de-hebammenhilfevertrag",
"dataStatus": "external-source-pending",
"edition": "Source identified 2026-05-14",
"source": {
"name": "GKV-Spitzenverband Hebammenhilfevertrag",
"url": "https://www.gkv-spitzenverband.de/krankenversicherung/ambulante_leistungen/hebammen_geburtshaeuser/hebammenhilfevertrag/hebammenhilfevertrag.jsp",
"retrievedAt": "2026-05-14"
},
"feeRows": [],
"ruleSections": [],
"notes": [
"External contract and remuneration agreement source; not part of gesetze-im-internet federal XML corpus."
]
};
-19
View File
@@ -1,19 +0,0 @@
// Generated by scripts/generate-germany.mjs on 2026-05-14.
// Do not edit this file manually.
import type { IFeeScheduleData } from '../feeschedules.types.js';
export const GERMANY_HEILMITTELGKV_FEE_SCHEDULE_DATA: IFeeScheduleData = {
"scheduleId": "de-heilmittel-gkv",
"dataStatus": "external-source-pending",
"edition": "Source identified 2026-05-14",
"source": {
"name": "GKV-Spitzenverband Heilmittel contracts and price lists",
"url": "https://www.gkv-spitzenverband.de/krankenversicherung/ambulante_leistungen/heilmittel/heilmittel.jsp",
"retrievedAt": "2026-05-14"
},
"feeRows": [],
"ruleSections": [],
"notes": [
"External contract and price list source by remedy area; not part of gesetze-im-internet federal XML corpus."
]
};
-7424
View File
File diff suppressed because one or more lines are too long
-70
View File
@@ -1,70 +0,0 @@
// Generated by scripts/generate-germany.mjs on 2026-05-14.
// Do not edit this file manually.
import type { IFeeScheduleData } from '../feeschedules.types.js';
import { GERMANY_GOAE_FEE_SCHEDULE_DATA } from './goae.js';
import { GERMANY_GOZ_FEE_SCHEDULE_DATA } from './goz.js';
import { GERMANY_GOP_FEE_SCHEDULE_DATA } from './gop.js';
import { GERMANY_GOT_FEE_SCHEDULE_DATA } from './got.js';
import { GERMANY_STBVV_FEE_SCHEDULE_DATA } from './stbvv.js';
import { GERMANY_RVG_FEE_SCHEDULE_DATA } from './rvg.js';
import { GERMANY_GNOTKG_FEE_SCHEDULE_DATA } from './gnotkg.js';
import { GERMANY_GKG_FEE_SCHEDULE_DATA } from './gkg.js';
import { GERMANY_FAMGKG_FEE_SCHEDULE_DATA } from './famgkg.js';
import { GERMANY_GVKOSTG_FEE_SCHEDULE_DATA } from './gvkostg.js';
import { GERMANY_JVEG_FEE_SCHEDULE_DATA } from './jveg.js';
import { GERMANY_INSVV_FEE_SCHEDULE_DATA } from './insvv.js';
import { GERMANY_HOAI_FEE_SCHEDULE_DATA } from './hoai.js';
import { GERMANY_AMPREISV_FEE_SCHEDULE_DATA } from './ampreisv.js';
import { GERMANY_EBM_FEE_SCHEDULE_DATA } from './ebm.js';
import { GERMANY_BEMA_FEE_SCHEDULE_DATA } from './bema.js';
import { GERMANY_AGDRGFPV_FEE_SCHEDULE_DATA } from './agdrgfpv.js';
import { GERMANY_UVGOAE_FEE_SCHEDULE_DATA } from './uvgoae.js';
import { GERMANY_HEILMITTELGKV_FEE_SCHEDULE_DATA } from './heilmittelgkv.js';
import { GERMANY_HEBAMMENHILFEVERTRAG_FEE_SCHEDULE_DATA } from './hebammenhilfevertrag.js';
import { GERMANY_GEBUEH_FEE_SCHEDULE_DATA } from './gebueh.js';
export { GERMANY_GOAE_FEE_SCHEDULE_DATA } from './goae.js';
export { GERMANY_GOZ_FEE_SCHEDULE_DATA } from './goz.js';
export { GERMANY_GOP_FEE_SCHEDULE_DATA } from './gop.js';
export { GERMANY_GOT_FEE_SCHEDULE_DATA } from './got.js';
export { GERMANY_STBVV_FEE_SCHEDULE_DATA } from './stbvv.js';
export { GERMANY_RVG_FEE_SCHEDULE_DATA } from './rvg.js';
export { GERMANY_GNOTKG_FEE_SCHEDULE_DATA } from './gnotkg.js';
export { GERMANY_GKG_FEE_SCHEDULE_DATA } from './gkg.js';
export { GERMANY_FAMGKG_FEE_SCHEDULE_DATA } from './famgkg.js';
export { GERMANY_GVKOSTG_FEE_SCHEDULE_DATA } from './gvkostg.js';
export { GERMANY_JVEG_FEE_SCHEDULE_DATA } from './jveg.js';
export { GERMANY_INSVV_FEE_SCHEDULE_DATA } from './insvv.js';
export { GERMANY_HOAI_FEE_SCHEDULE_DATA } from './hoai.js';
export { GERMANY_AMPREISV_FEE_SCHEDULE_DATA } from './ampreisv.js';
export { GERMANY_EBM_FEE_SCHEDULE_DATA } from './ebm.js';
export { GERMANY_BEMA_FEE_SCHEDULE_DATA } from './bema.js';
export { GERMANY_AGDRGFPV_FEE_SCHEDULE_DATA } from './agdrgfpv.js';
export { GERMANY_UVGOAE_FEE_SCHEDULE_DATA } from './uvgoae.js';
export { GERMANY_HEILMITTELGKV_FEE_SCHEDULE_DATA } from './heilmittelgkv.js';
export { GERMANY_HEBAMMENHILFEVERTRAG_FEE_SCHEDULE_DATA } from './hebammenhilfevertrag.js';
export { GERMANY_GEBUEH_FEE_SCHEDULE_DATA } from './gebueh.js';
export const GERMANY_FEE_SCHEDULE_DATA: IFeeScheduleData[] = [
GERMANY_GOAE_FEE_SCHEDULE_DATA,
GERMANY_GOZ_FEE_SCHEDULE_DATA,
GERMANY_GOP_FEE_SCHEDULE_DATA,
GERMANY_GOT_FEE_SCHEDULE_DATA,
GERMANY_STBVV_FEE_SCHEDULE_DATA,
GERMANY_RVG_FEE_SCHEDULE_DATA,
GERMANY_GNOTKG_FEE_SCHEDULE_DATA,
GERMANY_GKG_FEE_SCHEDULE_DATA,
GERMANY_FAMGKG_FEE_SCHEDULE_DATA,
GERMANY_GVKOSTG_FEE_SCHEDULE_DATA,
GERMANY_JVEG_FEE_SCHEDULE_DATA,
GERMANY_INSVV_FEE_SCHEDULE_DATA,
GERMANY_HOAI_FEE_SCHEDULE_DATA,
GERMANY_AMPREISV_FEE_SCHEDULE_DATA,
GERMANY_EBM_FEE_SCHEDULE_DATA,
GERMANY_BEMA_FEE_SCHEDULE_DATA,
GERMANY_AGDRGFPV_FEE_SCHEDULE_DATA,
GERMANY_UVGOAE_FEE_SCHEDULE_DATA,
GERMANY_HEILMITTELGKV_FEE_SCHEDULE_DATA,
GERMANY_HEBAMMENHILFEVERTRAG_FEE_SCHEDULE_DATA,
GERMANY_GEBUEH_FEE_SCHEDULE_DATA,
];
-211
View File
@@ -1,211 +0,0 @@
// Generated by scripts/generate-germany.mjs on 2026-05-14.
// Do not edit this file manually.
import type { IFeeScheduleData } from '../feeschedules.types.js';
export const GERMANY_INSVV_FEE_SCHEDULE_DATA: IFeeScheduleData = {
"scheduleId": "de-insvv",
"dataStatus": "federal-law-rules-only",
"edition": "Zuletzt geändert durch Art. 4 G v. 22.12.2020 I 3328",
"source": {
"name": "Gesetze im Internet",
"url": "https://www.gesetze-im-internet.de/insvv/xml.zip",
"pageUrl": "https://www.gesetze-im-internet.de/insvv/",
"retrievedAt": "2026-05-14",
"sourceFileName": "BJNR220500998.xml",
"officialAbbreviation": "InsVV",
"legalAbbreviation": "InsVV",
"title": "Insolvenzrechtliche Vergütungsverordnung",
"issuedAt": "1998-08-19",
"statusNotes": [
"Zuletzt geändert durch Art. 4 G v. 22.12.2020 I 3328"
]
},
"feeRows": [],
"ruleSections": [
{
"id": "de-insvv-section-1",
"scheduleId": "de-insvv",
"sourceNormId": "BJNR220500998",
"reference": "InsVV",
"text": "(+++ Textnachweis ab: 1.1.1999 +++)"
},
{
"id": "de-insvv-section-2",
"scheduleId": "de-insvv",
"sourceNormId": "BJNR220500998BJNE000600311",
"reference": "Eingangsformel",
"text": "Auf Grund des § 65 in Verbindung mit § 21 Abs. 2 Nr. 1, § 73 Abs. 2, § 274 Abs. 1, § 293 Abs. 2 und § 313 Abs. 1 der Insolvenzordnung vom 5. Oktober 1994 (BGBl. I S. 2866) verordnet das Bundesministerium der Justiz:"
},
{
"id": "de-insvv-section-4",
"scheduleId": "de-insvv",
"sourceNormId": "BJNR220500998BJNE000701125",
"reference": "§ 1",
"title": "Berechnungsgrundlage",
"text": "(1) Die Vergütung des Insolvenzverwalters wird nach dem Wert der Insolvenzmasse berechnet, auf die sich die Schlußrechnung bezieht. Wird das Verfahren nach Bestätigung eines Insolvenzplans aufgehoben oder durch Einstellung vorzeitig beendet, so ist die Vergütung nach dem Schätzwert der Masse zur Zeit der Beendigung des Verfahrens zu berechnen. (2) Die maßgebliche Masse ist im einzelnen wie folgt zu bestimmen: 1. Massegegenstände, die mit Absonderungsrechten belastet sind, werden berücksichtigt, wenn sie durch den Verwalter verwertet werden. Der Mehrbetrag der Vergütung, der auf diese Gegenstände entfällt, darf jedoch 50 vom Hundert des Betrages nicht übersteigen, der für die Kosten ihrer Feststellung in die Masse geflossen ist. Im übrigen werden die mit Absonderungsrechten belasteten Gegenstände nur insoweit berücksichtigt, als aus ihnen der Masse ein Überschuß zusteht. 2. Werden Aus- und Absonderungsrechte abgefunden, so wird die aus der Masse hierfür gewährte Leistung vom Sachwert der Gegenstände abgezogen, auf die sich diese Rechte erstreckten. 3. Steht einer Forderung eine Gegenforderung gegenüber, so wird lediglich der Überschuß berücksichtigt, der sich bei einer Verrechnung ergibt. 4. Die Kosten des Insolvenzverfahrens und die sonstigen Masseverbindlichkeiten werden nicht abgesetzt. Es gelten jedoch folgende Ausnahmen: a) Beträge, die der Verwalter nach § 5 als Vergütung für den Einsatz besonderer Sachkunde erhält, werden abgezogen. b) Wird das Unternehmen des Schuldners fortgeführt, so ist nur der Überschuß zu berücksichtigen, der sich nach Abzug der Ausgaben von den Einnahmen ergibt. 5. Ein Vorschuß, der von einer anderen Person als dem Schuldner zur Durchführung des Verfahrens geleistet worden ist, und ein Zuschuß, den ein Dritter zur Erfüllung eines Insolvenzplans oder zum Zweck der Erteilung der Restschuldbefreiung vor Ablauf der Abtretungsfrist geleistet hat, bleiben außer Betracht."
},
{
"id": "de-insvv-section-5",
"scheduleId": "de-insvv",
"sourceNormId": "BJNR220500998BJNE000803125",
"reference": "§ 2",
"title": "Regelsätze",
"text": "(1) Der Insolvenzverwalter erhält in der Regel 1. von den ersten 35 000 Euro der Insolvenzmasse 40 Prozent, 2. von dem Mehrbetrag bis zu 70 000 Euro 26 Prozent, 3. von dem Mehrbetrag bis zu 350 000 Euro 7,5 Prozent, 4. von dem Mehrbetrag bis zu 700 000 Euro 3,3 Prozent, 5. von dem Mehrbetrag bis zu 35 000 000 Euro 2,2 Prozent, 6. von dem Mehrbetrag bis zu 70 000 000 Euro 1,1 Prozent, 7. von dem Mehrbetrag bis zu 350 000 000 Euro 0,5 Prozent, 8. von dem Mehrbetrag bis zu 700 000 000 Euro 0,4 Prozent, 9. von dem darüber hinausgehenden Betrag 0,2 Prozent. (2) Haben in dem Verfahren nicht mehr als 10 Gläubiger ihre Forderungen angemeldet, so soll die Vergütung in der Regel mindestens 1 400 Euro betragen. Von 11 bis zu 30 Gläubigern erhöht sich die Vergütung für je angefangene 5 Gläubiger um 210 Euro. Ab 31 Gläubiger erhöht sich die Vergütung je angefangene 5 Gläubiger um 140 Euro."
},
{
"id": "de-insvv-section-6",
"scheduleId": "de-insvv",
"sourceNormId": "BJNR220500998BJNE000902311",
"reference": "§ 3",
"title": "Zu- und Abschläge",
"text": "(1) Eine den Regelsatz übersteigende Vergütung ist insbesondere festzusetzen, wenn a) die Bearbeitung von Aus- und Absonderungsrechten einen erheblichen Teil der Tätigkeit des Insolvenzverwalters ausgemacht hat, ohne daß ein entsprechender Mehrbetrag nach § 1 Abs. 2 Nr. 1 angefallen ist, b) der Verwalter das Unternehmen fortgeführt oder Häuser verwaltet hat und die Masse nicht entsprechend größer geworden ist, c) die Masse groß war und die Regelvergütung wegen der Degression der Regelsätze keine angemessene Gegenleistung dafür darstellt, daß der Verwalter mit erheblichem Arbeitsaufwand die Masse vermehrt oder zusätzliche Masse festgestellt hat, d) arbeitsrechtliche Fragen zum Beispiel in bezug auf das Insolvenzgeld, den Kündigungsschutz oder einen Sozialplan den Verwalter erheblich in Anspruch genommen haben oder e) der Verwalter einen Insolvenzplan ausgearbeitet hat. (2) Ein Zurückbleiben hinter dem Regelsatz ist insbesondere gerechtfertigt, wenn a) ein vorläufiger Insolvenzverwalter in Verfahren tätig war, b) die Masse bereits zu einem wesentlichen Teil verwertet war, als der Verwalter das Amt übernahm, c) das Insolvenzverfahren vorzeitig beendet wird oder das Amt des Verwalters vorzeitig endet, d) die Masse groß war und die Geschäftsführung geringe Anforderungen an den Verwalter stellte, e) die Vermögensverhältnisse des Schuldners überschaubar sind und die Zahl der Gläubiger oder die Höhe der Verbindlichkeiten gering ist oder f) der Schuldner in ein Koordinationsverfahren einbezogen ist, in dem ein Verfahrenskoordinator nach § 269e der Insolvenzordnung bestellt worden ist."
},
{
"id": "de-insvv-section-7",
"scheduleId": "de-insvv",
"sourceNormId": "BJNR220500998BJNE001001125",
"reference": "§ 4",
"title": "Geschäftskosten, Haftpflichtversicherung",
"text": "(1) Mit der Vergütung sind die allgemeinen Geschäftskosten abgegolten. Zu den allgemeinen Geschäftskosten gehört der Büroaufwand des Insolvenzverwalters einschließlich der Gehälter seiner Angestellten, auch soweit diese anläßlich des Insolvenzverfahrens eingestellt worden sind. Unberührt bleibt das Recht des Verwalters, zur Erledigung besonderer Aufgaben im Rahmen der Verwaltung für die Masse Dienst- oder Werkverträge abzuschließen und die angemessene Vergütung aus der Masse zu zahlen. (2) Besondere Kosten, die dem Verwalter im Einzelfall, zum Beispiel durch Reisen, tatsächlich entstehen, sind als Auslagen zu erstatten. Für die Übertragung der Zustellungen im Sinne des § 8 Absatz 3 der Insolvenzordnung gilt Nummer 9002 des Kostenverzeichnisses zum Gerichtskostengesetz entsprechend. (3) Mit der Vergütung sind auch die Kosten einer Haftpflichtversicherung mit einer Versicherungssumme bis zu 2 000 000 Euro pro Versicherungsfall und mit einer Jahreshöchstleistung bis zu 4 000 000 Euro abgegolten. Ist die Verwaltung mit einem darüber hinausgehenden Haftungsrisiko verbunden, so sind die Kosten einer entsprechend höheren Versicherung als Auslagen zu erstatten."
},
{
"id": "de-insvv-section-8",
"scheduleId": "de-insvv",
"sourceNormId": "BJNR220500998BJNE001101301",
"reference": "§ 5",
"title": "Einsatz besonderer Sachkunde",
"text": "(1) Ist der Insolvenzverwalter als Rechtsanwalt zugelassen, so kann er für Tätigkeiten, die ein nicht als Rechtsanwalt zugelassener Verwalter angemessenerweise einem Rechtsanwalt übertragen hätte, nach Maßgabe des Rechtsanwaltsvergütungsgesetzes Gebühren und Auslagen gesondert aus der Insolvenzmasse entnehmen. (2) Ist der Verwalter Wirtschaftsprüfer oder Steuerberater oder besitzt er eine andere besondere Qualifikation, so gilt Absatz 1 entsprechend."
},
{
"id": "de-insvv-section-9",
"scheduleId": "de-insvv",
"sourceNormId": "BJNR220500998BJNE001200311",
"reference": "§ 6",
"title": "Nachtragsverteilung. Überwachung der Erfüllung eines Insolvenzplans",
"text": "(1) Für eine Nachtragsverteilung erhält der Insolvenzverwalter eine gesonderte Vergütung, die unter Berücksichtigung des Werts der nachträglich verteilten Insolvenzmasse nach billigem Ermessen festzusetzen ist. Satz 1 gilt nicht, wenn die Nachtragsverteilung voraussehbar war und schon bei der Festsetzung der Vergütung für das Insolvenzverfahren berücksichtigt worden ist. (2) Die Überwachung der Erfüllung eines Insolvenzplans nach den §§ 260 bis 269 der Insolvenzordnung wird gesondert vergütet. Die Vergütung ist unter Berücksichtigung des Umfangs der Tätigkeit nach billigem Ermessen festzusetzen."
},
{
"id": "de-insvv-section-10",
"scheduleId": "de-insvv",
"sourceNormId": "BJNR220500998BJNE001300311",
"reference": "§ 7",
"title": "Umsatzsteuer",
"text": "Zusätzlich zur Vergütung und zur Erstattung der Auslagen wird ein Betrag in Höhe der vom Insolvenzverwalter zu zahlenden Umsatzsteuer festgesetzt."
},
{
"id": "de-insvv-section-11",
"scheduleId": "de-insvv",
"sourceNormId": "BJNR220500998BJNE001403125",
"reference": "§ 8",
"title": "Festsetzung von Vergütung und Auslagen",
"text": "(1) Die Vergütung und die Auslagen werden auf Antrag des Insolvenzverwalters vom Insolvenzgericht festgesetzt. Die Festsetzung erfolgt für Vergütung und Auslagen gesondert. Der Antrag soll gestellt werden, wenn die Schlußrechnung an das Gericht gesandt wird. (2) In dem Antrag ist näher darzulegen, wie die nach § 1 Abs. 2 maßgebliche Insolvenzmasse berechnet worden ist und welche Dienst- oder Werkverträge für besondere Aufgaben im Rahmen der Insolvenzverwaltung abgeschlossen worden sind (§ 4 Abs. 1 Satz 3). (3) Der Verwalter kann nach seiner Wahl anstelle der tatsächlich entstandenen Auslagen einen Pauschsatz fordern, der im ersten Jahr 15 vom Hundert, danach 10 vom Hundert der Regelvergütung, höchstens jedoch 350 Euro je angefangenen Monat der Dauer der Tätigkeit des Verwalters beträgt. Der Pauschsatz darf 30 vom Hundert der Regelvergütung nicht übersteigen."
},
{
"id": "de-insvv-section-12",
"scheduleId": "de-insvv",
"sourceNormId": "BJNR220500998BJNE001501301",
"reference": "§ 9",
"title": "Vorschuß",
"text": "Der Insolvenzverwalter kann aus der Insolvenzmasse einen Vorschuß auf die Vergütung und die Auslagen entnehmen, wenn das Insolvenzgericht zustimmt. Die Zustimmung soll erteilt werden, wenn das Insolvenzverfahren länger als sechs Monate dauert oder wenn besonders hohe Auslagen erforderlich werden. Sind die Kosten des Verfahrens nach § 4a der Insolvenzordnung gestundet, so bewilligt das Gericht einen Vorschuss, sofern die Voraussetzungen nach Satz 2 gegeben sind."
},
{
"id": "de-insvv-section-14",
"scheduleId": "de-insvv",
"sourceNormId": "BJNR220500998BJNE001602125",
"reference": "§ 10",
"title": "Grundsatz",
"text": "Für die Vergütung des vorläufigen Insolvenzverwalters, des Sachwalters, des vorläufigen Sachwalters und des Insolvenzverwalters im Verbraucherinsolvenzverfahren gelten die Vorschriften des Ersten Abschnitts entsprechend, soweit in den §§ 11 bis 13 nichts anderes bestimmt ist."
},
{
"id": "de-insvv-section-15",
"scheduleId": "de-insvv",
"sourceNormId": "BJNR220500998BJNE001704311",
"reference": "§ 11",
"title": "Vergütung des vorläufigen Insolvenzverwalters",
"text": "(1) Für die Berechnung der Vergütung des vorläufigen Insolvenzverwalters ist das Vermögen zugrunde zu legen, auf das sich seine Tätigkeit während des Eröffnungsverfahrens erstreckt. Vermögensgegenstände, an denen bei Verfahrenseröffnung Aus- oder Absonderungsrechte bestehen, werden dem Vermögen nach Satz 1 hinzugerechnet, sofern sich der vorläufige Insolvenzverwalter in erheblichem Umfang mit ihnen befasst. Sie bleiben unberücksichtigt, sofern der Schuldner die Gegenstände lediglich auf Grund eines Besitzüberlassungsvertrages in Besitz hat. (2) Wird die Festsetzung der Vergütung beantragt, bevor die von Absatz 1 Satz 1 erfassten Gegenstände veräußert wurden, ist das Insolvenzgericht spätestens mit Vorlage der Schlussrechnung auf eine Abweichung des tatsächlichen Werts von dem der Vergütung zugrunde liegenden Wert hinzuweisen, sofern die Wertdifferenz 20 vom Hundert bezogen auf die Gesamtheit dieser Gegenstände übersteigt. (3) Art, Dauer und der Umfang der Tätigkeit des vorläufigen Insolvenzverwalters sind bei der Festsetzung der Vergütung zu berücksichtigen. (4) Hat das Insolvenzgericht den vorläufigen Insolvenzverwalter als Sachverständigen beauftragt zu prüfen, ob ein Eröffnungsgrund vorliegt und welche Aussichten für eine Fortführung des Unternehmens des Schuldners bestehen, so erhält er gesondert eine Vergütung nach dem Justizvergütungs- und -entschädigungsgesetz."
},
{
"id": "de-insvv-section-16",
"scheduleId": "de-insvv",
"sourceNormId": "BJNR220500998BJNE001802125",
"reference": "§ 12",
"title": "Vergütung des Sachwalters",
"text": "(1) Der Sachwalter erhält in der Regel 60 vom Hundert der für den Insolvenzverwalter bestimmten Vergütung. (2) Eine den Regelsatz übersteigende Vergütung ist insbesondere festzusetzen, wenn das Insolvenzgericht gemäß § 277 Abs. 1 der Insolvenzordnung angeordnet hat, daß bestimmte Rechtsgeschäfte des Schuldners nur mit Zustimmung des Sachwalters wirksam sind. (3) § 8 Abs. 3 gilt mit der Maßgabe, daß an die Stelle des Betrags von 350 Euro der Betrag von 175 Euro tritt."
},
{
"id": "de-insvv-section-17",
"scheduleId": "de-insvv",
"sourceNormId": "BJNR220500998BJNE002700125",
"reference": "§ 12a",
"title": "Vergütung des vorläufigen Sachwalters",
"text": "(1) Die Tätigkeit des vorläufigen Sachwalters wird gesondert vergütet. Er erhält in der Regel 25 Prozent der Vergütung des Sachwalters bezogen auf das Vermögen, auf das sich seine Tätigkeit während des Eröffnungsverfahrens erstreckt. Maßgebend für die Wertermittlung ist der Zeitpunkt der Beendigung der vorläufigen Eigenverwaltung oder der Zeitpunkt, ab dem der Gegenstand nicht mehr der Verfügungsbefugnis des eigenverwaltenden Schuldners unterliegt. Vermögensgegenstände, an denen bei Verfahrenseröffnung Aus- oder Absonderungsrechte bestehen, werden dem Vermögen nach Satz 2 hinzugerechnet, sofern sich der vorläufige Sachwalter in erheblichem Umfang mit ihnen befasst. Sie bleiben unberücksichtigt, sofern der Schuldner die Gegenstände lediglich aufgrund eines Besitzüberlassungsvertrages in Besitz hat. (2) Wird die Festsetzung der Vergütung beantragt, bevor die von Absatz 1 Satz 2 erfassten Gegenstände veräußert wurden, ist das Insolvenzgericht spätestens mit Vorlage der Schlussrechnung auf eine Abweichung des tatsächlichen Werts von dem der Vergütung zugrunde liegenden Wert hinzuweisen, sofern die Wertdifferenz 20 Prozent bezogen auf die Gesamtheit dieser Gegenstände übersteigt. (3) Art, Dauer und Umfang der Tätigkeit des vorläufigen Sachwalters sind bei der Festsetzung der Vergütung zu berücksichtigen. (4) Hat das Insolvenzgericht den vorläufigen Sachwalter als Sachverständigen gesondert beauftragt zu prüfen, ob ein Eröffnungsgrund vorliegt und welche Aussichten für eine Fortführung des Unternehmens des Schuldners bestehen, so erhält er gesondert eine Vergütung nach dem Justizvergütungs- und -entschädigungsgesetz. (5) § 12 Absatz 3 gilt entsprechend."
},
{
"id": "de-insvv-section-18",
"scheduleId": "de-insvv",
"sourceNormId": "BJNR220500998BJNE001904125",
"reference": "§ 13",
"title": "Vergütung des Insolvenzverwalters im Verbraucherinsolvenzverfahren",
"text": "Werden in einem Verfahren nach dem Neunten Teil der Insolvenzordnung die Unterlagen nach § 305 Absatz 1 Nummer 3 der Insolvenzordnung von einer geeigneten Person oder Stelle erstellt, ermäßigt sich die Vergütung nach § 2 Absatz 2 Satz 1 auf 1 120 Euro."
},
{
"id": "de-insvv-section-20",
"scheduleId": "de-insvv",
"sourceNormId": "BJNR220500998BJNE002003125",
"reference": "§ 14",
"title": "Grundsatz",
"text": "(1) Die Vergütung des Treuhänders nach § 293 der Insolvenzordnung wird nach der Summe der Beträge berechnet, die auf Grund der Abtretungserklärung des Schuldners (§ 287 Abs. 2 der Insolvenzordnung) oder auf andere Weise zur Befriedigung der Gläubiger des Schuldners beim Treuhänder eingehen. (2) Der Treuhänder erhält 1. von den ersten 35 000 Euro 5 vom Hundert, 2. von dem Mehrbetrag bis 70 000 Euro 3 vom Hundert und 3. von dem darüber hinausgehenden Betrag 1 vom Hundert. (3) Die Vergütung beträgt mindestens 140 Euro für jedes Jahr der Tätigkeit des Treuhänders. Hat er die durch Abtretung eingehenden Beträge an mehr als 5 Gläubiger verteilt, so erhöht sich diese Vergütung je 5 Gläubiger um 70 Euro."
},
{
"id": "de-insvv-section-21",
"scheduleId": "de-insvv",
"sourceNormId": "BJNR220500998BJNE002103125",
"reference": "§ 15",
"title": "Überwachung der Obliegenheiten des Schuldners",
"text": "(1) Hat der Treuhänder die Aufgabe, die Erfüllung der Obliegenheiten des Schuldners zu überwachen (§ 292 Abs. 2 der Insolvenzordnung), so erhält er eine zusätzliche Vergütung. Diese beträgt regelmäßig 50 Euro je Stunde. (2) Der Gesamtbetrag der zusätzlichen Vergütung darf den Gesamtbetrag der Vergütung nach § 14 nicht überschreiten. Die Gläubigerversammlung kann eine abweichende Regelung treffen."
},
{
"id": "de-insvv-section-22",
"scheduleId": "de-insvv",
"sourceNormId": "BJNR220500998BJNE002201301",
"reference": "§ 16",
"title": "Festsetzung der Vergütung. Vorschüsse",
"text": "(1) Die Höhe des Stundensatzes der Vergütung des Treuhänders, der die Erfüllung der Obliegenheiten des Schuldners überwacht, wird vom Insolvenzgericht bei der Ankündigung der Restschuldbefreiung festgesetzt. Im übrigen werden die Vergütung und die zu erstattenden Auslagen auf Antrag des Treuhänders bei der Beendigung seines Amtes festgesetzt. Auslagen sind einzeln anzuführen und zu belegen. Soweit Umsatzsteuer anfällt, gilt § 7 entsprechend. (2) Der Treuhänder kann aus den eingehenden Beträgen Vorschüsse auf seine Vergütung entnehmen. Diese dürfen den von ihm bereits verdienten Teil der Vergütung und die Mindestvergütung seiner Tätigkeit nicht überschreiten. Sind die Kosten des Verfahrens nach § 4a der Insolvenzordnung gestundet, so kann das Gericht Vorschüsse bewilligen, auf die Satz 2 entsprechend Anwendung findet."
},
{
"id": "de-insvv-section-24",
"scheduleId": "de-insvv",
"sourceNormId": "BJNR220500998BJNE002305125",
"reference": "§ 17",
"title": "Berechnung der Vergütung",
"text": "(1) Die Vergütung der Mitglieder des Gläubigerausschusses beträgt regelmäßig zwischen 50 und 300 Euro je Stunde. Bei der Festsetzung des Stundensatzes sind insbesondere der Umfang der Tätigkeit und die berufliche Qualifikation des Ausschussmitglieds zu berücksichtigen. (2) Die Vergütung der Mitglieder des vorläufigen Gläubigerausschusses für die Erfüllung der ihm nach § 56a und § 270b Absatz 3 der Insolvenzordnung zugewiesenen Aufgaben beträgt einmalig 500 Euro. Nach der Bestellung eines vorläufigen Insolvenzverwalters oder eines vorläufigen Sachwalters richtet sich die weitere Vergütung nach Absatz 1."
},
{
"id": "de-insvv-section-25",
"scheduleId": "de-insvv",
"sourceNormId": "BJNR220500998BJNE002400311",
"reference": "§ 18",
"title": "Auslagen. Umsatzsteuer",
"text": "(1) Auslagen sind einzeln anzuführen und zu belegen. (2) Soweit Umsatzsteuer anfällt, gilt § 7 entsprechend."
},
{
"id": "de-insvv-section-27",
"scheduleId": "de-insvv",
"sourceNormId": "BJNR220500998BJNE002800125",
"reference": "§ 19",
"title": "Übergangsregelung",
"text": "(1) Auf Insolvenzverfahren, die vor dem 1. Januar 2004 eröffnet wurden, sind die Vorschriften dieser Verordnung in ihrer bis zum Inkrafttreten der Verordnung vom 4. Oktober 2004 (BGBl. I S. 2569) am 7. Oktober 2004 geltenden Fassung weiter anzuwenden. (2) Auf Vergütungen aus vorläufigen Insolvenzverwaltungen, die zum 29. Dezember 2006 bereits rechtskräftig abgerechnet sind, sind die bis zum Inkrafttreten der Zweiten Verordnung zur Änderung der Insolvenzrechtlichen Vergütungsverordnung vom 21. Dezember 2006 (BGBl. I S. 3389) geltenden Vorschriften anzuwenden. (3) Auf Insolvenzverfahren, die vor dem 1. März 2012 beantragt worden sind, sind die Vorschriften dieser Verordnung in ihrer bis zum Inkrafttreten des Gesetzes vom 7. Dezember 2011 (BGBl. I S. 2582) am 1. März 2012 geltenden Fassung weiter anzuwenden. (4) Auf Insolvenzverfahren, die vor dem 1. Juli 2014 beantragt worden sind, sind die Vorschriften dieser Verordnung in ihrer bis zum Inkrafttreten des Gesetzes vom 15. Juli 2013 (BGBl. I S. 2379) am 1. Juli 2014 geltenden Fassung weiter anzuwenden. (5) Auf Insolvenzverfahren, die vor dem 1. Oktober 2020 beantragt worden sind, sind die Vorschriften dieser Verordnung in ihrer bis dahin geltenden Fassung weiter anzuwenden. (5) Auf Insolvenzverfahren, die vor dem 1. Januar 2021 beantragt worden sind, sind die bis zum 31. Dezember 2020 geltenden Vorschriften anzuwenden."
},
{
"id": "de-insvv-section-28",
"scheduleId": "de-insvv",
"sourceNormId": "BJNR220500998BJNE002600311",
"reference": "§ 20",
"title": "Inkrafttreten",
"text": "Diese Verordnung tritt am 1. Januar 1999 in Kraft."
}
],
"notes": [
"No separate fee table rows were present in the federal XML. Fee rules are represented as rule sections."
]
};
-1852
View File
File diff suppressed because one or more lines are too long
-3888
View File
File diff suppressed because one or more lines are too long
-3197
View File
File diff suppressed because one or more lines are too long
-19
View File
@@ -1,19 +0,0 @@
// Generated by scripts/generate-germany.mjs on 2026-05-14.
// Do not edit this file manually.
import type { IFeeScheduleData } from '../feeschedules.types.js';
export const GERMANY_UVGOAE_FEE_SCHEDULE_DATA: IFeeScheduleData = {
"scheduleId": "de-uv-goae",
"dataStatus": "external-source-pending",
"edition": "Source identified 2026-05-14",
"source": {
"name": "Deutsche Gesetzliche Unfallversicherung UV-GOÄ",
"url": "https://www.dguv.de",
"retrievedAt": "2026-05-14"
},
"feeRows": [],
"ruleSections": [],
"notes": [
"External accident insurance fee schedule source; not part of gesetze-im-internet federal XML corpus."
]
};
+1 -6
View File
@@ -1,11 +1,6 @@
export * from './feeschedules.types.js'; export * from './feeschedules.types.js';
export * from './feeschedules.data.js';
export { export {
GERMANY_FEE_SCHEDULE_CATALOG,
GERMANY_FEE_SCHEDULES,
} from './feeschedules.germany.js';
export * from './germany/index.js';
export {
FEE_SCHEDULE_CATALOGS,
FeeSchedules, FeeSchedules,
feeSchedules, feeSchedules,
} from './feeschedules.classes.feeschedules.js'; } from './feeschedules.classes.feeschedules.js';