Crypto tax withholding for Austrian CASPs: automating the 27.5% KESt
Austrian providers must withhold 27.5% KESt on crypto gains at source. A guide to what triggers it, the moving-average basis, Endbesteuerung and remittance.

Run a crypto service with Austrian users and tax withholding stopped being optional a while ago. Since 1 January 2024, domestic providers have had to withhold Austrian capital gains tax, the Kapitalertragsteuer or KESt, on their users' realised crypto gains and hand it to the Finanzamt. Get it right and your users never file a return for those gains. Get it wrong and the liability lands on you, not them. This guide walks through the whole obligation: what Austria taxes, who has to withhold, the cost-basis method, the Endbesteuerung effect, and how remittance actually works.
What Austria taxes, and at what rate
The 2022 ecosocial tax reform folded crypto into the same regime as stocks and bonds. Gains on crypto held as a private asset are taxed at a flat special rate of 27.5% rather than the progressive income scale, and 27.5% is the figure you withhold. Two details reshape any withholding engine:
- Crypto-to-crypto swaps are tax-neutral. Swap one crypto asset for another and nothing is realised in Austria; only disposals to fiat, or paying for goods and services with crypto, trigger a taxable gain. Withhold on a swap and you've over-withheld.
- Current income, staking or lending rewards for instance, stands on its own footing rather than counting as a capital gain. So the engine has to tell income and disposals apart.
Who has to withhold
The obligation falls on the inländischer Dienstleister, the domestic service provider that settles the disposal. Settle Austrian users' trades with a domestic nexus and withholding is your job. A foreign-only provider can't withhold in a way that settles the Austrian tax, and that gap comes up below.
The cost-basis method is fixed
The rate is the easy part. The gain depends on cost basis, and Austria mandates the moving-average price, the gleitender Durchschnittspreis. It's struck per wallet, not across everything a user holds, and that changes how you compute it. We go deep on this in the guide to the moving-average cost method. If your ledger only tracks purchase lots, you'll need to build the per-wallet averaging layer before you can withhold a single cent correctly.
Endbesteuerung: the part your users care about
Tax withheld at source is final. The user's crypto gains are settled, and they don't declare them in an annual return at all. That's a real product advantage. Tax season is one of the biggest churn moments for a crypto app, and "we handle it, you file nothing" gives people a reason to stay. It only holds up if the withholding is computed correctly, because a wrong figure withheld at source is a wrong figure the user can't easily undo. For how this differs from self-reporting, see Endbesteuerung versus self-reporting.
The mechanics: compute, withhold, remit
In practice the engine values each disposal the moment it happens, on the per-wallet moving average, applies the 27.5% rate to the gain, deducts it, and remits the withheld KESt to the Finanzamt on whatever cadence the authority sets, backed by the per-user figures. Nothing gets reconciled at year end, because it's final. The computation has to be right in real time.
The foreign-provider gap
This is also where a lot of Austrian users are non-compliant without knowing it. They assume an exchange took care of their tax when it didn't, because a foreign platform legally can't deliver Endbesteuerung. For a domestic provider, that gap is an opening. Being the platform that actually withholds is a concrete selling point against foreign rivals.
Automating it instead of building it
Build it by hand and you're maintaining a data pipeline forever: ingest your own transactions, classify each one, run a per-wallet moving-average engine, compute the 27.5%, and file a KESt return on the authority's cadence. That's the exact pipeline behind our tax withholding solution, which classifies each disposal, values it on the moving-average basis, withholds the right amount, and produces the filing. It shares a data layer with our CARF and DAC8 reporting, so the same integration covers both obligations. For where it fits a venue, see exchanges and custodians, and the Austrian Federal Ministry of Finance publishes the current rules.



