Automatisierte Verarbeitung von Viseca-Kreditkartenabrechnungen (Raiffeisen): PDF-Extraktion via Azure OpenAI GPT-4o, Belegkontrolle & Erinnerung. Entwickelt für Joker IT AG.
Diese Frappe-App ist speziell für Viseca Payment Services Kreditkartenabrechnungen entwickelt (wie sie über Raiffeisen, diverse Kantonalbanken und weitere Schweizer Banken ausgestellt werden). Sie automatisiert den gesamten Prozess der Belegkontrolle:
- PDF hochladen – Viseca-Abrechnung als PDF in ERPNext hochladen
- AI-Extraktion – GPT-4o Vision extrahiert alle Transaktionen automatisch (inkl. Fremdwährungen, Mehrfach-Karteninhaber)
- Duplikaterkennung – PDF-Hash, Abrechnungsdatum und Transaktions-Matching verhindern doppelte Verarbeitung
- Belegkontrolle – Karteninhaber bestätigen Belege direkt in ERPNext
- Erinnerungen – Automatische E-Mails und Teams-Nachrichten bei fehlenden Belegen
- Eskalation – Automatische Eskalation an die Finanzabteilung nach Fristablauf
Die App ist auf das Layout von Viseca-Abrechnungen optimiert:
- Mehrseitige PDF mit mehreren Karteninhaber-Blöcken
- Fremdwährungstransaktionen (USD, EUR) mit Umrechnungskurs und Bearbeitungsgebühr
- Zwischensummen und Überträge pro Karte
- Kartenkontonummer und PayNet-Nummer im Header
- ERPNext v16 / Frappe Framework v16
- Python 3.12+ (empfohlen: 3.14)
- Node.js 24 LTS
- Azure OpenAI Service mit GPT-4o Deployment
- Optional: Microsoft Teams (für Webhook-Benachrichtigungen)
# Auf dem Frappe Cloud Bench
bench get-app https://github.com/jokerit/credit_card_reconciliation.git
bench --site DEIN-SITE install-app credit_card_reconciliation
bench --site DEIN-SITE migratecd ~/frappe-bench
bench get-app https://github.com/jokerit/credit_card_reconciliation.git
bench --site DEIN-SITE install-app credit_card_reconciliation
bench --site DEIN-SITE migrate
bench restartFalls openai und pymupdf nicht automatisch installiert werden:
cd ~/frappe-bench
bench pip install openai pymupdfGehe zu: Kreditkartenabrechnung > Credit Card Settings
| Feld | Beschreibung |
|---|---|
| Azure OpenAI Endpoint | https://dein-resource.openai.azure.com/ |
| Azure OpenAI API Key | Dein API Key |
| Deployment Name | gpt-4o |
| Teams Webhook URL | Optional: Teams Incoming Webhook |
| Erinnerung nach X Tagen | Standard: 5 |
| Eskalation nach X Tagen | Standard: 14 |
| E-Mail Finanzabteilung | Für Eskalations-E-Mails |
Gehe zu: Kreditkartenabrechnung > Credit Card Cardholder
Erstelle für jeden Karteninhaber einen Eintrag:
| Name | Karte (letzte 4) | |
|---|---|---|
| Matthias | 5366 | matthias@joker-it.ch |
| Knut | 5374 | knut@jokerit.ch |
| Henry | 5000 | henry@jokerit.ch |
Hinweis: Falls ein Karteninhaber beim Extrahieren nicht gefunden wird, erstellt die App automatisch einen neuen Eintrag mit einer Platzhalter-E-Mail.
- Gehe zu: Kreditkartenabrechnung > Credit Card Statement > + Neu
- Setze das Abrechnungsdatum
- Lade die PDF-Abrechnung hoch
- Speichern
- Klicke auf Aktionen > PDF extrahieren
- Warte 30–60 Sekunden – die Transaktionen werden automatisch erstellt
Karteninhaber können Belege auf zwei Arten bestätigen:
Direkt auf der Transaktion:
- Öffne eine Transaktion
- Klicke Aktionen > Beleg bestätigen oder lade einen Beleg hoch
- Optional: Aktionen > Kein Beleg nötig mit Begründung
In der Listenansicht:
- Gehe zu Credit Card Transaction
- Filtere nach Karteninhaber und Status "Offen"
- Wähle Transaktionen aus und verwende Bulk-Aktionen
Automatisch: Der Scheduler sendet täglich E-Mails an Karteninhaber mit offenen Belegen (nach Ablauf der konfigurierten Frist).
Manuell: Auf dem Credit Card Statement: Aktionen > Erinnerungen senden
| DocType | Beschreibung |
|---|---|
| Credit Card Settings | Singleton: API-Keys, Schwellwerte, Templates |
| Credit Card Cardholder | Mapping: Name ↔ Kartennummer ↔ E-Mail |
| Credit Card Statement | Hochgeladene PDF-Abrechnung mit Fortschritt |
| Credit Card Transaction | Einzelne Transaktion mit Belegstatus |
Entwurf → Wird verarbeitet → Extrahiert → In Prüfung → Abgeschlossen
Offen → Bestätigt / Erinnerung gesendet → Erledigt / Kein Beleg nötig
| Endpoint | Beschreibung |
|---|---|
extraction.extract_statement |
PDF extrahieren (whitelisted) |
reminder.send_reminders_for_statement |
Erinnerungen senden (whitelisted) |
transactions.bulk_confirm_receipts |
Bulk-Bestätigung (whitelisted) |
transactions.get_statement_summary |
Zusammenfassung abrufen (whitelisted) |
Die App unterstützt Microsoft Teams via Incoming Webhook:
- Erstelle einen Incoming Webhook in deinem Teams-Kanal
- Kopiere die Webhook-URL in die Credit Card Settings
- Aktiviere "Teams-Benachrichtigungen aktiviert"
Die App sendet Adaptive Cards mit den offenen Positionen und einem Link zu ERPNext.
- PDF-Grösse: Sehr grosse Abrechnungen (>10 Seiten) können das Token-Limit von GPT-4o erreichen
- Frappe Cloud:
pymupdfist möglicherweise nicht vorinstalliert – die App fällt dann auf PDF-Direkt-Upload zurück - Teams Adaptive Cards: Maximale Payload-Grösse begrenzt die Anzahl Transaktionen in der Card
MIT