E-invoicing in Luxembourg: A Complete Guide for Businesses

Overview

Luxembourg operates a Peppol-based e-invoicing framework aligned with EU Directive 2014/55/EU on electronic invoicing in public procurement. The Grand Duchy has implemented structured e-invoicing through the Peppol network using the BIS Billing 3.0 specification, with the Administration de la TVA (AED) as the supervising authority for VAT compliance.

Luxembourg does not operate a central clearance hub. Invoices travel directly between trading partners' Peppol access points via AS4 transport, with the tax authority relying on the Peppol delivery audit trail and periodic VAT returns for compliance oversight. This decentralised model makes integration straightforward: connecting once to a Peppol-certified access point covers both B2G delivery and cross-border EU invoicing.

The country identifier scheme for Luxembourg participants on the Peppol network is EAS code 9923, which maps to the Luxembourg VAT number (numéro de TVA). This is the primary routing key for both suppliers and buyers on the network.

Mandate and Timeline

Luxembourg transposed the EU B2G e-invoicing directive into national law via the Law of 30 May 2018 on electronic invoicing in public procurement. Key milestones:

Segment Status
B2G — central administration suppliers Mandatory since 2019
B2G — sub-central public authorities Mandatory since 2020
B2B — Luxembourg VAT entities Voluntary — no mandate currently
Cross-border EU suppliers to LU public sector Must support Peppol BIS 3.0

Luxembourg has not announced a B2B mandate date. EU-level ViDA (VAT in the Digital Age) developments may introduce a requirement in the 2028–2030 timeframe, but no domestic legislation is in force.

Format and Network

Luxembourg e-invoicing uses the standard OpenPeppol stack without a national CIUS extension:

No national invoice portal exists. Delivery via a registered Peppol access point is the only supported electronic channel for B2G.

Required Fields

A valid Peppol BIS Billing 3.0 invoice for Luxembourg must include:

Field Notes
invoiceNumber Unique sequential identifier
issueDate ISO 8601 date (YYYY-MM-DD)
dueDate Payment due date
currency EUR
buyerReference Buyer's purchase order or contract reference
supplier.taxId Luxembourg VAT number (LU + 8 digits)
supplier.endpointId Peppol ID using scheme 9923, e.g. 9923:LU12345678
supplier.endpointSchemeId 9923
buyer.taxId Buyer VAT number
buyer.endpointId Buyer's registered Peppol ID
lines[].taxCode EN 16931 VAT category: S (standard), Z (zero), E (exempt), AE (reverse charge)
lines[].vatRate Numeric rate matching taxCode; standard is 17

The buyerReference field maps to cbc:BuyerReference in the UBL output and is required by most Luxembourg public sector buyers to match the invoice to a purchase order.

Integration Example

Send a Luxembourg invoice via the Clearvo API:

curl -X POST https://api.clearvo.io/v1/invoices \
  -H "Authorization: Bearer $CLEARVO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "country": "LU",
    "documentType": "invoice",
    "invoiceNumber": "LU-INV-2026-001",
    "issueDate": "2026-06-16",
    "dueDate": "2026-07-16",
    "currency": "EUR",
    "buyerReference": "PO-2026-001",
    "supplier": {
      "name": "Clearvo Technologies Ltd",
      "taxId": "LU12345678",
      "taxIdCountry": "LU",
      "endpointId": "9923:LU12345678",
      "endpointSchemeId": "9923"
    },
    "buyer": {
      "name": "Luxembourg Buyer AS",
      "taxId": "BUYERLU001",
      "taxIdCountry": "LU",
      "endpointId": "9923:BUYERLU001",
      "endpointSchemeId": "9923"
    },
    "lines": [
      { "description": "Software consulting services", "quantity": 5, "unitPrice": 1000, "taxCode": "S", "vatRate": 17 },
      { "description": "Platform subscription annual", "quantity": 1, "unitPrice": 3600, "taxCode": "S", "vatRate": 17 }
    ]
  }'

The response includes a Peppol message ID, AS4 delivery receipt timestamp, and the generated UBL 2.1 XML. Clearvo performs a live SMP lookup against the Peppol SML before sending to confirm the buyer's access point is registered and to retrieve the supported document types.

Key Rules

VAT rate accuracy: Luxembourg has four VAT rates (17%, 14%, 8%, 3%). The vatRate field must match the taxCode category precisely — mismatches fail BIS 3.0 schema validation before the message leaves the access point.

Scheme 9923 is the sole LU identifier: Unlike countries that accept multiple EAS schemes, Luxembourg Peppol participants register exclusively under 9923. Always prefix the VAT number with 9923: in endpointId — passing a bare VAT number will fail SMP lookup.

No clearance step: Luxembourg does not require pre-clearance or real-time reporting to the AED. Peppol delivery is the compliance act for B2G; the AS4 MDN receipt from the buyer's access point is the authoritative audit record.

No tax engine bundled: Clearvo is a developer-first access point and does not include a tax determination engine. Your application supplies taxCode and vatRate per line. This keeps the API surface minimal and gives you full control over VAT treatment — important when Luxembourg's multiple reduced rates apply to mixed-supply invoices.

Buyer registration check before first send: Call GET /v1/participants/9923:{taxId} to confirm a buyer has a registered Peppol endpoint before the first invoice. Unregistered buyers cannot receive Peppol invoices; a fallback channel is required for B2B until they register.

Full schema reference, sandbox credentials, and participant lookup documentation are available at clearvo.io/docs.

Related country guides

Ready to handle e-invoicing in Luxembourg?

One API, all 31 countries. Sign up and get your API key within 24 hours.

Get started free →