Currency gains (§ 23 and § 20)

Gains on foreign-currency balances can be taxable — which rule applies depends on whether the balance earns interest. For a non-interest-bearing balance, § 23 EStG applies: convert back at a gain within a year and it is a private disposal for Anlage SO; after more than a year, or below the €1,000 threshold, it stays tax-free. For an interest-bearing balance, by contrast, the tax authorities treat the result as capital income with no holding period. For Interactive Brokers, capi.tax calculates both and shows you which rule applies; for Tastytrade it does not.

What is a currency gain — and what is not?

If you buy dollars for euros and later convert them back for more euros than you paid, the difference is a currency gain.

Keep that apart from the exchange-rate effect inside your securities trades. When you buy and sell a US share, each trade is converted to euros at the rate of its own day (§ 20 Abs. 4 S. 1 EStG). If the dollar rises between purchase and sale, that effect is already inside the share's euro result, and so on Anlage KAP. You do not need to add anything for it. How the conversion works is under currency conversion.

The currency gain, by contrast, concerns the dollars sitting as a balance in your account, and the rate at which you acquired and disposed of them.

Interest-bearing or not: which rule applies?

⚠️ Interest-bearing foreign-currency balances are a special case. The tax authorities do not assign currency gains and losses on interest-bearing foreign-currency balances to § 23, but to capital income (§ 20 Abs. 2 S. 1 Nr. 7, Abs. 4 S. 1 EStG; BMF letters of 19.05.2022 and 14.05.2025, each at para. 131). On that view there is neither a holding period nor an exemption threshold, every deposit and interest credit counts as an acquisition, and the result belongs on Anlage KAP. Whether this is right is disputed: the Finance Court of Rhineland-Palatinate has expressed serious doubts (order of 08.10.2025, 4 V 1436/25); a ruling by the Federal Fiscal Court (BFH) is pending.

Interactive Brokers pays interest on dollar balances depending on the balance and account size. capi.tax treats a balance as interest-bearing as soon as credit interest was paid on it in the year. Which view you follow is best clarified with a tax advisor.

For a non-interest-bearing balance, § 23 with its one-year period still applies. That is what the following sections cover.

When are currency gains taxable? (non-interest-bearing balance)

For tax purposes, foreign currency is an "other asset", much like gold. A gain is taxable if no more than one year passes between acquisition and disposal (§ 23 Abs. 1 S. 1 Nr. 2 EStG). The typical cases:

  • Acquisition: you convert euros into dollars, for example through a currency trade such as EUR.USD at Interactive Brokers.
  • Disposal: you convert dollars back into euros. Converting dollars into another foreign currency disposes of the dollars and at the same time acquires the new currency (BFH, judgment of 21.01.2014, IX R 11/13).

Other inflows and outflows are less clear. On the prevailing view, buying a dollar security with existing dollar cash is an exchange and so disposes of the dollars, and the proceeds of a securities sale are an acquisition. Dividends and interest, by contrast, are income, not an acquisition. This is not judged entirely uniformly; if in doubt, clarify the treatment with a tax advisor. capi.tax calculates according to the prevailing view.

The period runs by calendar date, not 365 days: acquire on 15.03.2024 and converting back on 15.03.2025 is still taxable, on 16.03.2025 no longer.

When are currency gains tax-free? (non-interest-bearing balance)

Two routes lead to tax-free treatment:

  1. The one-year holding period: if more than a year passes between acquiring and disposing of the dollars in question, the gain is tax-free — however large.
  2. The exemption threshold: if your total gain from all private disposals in a year is below €1,000, it stays tax-free (§ 23 Abs. 3 S. 5 EStG). Up to and including 2023 the threshold was €600.

The threshold is not an allowance. Reach €1,000 and the full gain is taxable, not just the part above it. All private disposals count towards it together, including crypto or gold. For married couples it applies to each person separately.

Losses from private disposals may only be offset against gains from such disposals — not against share gains or dividends (§ 23 Abs. 3 S. 7 and 8 EStG). A remainder can be carried back to the previous year or forward to later years.

Which dollars count as sold first?

If you bought dollars at different times, the law assumes the amounts acquired first are disposed of first (§ 23 Abs. 1 S. 1 Nr. 2 S. 3 EStG) — the FIFO principle, as with securities. Each tranche runs its own holding period.

For a conversion, what counts are the euros actually paid and received (§ 23 Abs. 3 S. 1 EStG). You only need a reference rate when a transaction has no euro side.

Example (non-interest-bearing balance, example rates):

  • 01.03.2024: buy 5,000 USD at 1.0850 USD/EUR
  • 01.09.2024: buy 5,000 USD at 1.1050 USD/EUR
  • 15.04.2025: convert 6,000 USD back at 1.1300 USD/EUR

Under FIFO, the first 5,000 USD come from the March tranche. They were held for more than a year, so their result is tax-free. The remaining 1,000 USD come from the September tranche and were disposed of within the period:

  • paid: 1,000 ÷ 1.1050 = €904.98
  • received: 1,000 ÷ 1.1300 = €884.96
  • Result: −€20.02, a loss under § 23 EStG

Worked example: below and above the threshold

On 15.02.2024 you convert euros into 10,000 USD at 1.0800 USD/EUR and on 10.10.2024 back at 1.0400 USD/EUR (non-interest-bearing balance, example rates):

  • paid: 10,000 ÷ 1.0800 = €9,259.26
  • received: 10,000 ÷ 1.0400 = €9,615.38
  • Gain: €356.12

If you had no other private disposals in 2024, that stays below the threshold and is tax-free.

The same with 40,000 USD:

  • paid: 40,000 ÷ 1.0800 = €37,037.04
  • received: 40,000 ÷ 1.0400 = €38,461.54
  • Gain: €1,424.50

Now the threshold is exceeded, and the full €1,424.50 is taxed at your personal rate. Had you converted the dollars back only after 15.02.2025, the gain would have been tax-free in both cases. Had the balance been interest-bearing, the gain would instead be capital income on the authorities' view, with no holding period and no threshold.

What capi.tax does here — and what it does not

For Interactive Brokers, capi.tax calculates your currency gains — from the CSV activity statement and the Flex XML export alike. You find them on the KAP Form tab in the "Currency gains" section; the Overview points to them, and the PDF, Excel and CSV exports include them too.

  • FIFO per currency: every dollar inflow becomes a tranche, every outflow uses up the oldest tranches first. The basis is currency trades such as EUR.USD, your securities purchases and sales, dividends, interest, fees, withholding tax, and deposits and withdrawals.
  • Valuation: for a conversion, the euros actually paid or received count, commission included. Everything else is valued at the Bundesbank rate of the day.
  • What counts as acquisition and disposal: a conversion into euros and buying a dollar security with dollar cash both dispose of the dollars. The proceeds of a securities sale are an acquisition. Dividends, interest and option premiums are income, not an acquisition: they form a tranche that produces no result under § 23. Fees and withdrawals use up tranches without a result.
  • Holding period: the one-year period is checked by calendar date (acquired 15.03.2024, disposed 15.03.2025: still taxable).
  • Classification: if credit interest was paid on a currency in a year, capi.tax treats that balance as interest-bearing for the whole year (§ 20, Anlage KAP) — even for a few cents; there is no de-minimis limit. Otherwise § 23 (Anlage SO) applies. Both results are calculated; the amount marked used is the one that matches the classification.
  • Changing the classification: with Treat as § 23 or Treat as § 20 in the currency's row you set the classification yourself; Classify automatically undoes it. The change appears on the Adjustments tab and applies to the tax year only. If your file is no longer loaded, upload it again first.
  • Negative balance (margin loan): taking out and repaying a foreign-currency loan is neither an acquisition nor a disposal (BFH, judgment of 30.11.2010, VIII R 58/07). capi.tax calculates no result for it and shows the debt at year end.

Which amount goes where?

What counts are the two boxes at the top of the section, not the individual table columns — the table shows both calculations per currency for checking. An amount only ever belongs on one form.

  • Anlage SO (box "§ 23 EStG"): the result within the one-year period belongs on Anlage SO — under private disposals of other assets, even if it is a loss. The tax office applies the exemption threshold to all private disposals of the year together. The value "After threshold, no other disposals" only shows what applies if you have no other private disposals (such as crypto or gold, which capi.tax does not know).
  • Anlage KAP (box "§ 20 EStG"): on the authorities' view the result belongs to foreign capital income in line 19; a loss also goes in line 22. More on the lines under Anlage KAP, KAP-INV & SO.
  • Not yet included: both amounts are only shown in the "Currency gains" section. They are not yet included in the Anlage KAP lines above, in the loss offsetting, or in the tax capi.tax shows.
  • Departing view: anyone who does not follow the authorities' view for an interest-bearing balance usually discloses this in the return. Whether that makes sense for you is something to clarify with a tax advisor.

When a notice appears

  • Currency debt: if you paid debit interest on the currency that year, the balance really was negative — a margin loan, and there is nothing to do. If your account existed before the first uploaded year, earlier years are more likely missing: upload them too.
  • Balance differs from IBKR: the calculated year-end balance does not match the forex balances in the statement — usually a year is missing. This check only exists for a CSV activity statement that runs to 31.12., not for Flex XML. So a missing notice on a Flex file means nothing.
  • Deposit in a foreign currency estimated: what transferred-in dollars cost you in euros is not in the export; capi.tax uses the Bundesbank rate of the deposit day. If you exchanged the dollars at another bank, its statement shows the actual price.
  • Interest-bearing foreign-currency balance: credit interest triggered the § 20 classification, see above.

All notices at a glance: processing notices.

Tastytrade

capi.tax does not calculate currency gains for Tastytrade. The account is held in dollars, and how many euros the deposited dollars cost you is not in the export — your bank's statement shows the conversion. If Tastytrade pays credit interest on your balance (Credit Interest), the rule for interest-bearing balances applies on the authorities' view (§ 20, Anlage KAP, no holding period or threshold); otherwise § 23. Working through each tranche under FIFO goes as in the example above.

DEGIRO

capi.tax does not calculate currency gains for DEGIRO (beta). DEGIRO converts currency on each order (AutoFX), so you usually hold no foreign balance. If your account does hold foreign currency, gains on it can fall under § 23 EStG (Anlage SO); you then work them out yourself. capi.tax tells you with a notice when your DEGIRO files contain foreign-currency amounts.

No tax advice - data preparation only — This tool is solely for preparing your transaction data and does not constitute tax advice. Calculations are performed automatically and without any warranty as to their accuracy, completeness or timeliness. Use is at your own risk; you alone are responsible for the correctness of your tax return. Verify all results yourself and consult a tax advisor if in doubt. Liability for any damages arising from use is excluded to the extent permitted by law.

Modern tax preparation
for German investors

Legal

Security

  • Your data stays local
  • GDPR compliant
  • No tax advice

capi.tax is an independent tool and is not affiliated with, endorsed by or sponsored by any broker named here (Interactive Brokers, Tastytrade, DEGIRO / flatexDEGIRO, LYNX, CapTrader). Names and logos belong to their owners and are used only to identify the supported file formats.

© 2026 capi.tax – Data preparation tool. This is not tax advice. Consult a tax advisor for questions. · d835e9f