<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>EU e-invoicing matrix (machine view) — Vera</title>
    <meta name="description" content="The EU e-invoicing matrix as markdown source: CIUS, syntax and CustomizationID per country, plus sourced legal mandates." />
    <link rel="canonical" href="https://vera-business.com/eu-e-invoicing" />
    <!-- Die andere Darstellung desselben Dokuments, maschinenlesbar ausgewiesen.
         rel=alternate + type=text/markdown ist die standardkonforme Art zu sagen
         "dasselbe, in einem anderen Format" — ein Client kann das auswerten,
         ohne dass wir eine Konvention erfinden. -->
    <link rel="alternate" type="text/markdown" href="https://vera-business.com/ai/eu-e-invoicing-matrix.md" title="Markdown" />
    <link rel="alternate" type="text/html" href="https://vera-business.com/eu-e-invoicing" title="Other rendering" />
    <meta property="og:title" content="EU e-invoicing matrix (machine view) — Vera" />
    <meta property="og:description" content="The EU e-invoicing matrix as markdown source: CIUS, syntax and CustomizationID per country, plus sourced legal mandates." />
    <meta property="og:url" content="undefined" />
    <meta property="og:type" content="website" />
    <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
    <link rel="stylesheet" href="/fonts/fonts.css" />
    <script type="module" crossorigin src="/assets/main-DDKKf1YO.js"></script>
    <link rel="modulepreload" crossorigin href="/assets/router-ByoAtDw_.js">
    <link rel="modulepreload" crossorigin href="/assets/preload-helper-TWaMjSX_.js">
    <link rel="modulepreload" crossorigin href="/assets/supabase-8d2KKllG.js">
    <link rel="stylesheet" crossorigin href="/assets/main-DffBPAxZ.css">
    <link rel="stylesheet" crossorigin href="/assets/MatrixRoutes-D2SsuC8e.css">
    <!-- NACH den Stylesheets: globals.css setzt body auf einen hellen Grund, und
         bei gleicher Spezifitaet gewinnt die spaetere Regel. Sonst blitzt beim
         Laden und beim Ueberscrollen Weiss durch. -->
    <style>html,body{margin:0;padding:0;background:#09090B;color:#FAFAFA}</style>
  </head>
  <body>
    <div id="root"><div data-mode="machine" class="_root_h6kns_24"><div class="_wrap_h6kns_55"><section class="_block_h6kns_62"><div class="_eyebrow_h6kns_108">Reference data</div><h1 class="_heading_h6kns_89 _h1_h6kns_95"><span class="_syntax_h6kns_119" aria-hidden="true"># </span>EU e-invoicing matrix</h1><p class="_text_h6kns_104 ">CIUS, syntax and CustomizationID for the 27 EU member states, plus the non-EU countries Vera supports.</p><p class="_text_h6kns_104 _dim_h6kns_106">Raw markdown of this page: <a class="_link_h6kns_126" href="/ai/eu-e-invoicing-matrix.md"><span class="_syntax_h6kns_119" aria-hidden="true">[</span><span class="_linkLabel_h6kns_127">/ai/eu-e-invoicing-matrix.md</span><span class="_syntax_h6kns_119" aria-hidden="true">]</span><span class="_linkUrl_h6kns_133" aria-hidden="true">(/ai/eu-e-invoicing-matrix.md)</span></a></p></section><section class="_block_h6kns_62"><h2 class="_heading_h6kns_89 _h2_h6kns_96"><span class="_syntax_h6kns_119" aria-hidden="true">## </span>Columns</h2><ul class="_list_h6kns_139"><li class="_listItem_h6kns_140"><span class="_syntax_h6kns_119" aria-hidden="true">- </span><strong>CIUS, Syntax, CustomizationID, Buyer legal ID</strong> are read from the invoice generator. The CustomizationID is the string Vera writes into BT-24.</li><li class="_listItem_h6kns_140"><span class="_syntax_h6kns_119" aria-hidden="true">- </span><strong>B2B mandate</strong> and <strong>Channel</strong> come from legislation. Each entry names its source and the date it was checked.</li><li class="_listItem_h6kns_140"><span class="_syntax_h6kns_119" aria-hidden="true">- </span><strong>not verified</strong> means no primary source has been checked for that cell.</li><li class="_listItem_h6kns_140"><span class="_syntax_h6kns_119" aria-hidden="true">- </span>What Vera emits and what a country mandates can differ. Italy: Vera emits Peppol BIS, the Italian mandate runs on FatturaPA through SdI.</li></ul><ul class="_list_h6kns_139"><li class="_listItem_h6kns_140"><span class="_syntax_h6kns_119" aria-hidden="true">- </span>EU member states: 27</li><li class="_listItem_h6kns_140"><span class="_syntax_h6kns_119" aria-hidden="true">- </span>Country-specific profiles: 16</li><li class="_listItem_h6kns_140"><span class="_syntax_h6kns_119" aria-hidden="true">- </span>On the EU Peppol default: 11</li><li class="_listItem_h6kns_140"><span class="_syntax_h6kns_119" aria-hidden="true">- </span>Non-EU supported: 4</li><li class="_listItem_h6kns_140"><span class="_syntax_h6kns_119" aria-hidden="true">- </span>Sourced mandates: 3 / 31</li></ul></section><section class="_block_h6kns_62"><h2 class="_heading_h6kns_89 _h2_h6kns_96"><span class="_syntax_h6kns_119" aria-hidden="true">## </span>Matrix</h2><div class="_tableBox_h6kns_145"><div class="_tableBar_h6kns_153"><span class="_tableHint_h6kns_160">31 rows</span><button type="button" class="_copy_h6kns_224" aria-label="Copy this table as markdown">copy</button></div><div class="_tableScroll_h6kns_166" tabindex="0" role="group" aria-label="EU e-invoicing matrix"><pre class="_tablePre_h6kns_169">| Code | Country | CIUS Vera generates | Syntax | CustomizationID (BT-24) | Buyer legal ID required | B2B mandate | Channel / clearing |
| --- | --- | --- | --- | --- | --- | --- | --- |
| AT | Austria | PEPPOL-BIS *(EU default)* | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | no | _not verified_ | _not verified_ |
| BE | Belgium | PEPPOL-BIS | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | yes (KBO/BCE number) | _not verified_ | _not verified_ |
| BG | Bulgaria | PEPPOL-BIS *(EU default)* | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | no | _not verified_ | _not verified_ |
| CH | Switzerland *(non-EU)* | PEPPOL-BIS | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | yes (Swiss UID) | _not verified_ | _not verified_ |
| CY | Cyprus | PEPPOL-BIS *(EU default)* | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | no | _not verified_ | _not verified_ |
| CZ | Czech Republic | PEPPOL-BIS *(EU default)* | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | no | _not verified_ | _not verified_ |
| DE | Germany | XRechnung | UBL | `urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0` | no | Receipt mandatory since 2025-01-01; issuing phased 2027-01-01 (&gt;€800k turnover) and 2028-01-01 (all) | Decentralised, no clearing platform |
| DK | Denmark | PEPPOL-BIS | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | yes (CVR number) | _not verified_ | _not verified_ |
| EE | Estonia | PEPPOL-BIS | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | no | _not verified_ | _not verified_ |
| ES | Spain | PEPPOL-BIS *(EU default)* | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | no | _not verified_ | _not verified_ |
| FI | Finland | PEPPOL-BIS *(EU default)* | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | no | _not verified_ | _not verified_ |
| FR | France | Factur-X | CII | `urn:cen.eu:en16931:2017` | no | Receipt 2026-09-01 (all); issuing 2026-09-01 (large/mid) and 2027-09-01 (SME) | PDP (Plateforme de Dématérialisation Partenaire) + e-reporting |
| GB | United Kingdom *(non-EU)* | PEPPOL-BIS | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | no | _not verified_ | _not verified_ |
| GR | Greece | PEPPOL-BIS | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | no | _not verified_ | _not verified_ |
| HR | Croatia | HR-CIUS | UBL | `urn:cen.eu:en16931:2017#compliant#urn:mfin.gov.hr:cius-2025:1.0#conformant#urn:mfin.gov.hr:ext-2025:1.0` | yes (OIB) | _not verified_ | _not verified_ |
| HU | Hungary | PEPPOL-BIS *(EU default)* | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | no | _not verified_ | _not verified_ |
| IE | Ireland | PEPPOL-BIS | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | no | _not verified_ | _not verified_ |
| IS | Iceland *(non-EU)* | PEPPOL-BIS | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | yes (Kennitala) | _not verified_ | _not verified_ |
| IT | Italy | PEPPOL-BIS | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | no | Mandatory since 2019-01-01 (derogation extended to 2027-12-31) | SdI (Sistema di Interscambio) clearing |
| LT | Lithuania | PEPPOL-BIS *(EU default)* | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | no | _not verified_ | _not verified_ |
| LU | Luxembourg | PEPPOL-BIS *(EU default)* | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | no | _not verified_ | _not verified_ |
| LV | Latvia | PEPPOL-BIS | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | no | _not verified_ | _not verified_ |
| MT | Malta | PEPPOL-BIS *(EU default)* | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | no | _not verified_ | _not verified_ |
| NL | Netherlands | PEPPOL-BIS | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | yes (KVK number) | _not verified_ | _not verified_ |
| NO | Norway *(non-EU)* | PEPPOL-BIS | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | yes (Organisasjonsnummer) | _not verified_ | _not verified_ |
| PL | Poland | PEPPOL-BIS *(EU default)* | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | no | _not verified_ | _not verified_ |
| PT | Portugal | CIUS-PT | UBL | `urn:cen.eu:en16931:2017#compliant#urn:feap.gov.pt:CIUS-PT:2.1.1` | no | _not verified_ | _not verified_ |
| RO | Romania | CIUS-RO | UBL | `urn:cen.eu:en16931:2017#compliant#urn:efactura.mfinante.ro:CIUS-RO:1.0.1` | no | _not verified_ | _not verified_ |
| SE | Sweden | PEPPOL-BIS | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | no | _not verified_ | _not verified_ |
| SI | Slovenia | PEPPOL-BIS | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | no | _not verified_ | _not verified_ |
| SK | Slovakia | PEPPOL-BIS | UBL | `urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0` | no | _not verified_ | _not verified_ |</pre></div></div></section><section class="_block_h6kns_62"><h2 class="_heading_h6kns_89 _h2_h6kns_96"><span class="_syntax_h6kns_119" aria-hidden="true">## </span>ViDA applies EU-wide, not per country</h2><p class="_text_h6kns_104 ">Digital Reporting Requirements come into force 2030-07-01 (adopted 2025-03 (EU Council)).</p><p class="_text_h6kns_104 _dim_h6kns_106">Digital Reporting Requirements: real-time reporting + mandatory structured e-invoicing for cross-border intra-EU B2B.</p></section><section class="_block_h6kns_62"><h2 class="_heading_h6kns_89 _h2_h6kns_96"><span class="_syntax_h6kns_119" aria-hidden="true">## </span>Corrections</h2><p class="_text_h6kns_104 ">A wrong row is worse than a missing one. Send the primary source to <a class="_link_h6kns_126" href="mailto:hello@vera-business.com"><span class="_syntax_h6kns_119" aria-hidden="true">[</span><span class="_linkLabel_h6kns_127">hello@vera-business.com</span><span class="_syntax_h6kns_119" aria-hidden="true">]</span><span class="_linkUrl_h6kns_133" aria-hidden="true">(mailto:hello@vera-business.com)</span></a> and it gets fixed and re-dated.</p><div class="_copyRow_iez6j_39"><button type="button" class="_copy_h6kns_224" aria-label="Copy the whole page as markdown">copy</button><span class="_copyNote_iez6j_40">the whole page, exactly as the file serves it</span></div></section></div></div></div>
  </body>
</html>
