PDF-Import von Scalable Capital Bank

Wenn alles i. O. ist, sollte dies ab dem nächsten Release mit dabei sein.

Gruß
Alex

2 Likes

Hi, ich habe vom neuen Scalable den folgenden PDF Einlieferungsbeleg nach Umzug von Einzelpositionen von einem Trade Republic Depot. Vielleicht ist das interessant, da der aktuelle Scalable Importer die Einlieferungen nicht erkennt.

Den Einlieferungsbelege stellt das neue Scalable in der Maibox als Einlieferungsbeleg PDF zur Verfügung, es sind aber keine Kurswerte drin. Nur die Stückzahlen.

Diesen hänge ich mal als anonymisierten Debug an.

20260219 Einlieferungsbeleg Broker Scalable Capital.pdf.txt (1,4 KB)

Moin,

interessant ja, damit man ihn “ablehnen” kann. Aber importierbar wird der nie, weil du musst ja auch aus dem alten Depot rausbuchen. Da werden immer Infos fehlen.

2 Likes

Ich habe mit Colab ein Script für das Einlesen des PDF von Scalable erstellen lassen. Klappt. Stand 25.02.26

hier daas Scrippt von Gimini

=== SCALABLE TO PP: V19 (PREMIUM SAMMELDATEI) ===

!pip install pdfplumber -q
import pdfplumber
import pandas as pd
import re
from google.colab import files
from datetime import datetime

print(“Lade alle Scalable-PDFs für den PP-Import hoch:”)
uploaded = files.upload()

def extract_transaction_v19(pdf_path):
with pdfplumber.open(pdf_path) as pdf:
text_p1 = pdf.pages[0].extract_text() or “”
data = {‘Datum’: datetime.now().strftime(‘%d.%m.%Y’), ‘Uhrzeit’: ‘12:00’, ‘ISIN’: ‘Unbekannt’, ‘Typ’: ‘Kauf’, ‘Stück’: ‘0’, ‘Kurs’: ‘0’, ‘Wert’: ‘0’, ‘Notiz’: ‘’}
data[‘Typ’] = “Verkauf” if “Verkauf” in text_p1 else “Kauf”
isin_match = re.search(r’[A-Z]{2}[0-9A-Z]{10}‘, text_p1)
if isin_match: data[‘ISIN’] = isin_match.group(0)
dt_match = re.search(r’(\d{2}.\d{2}.\d{4})‘, text_p1)
if dt_match: data[‘Datum’] = dt_match.group(1)
zeit_match = re.search(r’(\d{2}:\d{2}(?::\d{2})?)‘, text_p1)
if zeit_match: data[‘Uhrzeit’] = zeit_match.group(1)
stk_match = re.search(r’(\d+[.,]\d+)\sStk’, text_p1)
betrag_match = re.search(r’(?:Betrag|Belastung|Gutschrift|Gesamtbetrag)\s+(\d+[\d.,]
\d+)\s*EUR’, text_p1, re.IGNORECASE)
if stk_match and betrag_match:
stk_val = float(stk_match.group(1).replace(‘.’, ‘’).replace(‘,’, ‘.’))
total_val = float(betrag_match.group(1).replace(‘.’, ‘’).replace(‘,’, ‘.’))
kurs_calc = total_val / stk_val if stk_val > 0 else 0
data[‘Stück’] = f"{stk_val:.4f}“.replace(‘.’, ‘,’)
data[‘Kurs’] = f”{kurs_calc:.4f}“.replace(‘.’, ‘,’)
data[‘Wert’] = f”{total_val:.2f}“.replace(‘.’, ‘,’)
geb_match = re.search(r’Ordergebühren\s+(-?\d+[.,]\d+)', text_p1)
geb_val = geb_match.group(1) if geb_match else “0,00”
data[‘Notiz’] = f"Gebühr: {geb_val}”
return data

all_data_list =
isins_found =
for f_path in uploaded.keys():
try:
csv_dict = extract_transaction_v19(f_path)
if csv_dict[‘ISIN’] != ‘Unbekannt’:
all_data_list.append(csv_dict)
isins_found.append(csv_dict[‘ISIN’])
except: continue

if all_data_list:
df_all = pd.DataFrame(all_data_list)
df_all = df_all[[‘Datum’, ‘Uhrzeit’, ‘ISIN’, ‘Typ’, ‘Stück’, ‘Kurs’, ‘Wert’, ‘Notiz’]]
sammel_name = f"SAMMEL_von_{isins_found[0]}bis{isins_found[-1]}.csv"
df_all.to_csv(sammel_name, sep=‘;’, index=False, encoding=‘utf-8-sig’)
files.download(sammel_name)

Ich wähle depotumsätze. Durch die Spalte Typ, (Kauf oder Verkauf) wird es doch aus dem Depot ein oder ausgebucht. Also bis jetzt hat es geklappt. Auch der Kontostand des Referenzkontos stimmt.

Auf was genau beziehst du dich hier?

@Jo92 spricht vom pdf import. Dein Beispiel betrifft den csv import.

Das script liest die PDF von Scalable aus und erstellt eine importierbare CSV für PP. Das sogar im Stappel. Ich habe 15 PDFs auf einmal ausgelesen und das Script hat mir eine eine CSV erstellt aus der alle Verkäufe und Käufe korrekt in PP importiert wurden. Die Gebühren waren wohl zu schwierig, daher notiert das script die Gebühren in das Notizfeld um sie händisch nachzutragen

Sorry ich kann dir nicht folgen.
@Jo92s Antwort galt dem Import des pdfs. Der Importer kann damit nicht umgehen und wird es auch in Zukunft nicht können.
Der Einlieferungsbeleg enthält keinerlei Informationen, von wo die Aktien stammen. Woher sollte der Importer dann wissen von wo er sie umbuchen soll?

Er spricht wohl hiervon:

Hat wohl zulange mit KIs gearbeitet, das führt dazu das man kontextlos Text irgendwo rein kippt.

Wozu sollte ich aus den PDFs eine CSV machen um dann die CSV in PP zu importieren, wenn PP doch direkt die PDFs einlesen kann? Wo ist der Nutzen?

Und wo bekommst Du die PDFs her? (Um mal gleich dezent auf mein PDF-Downloader für SC hinzuweisen…)

1 Like

Du hast recht der Import der PDF ist nicht möglich. Daher gehe ich den Umweg und lasse die PDF durch Colab (Google App) mit diesem Skript auslesen. Was sehr schwierig war. Colab generiert mir dann aus der PDF eine CSV Datei. Diese CSV Datei kann ich anschließend problemlos in PP importieren. Geschreiben hat mir dieses Skript Gimini ( Ebenfalls eine Google App)

Weil sich die PDF nicht einlesen läßt. Ja du hast recht. Ich habe Lange mit der KI gearbeitet, nicht zu lange, denn für mich hat es sich mehr als gelohnt

Ich bin mir nicht sicher ob ich wirklich verstehe was du tust, bzw. tun willst.

Die angegebene pdf kann nur aus einem Grund nicht importiert werden → Depot Umzug.
Die anderen Transaktionen funktionieren, hier braucht es also kein switch zu csv.

Welche pdfs wandelt dein Script jetzt in ein CSV um?

Die PDF kann man nicht einlesen. Ich lasse die PDF von Colab auslesen, Colab macht eine csv daraus.

So lese ich 10 Abrechnungen aufeinmal ein.

Dann stell bitte ein Debug hier rein. Normaler Verkaif wird unterstützt. Hier gibts keinen Grund fur deinen halbautomatischen workarround.

1 Like

habe ich auch gerade gesehen. Habe ich mir die ganze Arbeit ( 3 Tage ) umsonst gemacht. Habe ich wohl beim ersten import einen Fehler gemacht und habe nach einer anderen Lösung gesucht. Habe nach deinem Post versucht eine PDF Abrechnung zu immportieren. Hat ganz normal geklappt. Soll ich meinen Post wieder löschen?

Ich dachte die KI hat die Arbeit gemacht. Jetzt hast Du vergebens in den USA die Gasturbinen zum glühen gebracht.

2 Likes

Nein musst du nicht, alles gut.

1 Like

Hab’ gerade eine Dividenden-Import vorgenommen, wobei die 1[Punkt]200 Stück als 1[Komma]2 Stück übernommen wurden.

```
PDFBox Version: 3.0.6
Portfolio Performance Version: 0.82.1
System: linux | x86_64 | 21.0.10 | Flathub
-----------------------------------------
Scalable Capital Bank GmbH • Seitzstraße 8e • 80538 München • Deutschland 
tvCd XVBmzCe
RU LVxkVkYL 3 
39291 PSQcEzmWQWNp Datum 19.03.2026
Deutschland Seite 1 / 2
Dividende 
Für 01.07.2025 - 30.06.2026 
Berechtigtes Wertpapier LG Eur.x-UK Qual.Div.E.W.U.ETF 
ISIN IE00BMYDM919 
Berechtigte Anzahl 1.200 
Ex Tag 12.03.2026 
Verrechnungskonto we30463852214989319215 (DEUTDEFFXXX) 
Kontobewegung 
Buchung Wertstellung Typ Betrag / Stk. Berechtigte Anzahl Gesamt 
19.03.2026 20.03.2026 Gutschrift 0,03 EUR 1.200 36,60 EUR 
Steuern -6,75 EUR
Gesamtbetrag 29,85 EUR
Bitte beachten Sie Ihre eventuelle Meldepflicht nach § 67 AWV. Einkünfte aus Kapitalvermögen im Sinne von § 20 EStG sind
einkommensteuerpflichtig. 
Ermittlung steuerrelevante Erträge
Typ Anmerkung Betrag
Gewinn oder Verlust 36,60 EUR
Teilfreistellung 30 % -10,98 EUR
Zu versteuern 25,62 EUR
Scalable Capital Bank GmbH HRB 217778 Geschäftsführer: Aufsichtsrat: Seite 
Seitzstraße 8e Amtsgericht München Florian Prucker, Martin Krebs, Patrick Olson (Vorsitzender) 
80538 München USt.-Id. Nr.: DE300434774 Dirk Franzmeyer 1 / 2
Dividende
Anfallende Steuern 
Typ Betrag
Kapitalertragsteuer 6,40 EUR
Solidaritätszuschlag 0,35 EUR
Anfallende Steuern 6,75 EUR
Scalable Capital Bank GmbH HRB 217778 Geschäftsführer: Aufsichtsrat: Seite 
Seitzstraße 8e Amtsgericht München Florian Prucker, Martin Krebs, Patrick Olson (Vorsitzender) 
80538 München USt.-Id. Nr.: DE300434774 Dirk Franzmeyer 2 / 2

``` 

Die PDFs zur “Reklassifizierung einer Ausschüttung” lassen sich nicht importieren. Habe die Änderungen manuell zusammengefasst und als eine steuerliche Buchung erfasst. Bei mir ging es nur um die Aktie von realty income. Ich weiß aber nicht wie man das eigentlich richtig bucht, denn es geht um alle Dividendenzahlungen rückwirkend für ein Jahr.

Hierzu das Schreiben von scalable capital:

Anpassung der steuerlichen Behandlung von US Dividenden

in 2025 haben Sie Dividenden für US-amerikanische Wertpapiere erhalten. Nach Abschluss eines Steuerjahres passen einige US-Emittenten die Besteuerung von Dividenden des Vorjahres rückwirkend an. Um diese steuerliche Änderung für Ihre bereits ausgezahlten Dividenden abzuwickeln, werden wir in den kommenden Tagen bereits gezahlte Dividenden stornieren und mit angepasster Besteuerung auszahlen.

Bitte beachten Sie, dass nicht alle US Dividenden von einer Anpassung der steuerlichen Behandlung betroffen sind.

Die Anpassungen werden automatisch durchgeführt. Es besteht kein Handlungsbedarf für Sie.

Antworten auf häufig gestellte Fragen hierzu finden Sie in unseren FAQs.

Mit freundlichen Grüßen
Ihr Scalable Capital Team

PDFBox Version: 3.0.6
Portfolio Performance Version: 0.82.1
System: macosx | aarch64 | 21.0.5+11-LTS | Azul Systems, Inc.
-----------------------------------------
Scalable Capital Bank GmbH • Seitzstraße 8e • 80538 München • Deutschland 
tCDcq KafhHiy ynfMrApPH
tjkooEygAZ 1 
75347 RHOAywCCpuPqL Datum 07.04.2026
Deutschland Seite 1 / 2
Reklassifizierung einer Ausschüttung 
Für 01.10.2025 - 30.09.2026 
Berechtigtes Wertpapier Realty Income Corp. 
ISIN US7561091049 
Berechtigte Anzahl 26,358187 
Ex Tag 28.11.2025 
Verrechnungskonto XC16114109334762597832 (DEUTDEFFXXX) 
Kontobewegung 
Buchung Wertstellung Typ Betrag / Stk. Berechtigte Anzahl Gesamt 
Wechselkurs 
07.04.2026 08.04.2026 Gutschrift 0,09063285 USD 26,358187 2,04 EUR 
USD / EUR 1,1732 
Steuern -0,54 EUR
Gesamtbetrag 1,50 EUR
Ermittlung steuerrelevante Erträge
Typ Betrag
Gewinn oder Verlust 2,04 EUR
Zu versteuern 2,04 EUR
Scalable Capital Bank GmbH HRB 217778 Geschäftsführer: Aufsichtsrat: Seite 
Seitzstraße 8e Amtsgericht München Florian Prucker, Martin Krebs, Patrick Olson (Vorsitzender) 
80538 München USt.-Id. Nr.: DE300434774 Dirk Franzmeyer,
Andreas Schranzhofer 1 / 2
Reklassifizierung einer Ausschüttung 
Anfallende Steuern 
Typ Betrag
Kapitalertragsteuer 0,51 EUR
Solidaritätszuschlag 0,03 EUR
Anfallende Steuern 0,54 EUR
Scalable Capital Bank GmbH HRB 217778 Geschäftsführer: Aufsichtsrat: Seite 
Seitzstraße 8e Amtsgericht München Florian Prucker, Martin Krebs, Patrick Olson (Vorsitzender) 
80538 München USt.-Id. Nr.: DE300434774 Dirk Franzmeyer,
Andreas Schranzhofer 2 / 2

Das ist das “gewünschte” Verhalten, da der Importer zum Zeitpunkt des ausführens nicht weiß was er wie tun sollte.

Wie du das am Ende für dich verbuchst, ist ein kontrovers und viel diskutiertes Thema. Stichwort: Storno verbuchen.