Metadata-Version: 2.4
Name: euer-datev
Version: 0.3.0
Summary: Offizieller DATEV-Export (EXTF 700) & Kanzlei-Schnittstelle für euer
Author: Markus
Project-URL: Documentation, https://euer-buchhaltung.de/datev
Project-URL: Changelog, https://euer-buchhaltung.de/datev/versionshinweise
Keywords: datev,euer,buchhaltung,skr03,skr04,kanzlei,steuerberater,extf
Classifier: Environment :: Console
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Office/Business :: Financial :: Accounting
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == "dev"
Requires-Dist: coverage>=7.10; extra == "dev"
Requires-Dist: ruff>=0.8; extra == "dev"
Dynamic: license-file

# euer-datev: DATEV-Export für euer

`euer-datev` ist ein optionales Add-on für die lokale EÜR-Buchhaltung mit `euer`. Es erzeugt einen DATEV-EXTF-700-Buchungsstapel für SKR 03 oder 04. Beim ZIP-Export werden vorhandene Belege und `PRUEFPROTOKOLL.txt` mitgegeben. Die Kanzlei muss Import, Kontierung, Steuerwirkung und Belegzuordnung in ihrer DATEV-Zielversion prüfen; ein erfolgreicher lokaler Export ist keine Importabnahme.

Die [öffentlichen Versionshinweise](https://euer-buchhaltung.de/datev/versionshinweise)
erklären Änderungen und nötige Schritte beim Upgrade bestehender Installationen.

## Installation

```bash
# Getrennte pipx-Installationen
pipx install euer
pipx install euer-datev
euer datev --help

# Gemeinsames Plugin in einer vorhandenen euer-pipx-Installation
pipx inject euer euer-datev

# Gemeinsame uv-Installation
uv tool install --with euer-datev euer

# Homebrew
brew install curiousmarkus/euer/euer curiousmarkus/euer/euer-datev
```

`euer datev` nutzt das gemeinsame Plugin, falls vorhanden; andernfalls leitet Core an das externe `euer-datev` im `PATH` weiter. `euer-datev` kann auch direkt aufgerufen werden. Beide Installationen müssen zum Aufruf über Core im `PATH` sichtbar sein. Der Projektpfad aus `.euer/config.toml` oder `--db PFAD` bestimmt die Datenbank.

## Einrichtung und Export

```bash
euer datev doctor --year 2026 --format json
euer datev init-skr --skr 03
euer datev validate --year 2026 --format json
euer datev export --year 2026 --format zip --report-format json -o DATEV_EXTF_2026.zip
```

`doctor` zeigt Config-Herkunft, DB-/Schema-Stand, Belegpfad, Konten und fehlende Kanzleidaten. `init-skr --write PFAD` übernimmt nach Prüfung die Kontenvorlage idempotent. Kanzleinummern und Mandantenname müssen ausdrücklich eingerichtet sein. Werte wie `1001` und `10001` sind Beispiele und nur zulässig, wenn sie tatsächlich vom Nutzer bestätigt wurden.

In der Config heißt der kanonische Abschnitt für Zahlungskonten `[datev.accounts]`:

```toml
[datev]
berater_nummer = "2222"
mandanten_nummer = "33333"
mandanten_name = "Beispielbetrieb"
skr = "03"

[datev.accounts]
"Geschäftskonto" = "1200"
```

Globale und Projekt-Config werden ohne `--config` feldweise zusammengeführt. `--config PFAD` wählt eine vollständige alternative Config. `validate` und `export` unterstützen dieselben Zeitraumfilter `--year`, `--month`, `--quarter`, `--from-date`, `--to-date` und Overrides `--skr`, `--berater`, `--mandant`. `--db` und `--config` funktionieren vor und nach dem Unterbefehl. `export --format csv` erstellt nur eine CSV; `zip` enthält zusätzlich Belege und Prüfprotokoll.

`ready` gibt Exit 0. Fehler geben Exit 1. `needs_review` oder `empty` geben Exit 2. Ein regulärer Export erfordert `ready`. `--allow-incomplete` kann ausschließlich fehlende Belege ausdrücklich akzeptieren und erzeugt ein markiertes Teilpaket mit Exit 2. `--force` wird abgewiesen. `--demo` erzeugt einen gekennzeichneten Testexport mit Beispiel-Kanzleidaten und umgeht keine fachlichen Fehler oder Lizenzgrenzen. In JSON-Ausgabe stehen Bericht oder Laufzeitfehler allein auf stdout; Syntaxfehler von `argparse` stehen mit Exit 2 auf stderr.

Fehlt bei einer Ausgabe das gespeicherte Zahlungskonto, meldet die Validierung
`MISSING_PAYMENT_ACCOUNT` und gibt kein `ready`. Bei Einnahmen ohne eigenes
Zahlungskontofeld ist die automatische Übernahme nur für ein ausdrücklich
konfiguriertes `[datev.accounts].bank` vorgesehen. Der Core-Altwert
`rc_type="unclassified"` blockiert den Export bis zur Klassifikation.
Relative Pfade aus `.euer/config.toml` beziehen sich auf den Projektroot.
Auch CSV-Testexporte tragen `TESTEXPORT` in der Stapelbezeichnung.

Die CSV enthält relative `Beleglink`-Pfade zu Dateien im ZIP. Dateinamen werden
vor der Kollisionsprüfung für CSV und ZIP gemeinsam nach den CP1252-Zeichenregeln
normalisiert. Das ist eine manuelle Zuordnungshilfe und keine automatische DATEV-DMS- oder Unternehmen-online-Verknüpfung. Das Protokoll unterscheidet Quellvorgänge und DATEV-Zeilen sowie Quellvolumen, DATEV-Zeilenvolumen und einen EÜR-Abgleich, soweit dieser fachlich geprüft ist. Bei unbekannten Steuerfällen wird kein EÜR-Ergebnis behauptet.

Die ausführliche [Agenten- und CLI-Referenz](../euer/docs/skills/euer-buchhaltung/references/datev_export.md) beschreibt Diagnose, Belegprüfung, Kontierung und Upgrade. Die lokale [DATEV-Formatspezifikation](docs/DATEV_SPECIFICATION.md) dokumentiert den erzeugten Stapel.

## Upgrade von 0.2.0

Frühere Exporte mit falscher Ausgabenrichtung, unvollständiger Config oder Belegsuche neu erzeugen. Schon importierte Stapel mit der Kanzlei prüfen und nicht blind erneut einlesen. Exit-Codes, Config-Vorrang und die Entfernung von `--force` können bestehende Automationen beeinflussen. Der tatsächliche Import in die vereinbarte DATEV-Zielversion bleibt eine eigene Abnahme.

## Lizenz

Ohne Lizenz sind Probeexporte von höchstens fünf Quellvorgängen möglich. Jahreslizenzen decken die freigeschalteten Steuerjahre ab; die tatsächlichen Buchungsjahre werden auch ohne `--year` geprüft. Erwerb und Aktivierung: [euer-buchhaltung.de/datev](https://euer-buchhaltung.de/datev).

Proprietary Commercial Software. Copyright (c) 2026 Markus Keller. Alle Rechte vorbehalten.
