Invoicing a Belgian or German client without VAT is not automatic: valid number, correct wording, statement filed before the 25th.

A Luxembourg company selling to a VAT-registered business in another member state invoices without VAT, and the customer accounts for it at home: that is the reverse charge. Simple on paper. What costs money are the three obligations that come with it: validating the customer's VAT number, putting the right wording on the invoice, and filing the recapitulative statement before the 25th of the following month.

With a domestic market of 660,000 people, almost any growing Luxembourg SME ends up invoicing across the border. Going intra-EU is less an edge case than a rite of passage. Here is what the rules require, and how to translate that into Odoo so compliance comes from the configuration rather than from your bookkeeper's memory.

What is the VAT reverse charge?

The reverse charge is the mechanism by which the seller invoices without VAT and the buyer accounts for the tax in their own country, reporting it as both output and input VAT. For a fully taxable buyer the operation is cash neutral. It applies to supplies of goods and services between businesses registered for VAT in two different member states.

TransactionInvoicingWho reports the VATFiling obligation
Goods sold to an EU businessExempt, no VATThe customer, at homeVAT return + recapitulative statement for goods (+ Intrastat above thresholds)
B2B services within the EUNo VAT, wording Reverse chargeThe customer, at homeVAT return + recapitulative statement for services
Goods bought in another member stateSupplier invoice without VATYou, in LuxembourgVAT return (output and input VAT)
Sales to EU consumersCustomer country VAT above 10,000 € of EU salesYouOne Stop Shop (OSS)

The Luxembourg standard rate has been 17 % since 1 January 2024, after the one-year drop to 16 % in 2023. It does not apply to the exempt transactions above, but it remains the reference for everything else you invoice.

Your customer's VAT number is no longer a formality

Since 1 January 2020 and the entry into force of the quick fixes under Directive (EU) 2018/1910, the customer's valid VAT number, communicated to the supplier, is a substantive condition of the exemption. Put plainly: an invalid number means no exemption, and you, the Luxembourg seller, owe the VAT.

The second substantive condition is the filing of a correct recapitulative statement. Proof that the goods physically left Luxembourg is the third piece of the file, and the one most often missing when an audit lands.

The practical consequence is straightforward. Checking a VAT number on VIES cannot depend on whether a salesperson remembered to do it. It has to be a systematic control, ideally an automatic one.

Recapitulative statements: before the 25th, no exceptions

Recapitulative statements for goods and services must be filed electronically through the eCDF platform since 1 January 2020, before the 25th day of the month following the reporting period.

  • Goods: monthly as a rule. Quarterly filing stays available as long as your intra-EU supplies stay under 50,000 € excluding VAT, both in the current quarter and in each of the four preceding quarters.
  • Services: monthly as a rule, with a free option to file quarterly.

Crossing the 50,000 € threshold switches you to monthly filing from the month of the breach, and for at least the following four quarters. Many businesses find this out the hard way: one large contract signed in March can lock you into a monthly rhythm well into the next year.

Already invoicing across borders without knowing whether your statements are up to date? We review your last twelve months with you.

Review your VAT position

Odoo setup: it all comes down to the fiscal position

In Odoo, intra-EU trade is not handled invoice by invoice. It is handled once, in the fiscal positions, and then applies on its own.

Three settings that prevent 90 % of the errors

First, enable VAT number verification in the accounting settings. Odoo then queries the VIES database when a contact is saved and rejects an invalid number. This is the highest-return control in the whole configuration: it stops the error at the source, before the invoice exists.

Second, create an intra-EU fiscal position and assign it to VAT-registered customers established in another member state. It automatically replaces the 17 % VAT with the 0 % intra-EU tax, and above all it maps the entry to the correct tax grids. Those grids are what feed the eCDF VAT return. A badly wired fiscal position produces invoices that look right and a return that is wrong, which is the single most common problem we find when taking over an existing database.

Third, attach the legal wording to the fiscal position so that it prints on every relevant invoice without anyone thinking about it. The wording Reverse charge must appear on the invoice, together with the customer's VAT number. An invoice without it is an invoice a tax authority can challenge.

What Odoo will not do on its own

To be clear: Odoo produces the Luxembourg VAT return perfectly well, as we set out in our guide to the VAT return in Odoo. The recapitulative statement, however, does not come out of a single button. In the projects we run, we build it from a report filtered on the intra-EU fiscal position, aggregated by customer VAT number, then uploaded to eCDF. It is not hard, but it belongs in the configuration plan rather than being discovered on the 24th of the month.

The same holds for Intrastat: a statistical obligation separate from VAT, with its own thresholds, prepared from the same goods flows. Both feed on the same data, provided the chart of accounts and the taxes were laid down properly at the start, which is what we describe in our article on setting up Luxembourg accounting in Odoo.

Frequently asked questions

What if the customer will not give me a VAT number?

Without a valid VAT number you cannot apply the intra-EU exemption. You invoice with Luxembourg VAT, as you would for a consumer. Correcting it later, once the number arrives, is possible but tedious. Better to hold the order than to issue a wrong invoice.

Can a business be taxable but not VAT registered?

Yes, typically small businesses under a domestic exemption scheme. They do not always hold an active intra-EU VAT number. VIES is the only arbiter: if it does not validate, the exemption does not apply.

Do I have to file a recapitulative statement with no transactions in the period?

No. The statement is only due when there are intra-EU transactions to report. The periodic VAT return, on the other hand, remains due even at zero.

Does the reverse charge change my cash position?

On sales, yes: you no longer collect VAT that you would later pay over, which removes a cash timing effect that often worked in your favour. On intra-EU purchases it is neutral, as output and input VAT cancel out in the same return, provided you have a full right of deduction.

Going further

Why Advena?

Intra-EU VAT is exactly the kind of subject that falls between two stools: your ERP integrator has never heard of recapitulative statements, and your accounting firm never touches your fiscal positions. Compliance then rests on a manual clean-up at month end. We configure the tool and we produce the filing, which forces us to get both right.

Unsure about your fiscal positions, your invoice wording or your recapitulative statements? Let's look at it before an audit does.

Get in touch