Cross-border taxation

🇩🇪 Cross-border taxation in Germany

Germany exempts the Luxembourg salary but folds it into the rate applied to the household's other taxable income.

Mechanism applied: Progressionsvorbehalt

The Luxembourg side, for everyone

Taxed at source

A salary paid by a Luxembourg employer is taxed in Luxembourg, withheld monthly on the payslip. The country of residence does not tax it — it only takes it into account, differently in each case.

Tax class and withholding card

The class (1, 1a or 2) depends on family situation and sets the scale applied. It appears on the withholding card the employer must hold: without it, tax is withheld at the maximum rate and only corrected afterwards.

Assimilation to resident status

A non-resident whose income comes mostly from Luxembourg can ask to be taxed as a resident. That opens the deductions reserved for residents — loan interest, insurance, contributions. It is the lever cross-border workers most often leave unclaimed, and it has to be requested, not granted automatically.

Social contributions

They go to Luxembourg (CCSS) as long as telework from the country of residence stays under the affiliation threshold. Health cover then sits with the CNS, including for care received in the country of residence.

Source: Administration des contributions directes

🇩🇪 The country-of-residence side

The mixed-couple trap

This is where the mechanism bites: if one partner works in Luxembourg and the other in Germany, the Luxembourg salary lifts the rate applied to the German salary. Joint assessment often remains favourable, but the effect catches people out on the first assessment notice.

German return

Exempt foreign income is declared on the schedule provided. Registration at the Bürgeramt on arrival gates the tax number, without which nothing gets set up.

Source: Bundeszentralamt für Steuern

This page describes the architecture, not the scales: rates, bands and allowances change every year, and a stale figure here would cost the reader money. For amounts, go to the source — and have your own case checked.

Structure verified on 2026-08-17