Rechnungs-Tools — Extraktor & Generator
Inhaltsverzeichnis
- Übersicht
- Voraussetzungen
- Konfiguration
- Rechnungs-Extraktor
- Rechnungs-Generator
- Dateiablage
- Workflow Monatsrechnung
1. Übersicht
Zwei Python-Scripts für Rechnungsverwaltung:
| Script | Zweck |
|---|---|
~/scripts/invoice_extractor.py |
PDF-Rechnungen aus iCloud/Gmail extrahieren |
~/scripts/invoice_generator.py |
Monatsrechnung an Creative Kirche erstellen |
| Datei | Zweck |
|---|---|
~/.invoice_extractor.conf |
IMAP-Credentials (chmod 600) |
~/Documents/11 - ak/Belege Re ak/.processed_ids |
Duplikat-Tracking Extraktor |
~/Documents/11 - ak/Belege Re ak/2026/2026-00x Re AKnorr.docx |
Rechnungsvorlagen |
2. Voraussetzungen
- Python 3.9+ (macOS System-Python)
pip3 install pdfplumber python-docx docx2pdf- App-spezifische Passwörter für iCloud und Gmail
- Microsoft Word (für PDF-Export der generierten Rechnungen)
3. Konfiguration
Credentials in ~/.invoice_extractor.conf (INI-Format, chmod 600):
[icloud]
email = anknorr@me.com
password = <app-spezifisches-passwort>
[gmail]
email = anknorr@gmail.com
password = <app-spezifisches-passwort>
4. Rechnungs-Extraktor
Extrahiert PDF-Rechnungen von Anthropic, Murf.ai und Lucidchart aus E-Mail-Accounts.
Absender und Accounts
| Absender | Account | Absender-Domain | Suchbegriff |
|---|---|---|---|
| Anthropic | Gmail (anknorr@gmail.com) | mail.anthropic.com |
mail.anthropic.com |
| Murf.ai | iCloud (anknorr@me.com) | billing.murf.ai |
murf |
| Lucidchart | iCloud (anknorr@me.com) | lucidchart.com / lucid.co |
lucid |
Hinweis: iCloud IMAP-Suche erfordert bei manchen Absendern einen vereinfachten Suchbegriff (z.B. murf statt billing.murf.ai).
Durchsuchte Ordner
| Account | Ordner |
|---|---|
| iCloud | INBOX, Archive |
| Gmail | INBOX, [Google Mail]/Alle Nachrichten |
Ablauf
- IMAP-Login (SSL) zu jedem Account
- Ordner durchsuchen nach konfigurierten Absendern
- Bereits verarbeitete Mails überspringen (Message-ID Tracking)
- PDF-Anhänge extrahieren
- Rechnungsdatum aus PDF-Text parsen (pdfplumber, Seite 1)
- Fallback: E-Mail-Datum falls PDF nicht parsebar
- Speichern als
YYYY-MM-DD_Absender_Beschreibung.pdf - Ablage im Jahresordner
<Jahr>/Rechnungen/
Ausführung
python3 ~/scripts/invoice_extractor.py
Idempotent dank Message-ID-Tracking. Zum Reset: .processed_ids löschen.
Erweiterung
Neuen Absender in ACCOUNTS-Liste im Script ergänzen:
"neue-domain.com": {
"name": "Anzeigename",
"keywords": ["keyword1", "keyword2"],
"search": "suchbegriff", # optional, default = Domain
},
5. Rechnungs-Generator
Erstellt Monatsrechnungen an die Stiftung Creative Kirche basierend auf der letzten DOCX-Vorlage.
Rechnungsmuster
- Empfänger: Stiftung Creative Kirche, Pferdebachstr. 31, 58455 Witten
- Ansprechpartner: Martin Bartelworth
- Leistung: Organisations- und IT-Projekt-Beratung
- Betrag: 500 EUR (§19 UStG, keine USt)
- ReNr-Schema:
2026-001,2026-002,2026-003(fortlaufend) - Dateiname:
2026-00x Re AKnorr.docx/.pdf
Ausführung
# Standard: Rechnung für Vormonat, 500 EUR, DOCX + PDF
python3 ~/scripts/invoice_generator.py
# Bestimmter Monat
python3 ~/scripts/invoice_generator.py -m 3
# Anderer Betrag
python3 ~/scripts/invoice_generator.py -m 2 -b 600
# Nur DOCX oder nur PDF
python3 ~/scripts/invoice_generator.py --docx
python3 ~/scripts/invoice_generator.py --pdf
Was passiert
- Letzte DOCX-Rechnung im Jahresordner als Vorlage laden
- RechnungsNr hochzählen
- Datum auf heute setzen
- Leistungsmonat anpassen
- DOCX speichern + PDF-Export via Microsoft Word (AppleScript)
Versand
Mail-Entwurf wird per IMAP in iCloud Drafts erstellt:
- An: martin.bartelworth@creative-kirche.de
- Betreff: Vergütung ak SCK <Monat> <Jahr>
- Anhang: PDF der Rechnung
- Text: Kurztext nach bisherigem Muster
Entwurf in Mail.app prüfen und manuell senden.
6. Dateiablage
~/Documents/11 - ak/Belege Re ak/
├── .processed_ids
├── 2023/Rechnungen/
│ └── 2023-03-07_Lucidchart_Rechnung.pdf
├── 2024/Rechnungen/
│ └── 2024-03-16_Lucidchart_Rechnung.pdf
├── 2025/Rechnungen/
│ ├── 2025-02-05_Lucidchart_Rechnung.pdf
│ ├── 2025-12-10_Murf-AI_Rechnung.pdf
│ └── 2025-12-30_Lucidchart_team.pdf
└── 2026/
├── 2026-001 Re AKnorr.docx/.pdf
├── 2026-002 Re AKnorr.docx/.pdf
├── 2026-003 Re AKnorr.docx/.pdf
├── Auslagenerstattung/
└── Rechnungen/
├── 2026-01-10_Murf-AI_Rechnung.pdf
├── 2026-02-16_Anthropic_Claude-Pro.pdf
└── ...
7. Workflow Monatsrechnung
Monatlicher Ablauf (auf Zuruf via Claude Code):
python3 ~/scripts/invoice_generator.py— DOCX + PDF erstellen- PDF prüfen
- Mail-Entwurf in iCloud Drafts erstellen (IMAP)
- In Mail.app prüfen und senden
8. Bear-Sync
Dokumentation wird via ~/bear_sync_doku.py nach Bear synchronisiert.
- Datei auf raspip5:
/home/ak/dokumentation/22_invoice_extractor.md - Bear-Titel: Rechnungs-Tools — Extraktor & Generator
- Tags:
#IT/Tools #IT/Finanzen - FILE_MAP-Eintrag in
bear_sync_doku.pyvorhanden
Tag-Verknüpfungen
bear_sync_doku.py legt neben dem Tag-Text im Notizinhalt auch die DB-Einträge in ZSFNOTETAG und Z_5TAGS an. Dadurch erscheinen Tags in der Bear-Seitenleiste. Parent-Tags (z.B. IT für IT/Tools) werden automatisch erstellt.