Anleitung

Guide

IBKR Flex Query einrichten Set up an IBKR Flex Query

Die Activity Flex Query liefert ISINs für jeden Trade und ermöglicht damit eine vollständig korrekte KESt-Berechnung. Einmalig einrichten — danach jedes Jahr in wenigen Sekunden herunterladen.

The Activity Flex Query includes ISINs on every trade row, enabling a fully accurate KESt calculation. Set it up once — then download in seconds each year.

⏱ ca. 10 Minuten einmalig ⏱ ~10 min one-time setup 📱 IBKR App (iOS / Android) 📱 IBKR App (iOS / Android)

Klappt die Einrichtung nicht? Standard Activity Statement verwenden — weniger präzise, aber funktioniert sofort.

Setup not working? Use the standard Activity Statement — less precise, but works right away.

Warum nicht einfach den Standard Activity Statement verwenden?

Why not just use the standard Activity Statement?

Der normale Activity Statement enthält keine ISINs auf Trade-Zeilen. Ohne ISIN kann KapFrei inländische und ausländische Wertpapiere bei Kursgewinnen (KZ 862 / KZ 994) nicht immer korrekt zuordnen. Die Flex Query löst das — alle anderen Daten (Dividenden, Zinsen) sind in beiden Formaten vollständig.

The standard Activity Statement does not include ISINs on trade rows. Without ISINs, KapFrei cannot always correctly classify domestic vs. foreign securities in capital gains (KZ 862 / KZ 994). The Flex Query fixes this — all other data (dividends, interest) is complete in both formats.

Zur Flex Query navigieren

Navigate to Flex Queries

1

IBKR App öffnen → (3 Striche) oben links antippen

Open the IBKR app → tap (hamburger menu) top left

Das Hauptmenü öffnet sich. Nach unten scrollen zu Statements & Tax.

The main menu opens. Scroll down to Statements & Tax.

IBKR Hauptmenü mit Statements & Tax
2

Statements & Tax antippen

Tap Statements & Tax

Du siehst nun eine Liste mit Activity Statements, Trade Reports usw.

You now see a list: Activity Statements, Trade Reports, etc.

Statements & Tax Menü
3

Activity Statements antippen → Dialog mit schließen

Tap Activity Statements → close the dialog with

Dieser Dialog ist für den Standard Activity Statement — den brauchen wir nicht. Das ✕ oben rechts schließen.

This dialog is for the standard Activity Statement — we don't need it here. Close with the ✕ top right.

Activity Statement Dialog schließen
4

Tab Flex Queries oben antippen

Tap the Flex Queries tab at the top

Jetzt siehst du den Bereich „Activity Flex Query" mit einem +-Button.

You now see the "Activity Flex Query" section with a + button.

Flex Queries Tab auswählen
Activity Flex Query + Button
5

+ antippen → Query Name eingeben

Tap + → enter a query name

Beliebiger Name, z.B. KapFrei-Export

Any name works, e.g. KapFrei-Export

Query Name eingeben

Sections auswählen

Select sections

Im Bereich „Sections (Select Multiple)" genau diese 4 Sections antippen:

In the "Sections (Select Multiple)" area, tap exactly these 4 sections:

IBKR auf Deutsch? Falls deine IBKR-App auf Deutsch eingestellt ist, heißen die Abschnitte etwas anders als hier gezeigt — die deutschen Bezeichnungen sind jeweils in Klammern ergänzt. Die Screenshots zeigen die englische Oberfläche; alle Felder sind inhaltlich identisch.
Cash Report
DE: Barbericht / Barübersicht / Kassenbestandsbericht
Cash Transactions
DE: Barmitteltransaktionen / Bargeldtransfers
Open Positions
DE: Offene Positionen
Trades
DE: Transaktionen
Sections: Cash Report und Cash Transactions auswählen
Sections: Open Positions und Trades auswählen

Jede Section konfigurieren

Configure each section

Jede Section per Antippen öffnen und die unten aufgeführten Felder und Optionen auswählen.

Tap each section to open it and select the fields and options listed below.

Trades (DE: Transaktionen)

Option (Level of Detail)

Option (Level of Detail)

Execution ✓

Felder aktivieren

Enable fields

Asset Class Symbol Description ISIN Date/Time Trade Date Exchange Quantity TradePrice Trade Money Proceeds Cost Basis Realized P/L Buy/Sell IB Commission IB Commission Currency
Trades Felder: Asset Class, Symbol, ISIN
Trades Felder: Datum, Quantity, Proceeds, Commission
Trades Felder: Cost Basis, Realized P/L, Buy/Sell
Trades Felder: Ende der Liste mit Save-Button — keine weiteren Felder angehakt

Cash Transactions (DE: Barmitteltransaktionen)

Optionen — alle vorausgewählten Haken belassen (Standard)

Options — keep all pre-selected checkmarks (default)

Dividends ✓ Payment in Lieu of Dividends ✓ Withholding Tax ✓ 871(m) Withholding ✓ Broker Interest Received ✓ Broker Interest Paid ✓ Bond Interest Received ✓ Bond Interest Paid ✓ Price Adjustments ✓ Commission Adjustments ✓ … (alle weiteren Standard-Optionen) ✓

Deutsche Bezeichnungen: Dividenden · Quellensteuer · Erhaltene Broker-ZinsenBezeichnung kann geringfügig abweichen

Sub-Option: Detail ✓ (DE: Detail / Detailliert — Bezeichnung kann geringfügig abweichen) auswählen, nicht Summary / Zusammenfassung

Sub-option: select Detail ✓ (not Summary)

Felder aktivieren

Enable fields

Currency Asset Class Symbol Description Conid ISIN Date/Time Amount Type Transaction ID

Deutsche Feldbezeichnungen: Währung (Currency) · Beschreibung (Description) · Datum/Uhrzeit (Date/Time) · Betrag (Amount)

Cash Transactions Optionen
Cash Transactions weitere Optionen und Felder
Cash Transactions Felder: Date/Time, Amount, Type
Cash Transactions Felder: ISIN, Date/Time, Amount, Type ausgewählt

Open Positions (DE: Offene Positionen)

Option

Option

Summary ✓

(nicht „Lot" — das würde zu vielen Zeilen führen)

(not "Lot" — that produces too many rows)

Felder aktivieren

Enable fields

Currency Asset Class Symbol ISIN Mark Price Position Value Level of Detail

Deutsche Feldbezeichnung: Währung (Currency)

Open Positions Felder: Currency, Asset Class, Symbol, ISIN
Open Positions Felder: Mark Price, Position Value, Level of Detail

Cash Report (DE: Barbericht / Barübersicht / Kassenbestandsbericht)

Option

Option

Base Currency Summary ✓

DE: Zusammenfassung der Basiswährung

Felder aktivieren

Enable fields

Currency Ending Cash

DE: Währung (Currency) · Endbestand (Ending Cash)

Aktiviert die Bargeld-Anzeige im KapFrei Freedom-Dashboard (optional, kein Einfluss auf Steuerberechnung).

Enables the cash balance in the KapFrei Freedom dashboard (optional, no effect on tax calculation).

Cash Report Felder: Ending Cash ausgewählt
Cash Report Felder: weiterer Überblick

Allgemeine Einstellungen (Delivery Configuration)

General Configuration (Delivery Configuration)

Nach der Section-Konfiguration erscheint der Einstellungsbildschirm. Hier die folgenden Werte setzen — der Rest bleibt auf Standard.

After configuring the sections, a settings screen appears. Set the values below — leave everything else at default.

Pflichteinstellungen

Required settings

  • Format:Format: CSV
  • Include header and trailer records?Include header and trailer records? Yes ✓
    DE: Kopf-/Abschlusszeilen einschließen? → Ja — Bezeichnung kann geringfügig abweichen
  • Include column headers?Include column headers? Yes ✓
    DE: Spaltenüberschriften einschließen? → Ja — Bezeichnung kann geringfügig abweichen
  • Period:Period: Year to Date
    DE: Laufendes Jahr / Jahr bis heute — Bezeichnung kann geringfügig abweichen

Standard belassen (nicht ändern)

Leave at default (do not change)

  • Display single column header row? → No
  • Include section code and line descriptor? → No
  • Date Format → yyyy-MM-dd
  • Time Format → HH:mm:ss
  • Date/Time Separator → ; (semi-colon)
  • Profit and Loss → Default
  • Include Offsetting Trade/Cancel Pairs? → No
  • Include Currency Rates? → No
  • Include Audit Trail Fields? → No
  • Display Account Alias in Place of Account ID? → No
  • Breakout by Day? → No
General Configuration: Format CSV, Include header records Yes, Period Year to Date
General Configuration: Date Format, Time Format, Date/Time Separator, further options
General Configuration: Breakout by Day No, Continue button

Period auf „Year to Date" lassen

Keep Period as "Year to Date"

Das ist die Standardeinstellung und bedeutet: beim Ausführen der Query wählt IBKR automatisch das laufende Jahr bis heute. Du kannst beim Download trotzdem einen beliebigen Zeitraum angeben.

This is the default and means: when running the query, IBKR defaults to the current year through today. You can still specify any date range when actually downloading.

Speichern & herunterladen

Save & download

6

Continue (DE: Weiter) antippen → dann Save (DE: Speichern) — Query ist jetzt gespeichert

Tap Continue → then Save — the query is now saved

Du siehst die neue Query in der Übersicht unter „Activity Flex Query".

You'll see the new query in the list under "Activity Flex Query".

7

Auf den → Pfeil-Button rechts neben der Query tippen

Tap the → arrow button to the right of the query

Zeitraum wählen: Custom Date Range (DE: Benutzerdefinierter Zeitraum) → 1. Januar bis 31. Dezember des gewünschten Steuerjahres. Format: CSV.

Choose period: Custom Date Range → January 1 to December 31 of the tax year. Format: CSV.

⚠ Für alle Jahre seit Kontoeröffnung: ⚠ Download for all years since account opening: KapFrei benötigt alle Jahre ab dem ersten Kauf, um Einstandspreise korrekt zu berechnen. Im ersten Jahr also z.B. 2020–2025 einzeln herunterladen. KapFrei needs all years since your first trade to calculate cost basis correctly. First time: download each year individually (e.g. 2020–2025 separately).
8

CSV-Datei in KapFrei hochladen

Upload the CSV file to KapFrei

Unter app.kapfrei.at → Berechnen → Dateien hochladen. Alle Jahre auf einmal möglich.

At app.kapfrei.at → Calculate → Upload files. All years at once is supported.

Mehrere verknüpfte Konten (z.B. nach IBKR-Kontomigration)? → FAQ: Multi-Account-Setup

Multiple linked accounts (e.g. after IBKR account migration)? → FAQ: Multi-account setup

Datei prüfen — so sieht eine korrekte CSV aus

Verify the file — what a correct CSV looks like

Öffne die heruntergeladene CSV in einem Texteditor. Die ersten Zeilen müssen exakt so aussehen (Kontonummer variiert):

Open the downloaded CSV in any text editor. The first lines must look exactly like this (account number varies):

"BOF","U1234567","KapFrei-Export","2","2025-01-01","2025-12-31","2025-06-15;12:00:00",...
"BOA","U1234567"
"BOS","TRNT","Trades; trade date basis"
"ClientAccountID","Currency","FXRateToBase","AssetClass","Symbol","Description","ISIN",...
"U1234567","EUR","1","STK","AAPL","APPLE INC","US0378331005",...
"EOS","TRNT","..."
"BOS","CTRN","Cash Transactions"
"Currency","AssetClass","Symbol","Description","Conid","ISIN","Date/Time","Amount","Type",...
...

Erste Zeile startet mit "BOF" — das ist die Pflicht-Erkennungszeile. Fehlt sie, erkennt KapFrei die Datei nicht.

First line starts with "BOF" — this is the required detection marker. If it's missing, KapFrei won't recognise the file.

BOS-Zeilen trennen die Sections — TRNT für Trades, CTRN für Cash Transactions usw.

BOS lines separate sections — TRNT for Trades, CTRN for Cash Transactions, etc.

Das ISIN-Feld in der Spaltenzeile nach BOS,TRNT ist entscheidend — es ermöglicht die korrekte Unterscheidung zwischen KZ 862 (inländisch) und KZ 994 (ausländisch).

The ISIN field in the column row after BOS,TRNT is essential — it's what allows correct separation of KZ 862 (domestic) vs KZ 994 (foreign).

⚠ Datei startet nicht mit BOF? ⚠ File doesn't start with BOF? Prüfe, ob „Include header and trailer records?" auf Yes gesetzt war (Schritt General Configuration oben). Ohne BOF-Zeile schlägt der Import fehl. Check that "Include header and trailer records?" was set to Yes (General Configuration step above). Without the BOF line, the import will fail.

FAQ

Ich habe die Query schon eingerichtet — muss ich das jedes Jahr wiederholen? I've set up the query — do I need to do this every year?

Nein. Die Query bleibt gespeichert. Jedes Jahr einfach den → Pfeil-Button antippen, Zeitraum wählen und CSV herunterladen.

No. The query stays saved. Each year just tap the → arrow, choose the period, and download the CSV.

Kann ich auch den Standard Activity Statement (CSV) verwenden? Can I use the standard Activity Statement (CSV) instead?

Ja — KapFrei versteht auch den Standard Activity Statement. Allerdings fehlen dabei ISINs auf Trade-Zeilen, was die Unterscheidung zwischen inländischen und ausländischen Kursgewinnen (KZ 862 / KZ 994) weniger präzise macht. KapFrei zeigt bei Activity Statement-Uploads einen Hinweis im Ergebnis.

Yes — KapFrei also understands the standard Activity Statement. However, ISINs are missing on trade rows, which makes the domestic/foreign classification for capital gains (KZ 862 / KZ 994) less accurate. KapFrei shows a notice in the results when an Activity Statement is detected.

Mehrere Jahre — muss ich die Reihenfolge beachten? Multiple years — does the order matter?

Nein — alle Dateien auf einmal hochladen, KapFrei verarbeitet sie automatisch chronologisch. Die gleitenden Durchschnittspreise (§ 27a Abs. 4 EStG) werden jahresübergreifend korrekt berechnet.

No — upload all files at once. KapFrei processes them chronologically automatically. Moving average cost basis (§ 27a Abs. 4 EStG) is calculated correctly across all years.

Geht das auch über den IBKR Client Portal im Browser (Desktop)? Does this also work via IBKR Client Portal in a browser (desktop)?

Ja. Der Weg im Browser: Reports → Flex Queries → Activity Flex Query → +. Die Einstellungen (Sections, Felder) danach sind identisch — nur die Oberfläche (UI) sieht etwas anders aus.

Yes. In the browser: Reports → Flex Queries → Activity Flex Query → +. The settings (sections, fields) are identical — the UI just looks slightly different.

← Zurück zur Upload-Anleitung ← Back to upload guide