We kept hearing the same four claims in trader forums, repeated with the confidence of people who had never opened a Steuererklärung. Offshore broker, no German tax. CFDs are "private", so they fall outside §20. Losses always offset gains, no questions asked. And our favourite: "the Finanzamt cannot see an account in Cyprus." We went looking for the receipts behind each one.

What follows is question-led, because that is how this subject actually gets searched and argued. Every section names the myth, names who repeats it, and states what the German rule structure actually does. Where our dataset does not carry a precise figure, we say so rather than invent one — the broker facts here are grounded; the tax rates are yours to confirm with a Steuerberater.

Does Trading Through an Offshore Broker Keep Forex Out of German Tax?

No. The myth survives because the YouTube pitch is irresistible: open with Exness or XM, the broker sits in Cyprus or the Seychelles, and the implication hangs in the air that the Finanzamt simply will not know. That conclusion does not follow.

German income tax attaches to the person's tax residence, not to where the broker is incorporated. A resident of Germany is taxed on worldwide capital income under §20 EStG regardless of whether the trading desk is in Limassol or Frankfurt. Exness holds FCA and CySEC authorisation per its disclosures in our dataset; CySEC sits inside the EU information-exchange framework. The broker's location changes your reporting burden — an offshore account without German Kapitalertragsteuer withholding means you self-declare in Anlage KAP — but it does not change whether the gain is taxable. It only changes who does the paperwork.

Are Forex CFDs "Private Sales" Outside §20?

This is the costliest misunderstanding we see. People lift the old §23 "private sale" logic — the one-year holding rule for property and crypto — and assume forex CFDs inherit it. They do not.

Currency CFDs and rolling spot forex are derivatives. German law treats derivative gains as Kapitaleinkünfte under §20, specifically as Termingeschäfte, not as §23 private sales with a speculation period. There is no "hold it a year and walk away tax-free" exit for a EUR/USD CFD. The holding period is irrelevant; the realised gain is capital income on the day you close. Anyone telling a German retail trader that a one-year hold cleans a forex position is confusing two entirely different sections of the EStG. Confirm the current treatment with a Steuerberater — our dataset carries broker facts, not the statute text — but the §23 escape hatch is the wrong door.

Free Download
The XAU/USD Asian-Session Playbook
Gulf-hours gold setups with exact entry, stop-loss, and risk-sizing rules. Real chart examples, no tip groups.

Do My Losses Always Offset My Gains in Full?

Here the receipts get uncomfortable, and this is the myth most worth pausing on. Traders assume symmetry: if a winning year is taxed, a losing year fully shelters the next. For derivatives, German law has not treated losses symmetrically.

The Termingeschäft loss-offset restriction is the specific trap. Losses from derivative trades have been ring-fenced — offsettable only against derivative gains, and historically capped per year, with the remainder carried forward. The practical effect: you can pay tax on a notionally flat year. Imagine a year of frantic scalping that nets close to zero but contains large gross gains and large gross losses booked separately. The cap can leave gains taxed now and losses queued for future years. The rule has been politically contested and amended, so the live figure must be checked for the assessment year in question — but a trader who budgets for full, immediate symmetry is budgeting against a rule that does not exist.

Where Does the Spread Sit in All This, and What Does It Actually Cost?

The spread is a cost, not a tax — and traders conflate the two constantly. Worth separating, because the spread bleeds before the Finanzamt sees a single euro of profit.

Take the grounded numbers. Exness lists an average EUR/USD spread of 1.0 pip on its standard account and 0.1 pip on its Pro account. Run the standard figure through a full 100k lot: 1.0 pip × €10/pip ≈ €10 per round-turn lot, before any commission. FXTM's 1.5-pip standard average is €15 on the same lot; FBS at 0.7 pip is €7. Converted for an INR-funded reader at a reference USD/INR of roughly 83, that 1.0-pip Exness round trip is in the region of ₹830 per 100k lot — paid every entry-and-exit, win or lose. None of this is deductible against your tax bill the way a business expense would be; for retail capital income under §20 it is simply embedded in your net result. The spread is the toll you pay to generate the P&L the Finanzamt then assesses.

Does the Broker Withhold German Tax for Me?

Almost certainly not, if the broker is offshore — and this is where the "set and forget" crowd gets a nasty April surprise. A German bank or a German-registered broker withholds Kapitalertragsteuer at source and remits it. An account with Exness or XM does not.

That shifts the entire compliance weight onto you. No withholding means no automatic settlement, which means the obligation lands in your annual Steuererklärung via Anlage KAP, with you reconstructing every realised gain and loss for the year. The broker gives you a statement; the translation into German tax categories is your job. The myth — "the broker handles it" — is true for a German Hausbank and false for the offshore CFD desk most forum traders actually use. Confirm your specific broker's withholding status from its own documentation before assuming either way.

Should the ECB Calendar Change When I Realise Gains?

It should at least be on your screen. The skeptic's caveat first: timing trades around tax is how people turn a tax problem into a trading loss. But the calendar is an analytical reflex worth keeping.

German capital income is assessed on the calendar year of realisation. That makes late-December a genuine decision window — and it collides with one of the year's loudest macro events. The ECB Governing Council's December rate decision routinely whips EUR crosses in thin holiday liquidity, exactly when some traders are also deciding whether to close a position before 31 December for the current assessment year or hold into January. Two pressures, one week. We are not telling you which way to lean. We are saying that "realise before year-end for tax reasons" and "the ECB just moved EUR/USD 80 pips" are decisions that should be made separately, not blended into one panicked click.

Is the Domestic Route Cleaner Than Offshore CFDs?

For compliance simplicity, frequently yes — and this is the comparison the offshore pitch never makes. A SEBI-regulated domestic broker such as Bajaj Finserv Securities offers exchange-traded currency futures on NSE: INR-quoted USD/INR and EUR/USD contracts, UPI deposits, zero AMC in the first year. A regulated domestic venue with at-source reporting removes most of the self-declaration burden that an offshore CFD account dumps on you.

The honest counterpoint: domestic exchange futures and offshore CFDs are not the same instrument. Leverage differs sharply — FBS advertises up to 1:3000 and Exness up to 1:2000 in our dataset, ceilings no SEBI exchange product approaches. The instrument set differs too. The defensible default for most retail is the regulated domestic path for compliance simplicity, with offshore reserved for traders who specifically need a CFD instrument the exchange does not list — and who accept the reporting load that comes with it.

What Records Will the Finanzamt Actually Want?

Realised P&L per trade, denominated and dated — that is the spine of it. The myth that a broker's glossy annual summary is "enough" tends to collapse on first contact with a serious assessment.

You want per-trade realised gains and losses, the dates of close, any commission and financing charges, and a clean separation of derivative results from other capital income because of the Termingeschäft offset rules above. Currency conversion matters: an INR- or USD-denominated offshore statement has to be carried into euro for German purposes. Keep the raw broker statements, not just your own spreadsheet. The pattern across self-declared offshore accounts is that the reconstruction work, not the tax rate, is what ambushes people in April. Build the record as you trade, not the night before the deadline.

FAQ

Do I pay German tax on a forex account held with Exness or XM?

If you are tax-resident in Germany, yes — your worldwide capital income falls under §20 EStG irrespective of where the broker sits. Exness holds FCA and CySEC authorisation per our dataset, and CySEC is inside the EU exchange-of-information net. The offshore location changes your paperwork — you self-declare in Anlage KAP because there is no German withholding — but it does not exempt the gain.

Are forex CFD gains treated as private sales under §23?

No. Currency CFDs and spot forex are derivatives, assessed as Termingeschäfte under §20, not as §23 private sales. There is no one-year holding period that turns a EUR/USD CFD tax-free. The realised gain is capital income on the day you close, regardless of how long you held. Confirm the live treatment with a Steuerberater, but the §23 holding-period logic does not apply here.

Can I offset all my forex losses against my gains?

Not always in full. German law has ring-fenced derivative losses — offsettable only against derivative gains and historically capped per year, with the balance carried forward. A near-flat year of heavy scalping can still produce a tax bill. The exact cap has been amended and litigated, so verify the figure for your specific assessment year rather than assuming complete, immediate symmetry.

Does an offshore broker withhold German tax automatically?

Generally no. German banks and German-registered brokers withhold Kapitalertragsteuer at source; offshore CFD desks like Exness or XM do not. That puts the full reporting obligation on you through Anlage KAP, where you reconstruct each realised gain and loss for the calendar year. Check your broker's own documentation to confirm its withholding status before assuming the work is done for you.

How much does the spread cost before tax even applies?

Spread is a trading cost, not a tax, and it is paid every round trip. Exness lists 1.0 pip average on EUR/USD standard — roughly €10 per 100k lot round-turn, about ₹830 at a USD/INR near 83. FXTM's 1.5-pip standard is around €15; FBS at 0.7 pip is near €7. For retail §20 income it is embedded in your net result, not deducted as a business expense.

Does year-end timing matter for German forex tax?

It can. Capital income is assessed on the calendar year of realisation, so whether you close before 31 December decides the assessment year. That window coincides with the ECB's December rate decision, which moves EUR crosses in thin liquidity. Keep the tax decision and the trading decision separate — chasing a year-end realisation into an ECB-driven move is how a tax tactic becomes a trading loss.

Is a domestic NSE currency future simpler than an offshore CFD?

For compliance, usually yes. A SEBI-regulated broker such as Bajaj Finserv Securities offers exchange-traded INR-quoted currency futures with at-source reporting and UPI funding, removing much of the self-declaration load. The trade-off is instrument and leverage: offshore desks advertise up to 1:2000 (Exness) or 1:3000 (FBS), far beyond exchange products. Choose domestic for simplicity, offshore only for instruments the exchange does not list.