What is the Übernachtungssteuer?
Berlin's city tourism tax was introduced in 2014 and has been reformed several times since. From January 2025, the rate is 7.5% of the net accommodation price. It applies to all short-term accommodation in Berlin — hotels, apartments, and Airbnb listings alike, for all guests regardless of the purpose of travel.
"Net accommodation price" means after stripping VAT and after excluding the cleaning fee — the pure accommodation component. You file and pay it quarterly, directly to the Berliner Finanzamt. This guide covers that process end to end. It does not cover income tax, VAT returns, or the EÜR — those are Steuerberater territory.
One-time registration
Before your first quarterly filing, register as an Übernachtungssteuer payer with the Berliner Finanzamt. This is a one-time step.
- Fill in form
uenst-8(Anmeldung zur Übernachtungssteuer) - Submit via the Berlin.de tax portal
- Optionally set up a SEPA mandate for direct debit with form
sepa-mandat_be - You receive a tax reference number for the Übernachtungssteuer — keep it
Register before your first taxable booking. If you are already renting and have not registered, do it now and file retroactively for missed quarters.
The quarterly calculation
For each booking in the quarter, you need two numbers from Smoobu (or your OTA statement):
- paid_out — total payout to you after the OTA host fee, including city tax passed through by the OTA
- host_fee — what the OTA kept (the host service fee)
Step 1 — Net accommodation (the tax base)
This strips out 7% VAT (Umsatzsteuer) and 7.5% city tax that are layered into the Airbnb payout. What remains is the pure accommodation price — the tax base.
Step 2 — City tax owed
Worked example
5-night Airbnb stay, 3 guests
| Smoobu paid_out | €876.55 |
| Airbnb host_fee | €32.45 |
| Net accommodation (÷ 1.15025) | €762.05 |
| Übernachtungssteuer (7.5%) | €57.15 |
For your accountant: the VAT base (Bemessungsgrundlage)
The uenst-2a form also asks for the Bemessungsgrundlage — the full accommodation charge to the guest, stripped of VAT. This is the base for your Umsatzsteuer return, not for the city tax itself.
Using the example above: (€876.55 + €32.45) ÷ 1.07 = €849.53. Umsatzsteuer: €849.53 × 7% = €59.47 — filed separately on your VAT return, not on the uenst-2a.
How Airbnb handles this — and why you still file
Airbnb collects the city tax from guests and passes it through to hosts in Berlin. It appears in your payout details as "Occupancy Tax Amount Paid To Host." This is why the city tax is embedded in your paid_out — and why the ÷ 1.15025 formula strips it back out.
Airbnb collecting it does not mean they file on your behalf. You receive the tax in your payout and you are responsible for remitting it to the Berliner Finanzamt quarterly.
Booking.com may handle this differently. Check your payment statements — if city tax is not being passed through, the formula adjusts to paid_out ÷ 1.07 (strip VAT only). When in doubt, check with your OTA's support.
Quarterly filing — step by step
- Pull your booking data — export from Smoobu or use the Google Sheets sync script to get paid_out and host_fee per booking
- Apply the formulas — calculate net_accommodation and city tax (7.5%) per booking
- Sum the quarter — total Bemessungsgrundlage, total guest-nights, total city tax
- File online — Berlin.de tax portal, form
uenst-2a-anmeldung-uebernachtungsteuer. From 2026, electronic filing is mandatory. - Pay — via SEPA mandate (set up once with
sepa-mandat_be) or bank transfer
Quarterly deadlines
| Quarter | Bookings | File by |
|---|---|---|
| Q1 | January – March | 30 April |
| Q2 | April – June | 31 July |
| Q3 | July – September | 31 October |
| Q4 | October – December | 31 January (next year) |
Official Berlin FAQ and filing portal: berlin.de — Übernachtungssteuer
Tracking this in a spreadsheet
The calculation needs to happen for every booking, every quarter. The practical setup is a Google Sheets file connected to Smoobu via the API — bookings sync automatically, formulas apply per row, quarterly totals populate the uenst-2a form fields.
The full technical setup — API connection, CONFIG block, column formulas — is in the companion guide: Smoobu → Google Sheets: the complete sync script.
The tracking spreadsheet — ready to copy
A pre-configured Google Sheet with all formulas built in, fake example bookings from Airbnb and Booking.com, and a step-by-step runbook tab covering the full quarterly workflow: data sync → ÜnStG tab → Elster.
- 5 tabs: Tax export, Interpretation, Pivot, ÜnStG calculation, Runbook
- Formulas wired in: Bemessungsgrundlage, ÜnSt, VAT columns, quarterly SUM rows
- Google Apps Script included — paste your Smoobu API key and sync in one click
- Full filing runbook with Elster screenshots and Booking.com notes
Opens in Google Sheets — click "Make a copy" to get your own editable version.
This template is a starting point, not tax advice. For income tax, VAT, or complex situations, consult a Steuerberater.