From photographed receipt to reimbursement, with no re-keying: recover deductible VAT, handle mileage allowances and keep your receipts for the ten years.

In short. Odoo's Expenses app lets an employee photograph a receipt; the expense is read, approved by a manager, then posted to the accounts and reimbursed, with no re-keying. In Luxembourg its value comes down to three things: recovering deductible VAT when the receipt is compliant, documenting each expense so it stays a deductible cost, and keeping the supporting pieces for the ten years the law requires. Set up properly, it brings your teams' spending into the accounts as it happens, not in a pile the following quarter.

A tank of fuel paid by a sales rep, a train ticket, a client lunch, a last-minute supplies run: in most SMEs these small amounts pile up on crumpled receipts, get reimbursed by guesswork at month-end, and reach the accountant with no VAT split and no stated purpose. Odoo's Expenses app exists to close that leak. Here is what it actually does, what it changes for a Luxembourg set of accounts, and where it needs configuration that few integrators think to do.

What is Odoo's Expenses app?

Expenses is the Odoo app that handles the full life of a cost an employee incurs on the company's behalf: capturing the receipt, getting it approved by a manager, posting it, then reimbursing it. The employee photographs the receipt from their phone, or forwards an emailed invoice to a dedicated address. Automatic recognition reads the amount, the date and the merchant, and drafts a pre-filled expense. It is the same principle as supplier bills, which we cover in our article on invoice OCR in Odoo.

What sets it apart from a reimbursement spreadsheet is one word: integration. In an Excel file, an expense line stays an expense line. In Odoo, an approved expense becomes an accounting entry posted to the right account, with its VAT and its attachment, and it triggers its own reimbursement. That link to the accounts is what matters for a Luxembourg SME, far more than the receipt-collecting part.

From receipt to reimbursement: the circuit with no re-keying

A typical expense follows four steps, and each one removes a manual re-entry that used to happen by hand.

  1. Capture. The employee photographs the receipt from the mobile app, or emails it in. The expense is created, categorised (meals, travel, lodging, supplies), with its amount and its tax.
  2. Approval. The manager receives the expense, checks the purpose and the receipt, then approves or rejects it. Nothing moves until a person has validated, which stands in as an internal control.
  3. Posting. On approval, Odoo creates the entry: the cost on the right PCN 2020 account, the deductible VAT isolated, the receipt attached to the entry.
  4. Reimbursement. An expense the employee paid out of pocket is paid back, through a payment or via payroll; an expense paid on a company card is simply reconciled.

At no point is a figure retyped. The expense exists once, from the receipt to the payment, and the accounts move at the pace expenses come in, not in end-of-quarter bursts.

Deductible VAT on expenses: where Luxembourg differs

This is the part that generic expense-tool pitches skip, and it is exactly where money is won or lost. A well-handled expense recovers its VAT; an expense dumped in bulk leaves it with the State.

The rules are those of deductible VAT in Luxembourg: to recover the tax on a cost, you need a compliant receipt that identifies the VAT amount and the supplier, a use tied to the business, and a tax that has become chargeable. A plain till receipt with no VAT split weakens the deduction. Odoo lets you attach the right Luxembourg tax to each expense category, so the deductible share is isolated at capture rather than rebuilt at year-end.

One reflex worth correcting for owners used to the French system: Luxembourg does not apply the automatic exclusions France places on certain costs. Here the right to deduct follows the real business use and the compliance of the receipt, not a grid of flat exclusions. Entertainment and representation costs stay deductible from the result when they genuinely serve the business and are documented (date, guest, purpose), a point we detail in our article on deductible business expenses in Luxembourg. The expense record is precisely where that documentation gets captured, on the spot, instead of going missing at an audit.

Your teams front expenses and the VAT leaks away? We set up the circuit so nothing slips through.

Talk to us about your case

Travel costs and mileage allowances

Travel is the bulk of the volume in most SMEs, and Odoo handles it two ways. Either the employee fronts a ticket, a toll or a tank of fuel, and the receipt follows the circuit above. Or the company reimburses the use of a personal vehicle at a per-kilometre rate: you then create an expense category based on a quantity, the number of kilometres, multiplied by a unit amount set in the tool.

Type of costIn OdooLuxembourg point to watch
Out-of-pocket (train, meal, hotel)Receipt photographed, VAT isolatedCompliant receipt to deduct the VAT
Fuel on a company cardReconciled, no reimbursementMixed use to split if the vehicle has private use
Mileage allowancePer-kilometre category, quantity times rateTax and social treatment of the rate to validate
Representation costsDedicated category, purpose requiredDocument the guest and the business purpose

An honest caveat on the mileage allowance: the per-kilometre amount and its tax and social treatment are not something you set at random in the tool. Odoo lets you configure the rate you have chosen, but it is your reimbursement policy and its consistency with Luxembourg rules that decide what is exempt and what is not. Better to settle that rate with your account manager than to copy a figure found elsewhere.

Receipts, ten years and FAIA: the expense as an accounting piece

A Luxembourg SME must keep its accounting pieces for ten years and produce a FAIA file in the event of an audit. Expenses are exactly the pieces that go missing most easily, because they live at the bottom of a pocket before they live at the bottom of a drawer.

When the receipt is photographed at source and stays attached to its entry, that risk disappears: the expense, its VAT and its receipt are linked, and finding last year's lunch receipt takes seconds. It is the same logic as document management in Odoo: a piece that enters the system cleanly feeds both the accounts and compliant archiving. One frank point, though: scanning a receipt does not always remove the need to keep the paper original depending on its nature, and the evidential value of a digitised piece is validated case by case rather than as a rule.

Who does what: the configuration that stops lost expenses

The expense record is a textbook case of what falls between two stools. An integrator knows how to switch on the Expenses app, create categories and wire up approval. An accounting firm knows which VAT is recoverable on which cost and which PCN 2020 account should receive the entry. But one rarely configures with the deduction and the close in mind, and the other does not touch the tool. The common result: a technically working app where categories carry the wrong tax, where VAT is not recovered, and where expenses pile up without producing correct entries.

That is exactly the coupling we handle. We configure the expense categories, their taxes and their accounts around the accounts we will then keep inside the same Odoo, as we describe for the books as a whole in our article on the Odoo accountant in Luxembourg. An approved expense then produces a clean entry, recovered VAT and an archived piece, not just a reimbursement line. It is the concrete application, on the team-spending side, of the accounting-firm approach in Luxembourg we stand for.

Who this fits less well

Let us be straight. The Expenses app earns its place as soon as several people incur costs and there is a will to recover the VAT and document the spending. For a sole director filing three receipts a month, the tool is oversized: a simple log will do. And if your travel involves complex daily allowances, cross-border rules or sector-specific scales, the tool captures the cost well, but the tax and social treatment is settled with an account manager, not by ticking a box. We would rather tell you at the first conversation.

Frequently asked questions

Can you recover VAT on an expense in Luxembourg?

Yes, if the receipt is compliant and identifies the VAT and the supplier, and if the cost is tied to the taxed activity. A plain receipt with no VAT split weakens the deduction. In Odoo, attaching the right Luxembourg tax to each expense category isolates the deductible share at capture.

Is the Expenses app part of Odoo Enterprise?

The app exists in Odoo, and the automatic digitising of receipts, like supplier-invoice recognition, is an Enterprise function. The edition choice is made at the level of the whole project, based on the apps you actually use, not for this single need.

How is an employee reimbursed?

A cost they paid out of pocket is paid back after approval, through a dedicated payment or via payroll, depending on your setup. A cost paid directly on a company card is not reimbursed: it is simply reconciled against the bank statement.

How do you handle mileage allowances in Odoo?

By creating an expense category based on a quantity, the number of kilometres multiplied by a unit rate you define. The tool computes the amount, but the level of the rate and its tax and social treatment come from your reimbursement policy, to validate against Luxembourg rules.

Is a scanned expense enough as an accounting piece?

Attached to its entry, it is the supporting piece that backs the cost and eases an audit. Disposing of the paper original, on the other hand, depends on the nature of the document and the scanning conditions, and is validated case by case.

Read more

Why Advena?

Expenses are the kind of topic decided at capture, not at the close. An integrator who does not keep your books rarely sets the right tax on each category; an accounting firm that does not touch your tool discovers your receipts months later, VAT already lost. We do both inside the same Odoo, configured for the PCN 2020 and Luxembourg VAT, with a fee announced in advance from 325 € per month, all in. The features described match Odoo 19, the stable version in October 2026; check the exact scope of your edition before you commit. The VAT rules cited come from Guichet.lu and the VAT law, consulted in October 2026; tax rules change, so check the official source before any binding decision.

Expenses that produce your entries and recover your VAT, not one more spreadsheet. Let's talk.

Request your fixed fee