Error message
Warning: Undefined array key 0 in Drupal\xpt_locationmenu\Plugin\Block\CountryCategoryMenuBlock->get_country() (line 163 of modules/custom/xpt_locationmenu/src/Plugin/Block/CountryCategoryMenuBlock.php).
Drupal\xpt_locationmenu\Plugin\Block\CountryCategoryMenuBlock->get_country() (Line: 26) Drupal\xpt_locationmenu\Plugin\Block\CountryCategoryMenuBlock->build() (Line: 171) Drupal\block\BlockViewBuilder::preRender(Array) call_user_func_array('Drupal\block\BlockViewBuilder::preRender', Array) (Line: 113) Drupal\Core\Render\Renderer->doTrustedCallback('Drupal\block\BlockViewBuilder::preRender', Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 870) Drupal\Core\Render\Renderer->doCallback('#pre_render', 'Drupal\block\BlockViewBuilder::preRender', Array) (Line: 432) Drupal\Core\Render\Renderer->doRender(Array, 1) (Line: 248) Drupal\Core\Render\Renderer->render(Array, 1) (Line: 165) Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}() (Line: 638) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 166) Drupal\Core\Render\Renderer->renderInIsolation(Array) (Line: 191) Drupal\Core\Render\Renderer->doRenderPlaceholder(Array) (Line: 723) Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}() Fiber->start() (Line: 731) Drupal\Core\Render\Renderer->replacePlaceholders(Array) (Line: 608) Drupal\Core\Render\Renderer->doRender(Array, 1) (Line: 248) Drupal\Core\Render\Renderer->render(Array, 1) (Line: 153) Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}() (Line: 638) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 154) Drupal\Core\Render\Renderer->renderRoot(Array) (Line: 288) Drupal\Core\Render\HtmlResponseAttachmentsProcessor->renderPlaceholders(Object) (Line: 74) Drupal\big_pipe\Render\BigPipeResponseAttachmentsProcessor->processAttachments(Object) (Line: 45) Drupal\Core\EventSubscriber\HtmlResponseSubscriber->onRespond(Object, 'kernel.response', Object) call_user_func(Array, Object, 'kernel.response', Object) (Line: 111) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.response') (Line: 214) Symfony\Component\HttpKernel\HttpKernel->filterResponse(Object, Object, 1) (Line: 202) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 53) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28) Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32) Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36) Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 741) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Warning: Trying to access array offset on value of type null in Drupal\xpt_locationmenu\Plugin\Block\CountryCategoryMenuBlock->get_country() (line 163 of modules/custom/xpt_locationmenu/src/Plugin/Block/CountryCategoryMenuBlock.php).
Drupal\xpt_locationmenu\Plugin\Block\CountryCategoryMenuBlock->get_country() (Line: 26) Drupal\xpt_locationmenu\Plugin\Block\CountryCategoryMenuBlock->build() (Line: 171) Drupal\block\BlockViewBuilder::preRender(Array) call_user_func_array('Drupal\block\BlockViewBuilder::preRender', Array) (Line: 113) Drupal\Core\Render\Renderer->doTrustedCallback('Drupal\block\BlockViewBuilder::preRender', Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 870) Drupal\Core\Render\Renderer->doCallback('#pre_render', 'Drupal\block\BlockViewBuilder::preRender', Array) (Line: 432) Drupal\Core\Render\Renderer->doRender(Array, 1) (Line: 248) Drupal\Core\Render\Renderer->render(Array, 1) (Line: 165) Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}() (Line: 638) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 166) Drupal\Core\Render\Renderer->renderInIsolation(Array) (Line: 191) Drupal\Core\Render\Renderer->doRenderPlaceholder(Array) (Line: 723) Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}() Fiber->start() (Line: 731) Drupal\Core\Render\Renderer->replacePlaceholders(Array) (Line: 608) Drupal\Core\Render\Renderer->doRender(Array, 1) (Line: 248) Drupal\Core\Render\Renderer->render(Array, 1) (Line: 153) Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}() (Line: 638) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 154) Drupal\Core\Render\Renderer->renderRoot(Array) (Line: 288) Drupal\Core\Render\HtmlResponseAttachmentsProcessor->renderPlaceholders(Object) (Line: 74) Drupal\big_pipe\Render\BigPipeResponseAttachmentsProcessor->processAttachments(Object) (Line: 45) Drupal\Core\EventSubscriber\HtmlResponseSubscriber->onRespond(Object, 'kernel.response', Object) call_user_func(Array, Object, 'kernel.response', Object) (Line: 111) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.response') (Line: 214) Symfony\Component\HttpKernel\HttpKernel->filterResponse(Object, Object, 1) (Line: 202) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 53) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28) Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32) Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36) Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 741) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Warning: Undefined array key 0 in Drupal\xpt_locationmenu\Plugin\Block\CountryCategoryMenuBlock->get_country() (line 163 of modules/custom/xpt_locationmenu/src/Plugin/Block/CountryCategoryMenuBlock.php).
Drupal\xpt_locationmenu\Plugin\Block\CountryCategoryMenuBlock->get_country() (Line: 26) Drupal\xpt_locationmenu\Plugin\Block\CountryCategoryMenuBlock->build() (Line: 171) Drupal\block\BlockViewBuilder::preRender(Array) call_user_func_array('Drupal\block\BlockViewBuilder::preRender', Array) (Line: 113) Drupal\Core\Render\Renderer->doTrustedCallback('Drupal\block\BlockViewBuilder::preRender', Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 870) Drupal\Core\Render\Renderer->doCallback('#pre_render', 'Drupal\block\BlockViewBuilder::preRender', Array) (Line: 432) Drupal\Core\Render\Renderer->doRender(Array, 1) (Line: 248) Drupal\Core\Render\Renderer->render(Array, 1) (Line: 165) Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}() (Line: 638) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 166) Drupal\Core\Render\Renderer->renderInIsolation(Array) (Line: 191) Drupal\Core\Render\Renderer->doRenderPlaceholder(Array) (Line: 723) Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}() Fiber->start() (Line: 731) Drupal\Core\Render\Renderer->replacePlaceholders(Array) (Line: 608) Drupal\Core\Render\Renderer->doRender(Array, 1) (Line: 248) Drupal\Core\Render\Renderer->render(Array, 1) (Line: 153) Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}() (Line: 638) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 154) Drupal\Core\Render\Renderer->renderRoot(Array) (Line: 288) Drupal\Core\Render\HtmlResponseAttachmentsProcessor->renderPlaceholders(Object) (Line: 74) Drupal\big_pipe\Render\BigPipeResponseAttachmentsProcessor->processAttachments(Object) (Line: 45) Drupal\Core\EventSubscriber\HtmlResponseSubscriber->onRespond(Object, 'kernel.response', Object) call_user_func(Array, Object, 'kernel.response', Object) (Line: 111) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.response') (Line: 214) Symfony\Component\HttpKernel\HttpKernel->filterResponse(Object, Object, 1) (Line: 202) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 53) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28) Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32) Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36) Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 741) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Warning: Trying to access array offset on value of type null in Drupal\xpt_locationmenu\Plugin\Block\CountryCategoryMenuBlock->get_country() (line 163 of modules/custom/xpt_locationmenu/src/Plugin/Block/CountryCategoryMenuBlock.php).
Drupal\xpt_locationmenu\Plugin\Block\CountryCategoryMenuBlock->get_country() (Line: 26) Drupal\xpt_locationmenu\Plugin\Block\CountryCategoryMenuBlock->build() (Line: 171) Drupal\block\BlockViewBuilder::preRender(Array) call_user_func_array('Drupal\block\BlockViewBuilder::preRender', Array) (Line: 113) Drupal\Core\Render\Renderer->doTrustedCallback('Drupal\block\BlockViewBuilder::preRender', Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 870) Drupal\Core\Render\Renderer->doCallback('#pre_render', 'Drupal\block\BlockViewBuilder::preRender', Array) (Line: 432) Drupal\Core\Render\Renderer->doRender(Array, 1) (Line: 248) Drupal\Core\Render\Renderer->render(Array, 1) (Line: 165) Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}() (Line: 638) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 166) Drupal\Core\Render\Renderer->renderInIsolation(Array) (Line: 191) Drupal\Core\Render\Renderer->doRenderPlaceholder(Array) (Line: 723) Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}() Fiber->start() (Line: 731) Drupal\Core\Render\Renderer->replacePlaceholders(Array) (Line: 608) Drupal\Core\Render\Renderer->doRender(Array, 1) (Line: 248) Drupal\Core\Render\Renderer->render(Array, 1) (Line: 153) Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}() (Line: 638) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 154) Drupal\Core\Render\Renderer->renderRoot(Array) (Line: 288) Drupal\Core\Render\HtmlResponseAttachmentsProcessor->renderPlaceholders(Object) (Line: 74) Drupal\big_pipe\Render\BigPipeResponseAttachmentsProcessor->processAttachments(Object) (Line: 45) Drupal\Core\EventSubscriber\HtmlResponseSubscriber->onRespond(Object, 'kernel.response', Object) call_user_func(Array, Object, 'kernel.response', Object) (Line: 111) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.response') (Line: 214) Symfony\Component\HttpKernel\HttpKernel->filterResponse(Object, Object, 1) (Line: 202) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 53) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28) Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32) Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36) Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 741) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
The finance and banking sector is one of the biggest in Luxembourg, and it represents around a third of the country's GDP. There are more than 110 banks in Luxembourg, including both local and international branches. Expats should have no trouble handling their banking, money and taxes in Luxembourg.
Currency in Luxembourg
As Luxembourg is part of the Eurozone, the currency used in the country is the Euro, which is divided into 100 cents.
- Notes: 5 EUR, 10 EUR, 20 EUR, 50 EUR, 100 EUR, 200 EUR and 500 EUR
- Coins: 5 cents, 10 cents, 20 cents and 50 cents and 1 EUR and 2 EUR
Banking in Luxembourg
You'll have plenty of banks to choose from in Luxembourg. Banque Centrale du Luxembourg is the country's national bank, but there are several other big local and international banks in the country, including Banque Internationale a Luxembourg, ING Luxembourg, HSBC, Deutsche Bank, Citibank and BNP Paribas Fortis, among many others.
Banks in Luxembourg are generally open from 8.30am to 4.30pm, Monday to Friday, and some banks also open from 9am to 1pm on Saturdays. They offer a range of services, including current and savings accounts, credit cards, loans, investments, online and mobile banking, as well as specific expat services such as multi-currency accounts.
Opening a bank account
You are not legally required to open a bank account in Luxembourg. You can manage their money from an overseas account. Still, as it'll make everyday money matters such as paying bills easier, it may be a better option for expats moving to Luxembourg to have a local account.
Expats face no restrictions when it comes to opening a bank account. Most banks require you to visit a branch in person to open an account, but certain banks allow expats to open an account online, meaning they can do this while overseas before arriving in Luxembourg. To open a bank account online, you may need to post or send scanned copies of the required documents.
Most banks will require a form of ID, such as a passport or national ID card, and proof of address (either local or foreign). Some banks may also require proof of employment or income and a tax number.
Once all the required documents have been submitted, the bank account should be set up quickly, and you'll receive your bank card and information within a few days.
ATMs
Due to the vast number of banks in the country, finding an ATM is incredibly easy in Luxembourg. They are generally situated outside of bank branches, shopping centres and supermarkets.
International bank cards, such as Visa and Mastercard, can be used in ATMs in Luxembourg. Some machines also accept American Express, but this is not guaranteed. As is usually the case, you will be charged fees if using an ATM for a bank that is different from the one you have an account with.
Much of the local population in Luxembourg still uses cash, but it is not essential for expats to carry cash. Credit and debit cards can be used everywhere, and online and mobile payments are also popular methods.
Taxes in Luxembourg
The laws surrounding taxes in Luxembourg differ for residents and non-residents. An expat is considered a resident if they live in the country for more than six consecutive months. Non-residents pay tax only on the income earned within Luxembourg, while residents pay tax on their worldwide income. The tax an expat will pay depends on their annual income and can be anywhere between 0 percent and 42 percent.
Highly skilled expats recruited to work in Luxembourg may be eligible for the Impatriate Tax Regime. This is a tax exemption of up to 50 percent of an amount which cannot exceed 30 percent of an expat's annual salary. To qualify, you must earn a minimum of EUR 100,000 and be a resident of the country. This tax benefit can be enjoyed for up to eight years. If they think they qualify, expats should talk to their employer about applying.
Further reading
►See Cost of Living in Luxembourg for info regarding monthly expenses in the country
►For info about the job market in the country, read Working in Luxembourg
Photo credits: Euro currency by Roman Wimmers from Unsplash.
Are you an expat living in ?
Expat Arrivals is looking for locals to contribute to this guide, and answer forum questions from others planning their move to . Please contact us if you'd like to contribute.
Expat Health Insurance
Cigna Global Health Insurance
Moving your family abroad can be intimidating, but learning about medical options such as family health insurance early on can help you successfully settle in.
Limited-time offer: 10%* off for life!
Get covered today and enjoy 10%* off your health insurance policy!
*T&Cs apply
Moving Internationally?
International Movers. Get Quotes. Compare Prices.
Sirelo has a network of more than 500 international removal companies that can move your furniture and possessions to your new home. By filling in a form, you’ll get up to 5 quotes from recommended movers. This service is free of charge and will help you select an international moving company that suits your needs and budget.
Get your free no-obligation quotes from select removal companies now!