Skip to main content

Digital compliance — e-invoicing, SAF-T & VAT

Modern bookkeeping compliance is no longer only which GAAP you report under. It is increasingly defined by structured e-invoicing, real-time digital reporting, and tax-data exports. These are a different kind of obligation from a basis of accounting:

A basis of accounting is a choice — when several apply, one wins (that's the Standards policy). A digital-compliance obligation is additive — every one that applies to your jurisdiction must be met. So these are not ranked; they are tracked per jurisdiction with a status and an effective date.

Verified June 2026 — fast-moving

Mandates and dates here move quarterly. The decisive EU event is ViDA, adopted 11 March 2025. Drive country dates from a maintained source rather than hardcoding; confirm against the European Commission eInvoicing country pages before relying.

EN 16931 — the European e-invoice standard

StandardIssuerWhat it governsStatusSource
EN 16931CEN (TC 434)The semantic data model + syntax bindings (UBL, CII) defining a compliant structured invoice — the legal anchor for all EU e-invoicingLive & foundational; revised version approved Oct 2025 extending the B2G model to B2B for ViDAEC eInvoicing — EN 16931 registry

Every EU mandate below is a profile (CIUS) of EN 16931.

Peppol

StandardIssuerWhat it governsStatusSource
Peppol BIS Billing 3.0OpenPeppolThe 4-corner delivery network + a CIUS of EN 16931 (UBL 2.1) for cross-border e-invoicing/e-procurementLive; the de-facto EU delivery rail (EU PINT Billing published Oct 2025)docs.peppol.eu — BIS Billing 3.0

ViDA — VAT in the Digital Age

PackageIssuerWhat it mandatesStatus & timelineSource
ViDAEU (Dir/Reg amending 2006/112/EC)Structured e-invoicing + real-time Digital Reporting Requirements (DRR) for intra-EU tradeAdopted 11 Mar 2025, in force Apr 2025. Member states may mandate domestic e-invoicing now; mandatory intra-EU e-invoicing + real-time reporting from 1 Jul 2030; legacy domestic regimes align by 1 Jan 2035Sovos — ViDA timeline (cross-check EUR-Lex OJ 25 Mar 2025)

Per-country e-invoicing mandates (status)

These are the live / upcoming binding obligations an EU seller faces. Track each with a status flag — they are not interchangeable.

CountryRegimeStatus (2026)Source
🇮🇹 ItalySdI / FatturaPALive since 2019 (derogation to 31 Dec 2027)EC eInvoicing — Italy
🇵🇱 PolandKSeFMandatory large taxpayers 1 Feb 2026, most others 1 Apr 2026Fiskaly — EU 2026 roadmap
🇪🇸 SpainVerifactuCertified software mandatory 1 Jul 2026; B2B (Crea y Crece) pendingFiskaly
🇫🇷 FranceRéforme facturationReceive + large/mid issue from 1 Sep 2026, SMEs 1 Sep 2027Fiskaly
🇩🇪 GermanyB2B e-invoicingReceive since Jan 2025; issue mandatory Jan 2027 (>€800k) / Jan 2028 (rest)Fiskaly
🇧🇪 BelgiumB2B via PeppolMandatory from Jan 2026Fiskaly

SAF-T — Standard Audit File for Tax

StandardIssuerWhat it governsStatusSource
SAF-TOECDHarmonised XML schema exporting ledgers/transactions to tax authorities for audit — the bookkeeping-export side of complianceMandatory/required in PT, PL, FR, ES, NO, LT, LU, AT, RO; PT annual SAF-T from FY2025; PL JPK_KR_PD/JPK_ST_KR first filings due 31 Mar 2026VATupdate — SAF-T overview

EU VAT

FrameworkIssuerWhat it governsSource
VAT Directive 2006/112/EC (+ OSS / IOSS)EU CouncilThe core VAT legal framework: rates, place-of-supply, invoicing content, returns; OSS/IOSS single-registration for cross-border/e-commerceEUR-Lex 2006/112/EC

United States (for contrast)

The US has no federal e-invoicing mandate. A Peppol-equivalent network, DBNAlliance, is live but voluntary. The binding US obligations remain US GAAP (or a tax/cash basis) plus state sales-tax rules — there is no SAF-T/ViDA equivalent to track yet.

StandardIssuerStatusSource
DBNAlliance (Peppol-style exchange)DBNAllianceLive but voluntaryEDICOM — US DBNAlliance

How Shillinq models this

These obligations are facts about the world, not a per-tenant choice — EN 16931, ViDA's dates, "Poland KSeF from 2026" are identical for everyone and change only when regulation changes. So they are not stored as OpenRegister config; they ship as a versioned static catalogue in code (ComplianceCatalogue, stamped with a VERSION/asOf) that updates with releases. Business logic reads it additively — meet every obligation that applies — and it is the machine-readable source for turning compliance rules into specs.

The only genuinely per-tenant input is which jurisdictions an administration operates in, which is derived from data the app already holds (administration / customer countries) and passed to ComplianceCatalogue::applicableTo(country) — no separate per-tenant schema is needed.

Contrast with the Standards policy: that is a per-tenant choice (which basis of accounting, in what order) → an OpenRegister object you edit and rank. Compliance obligations are a given → static versioned code.

Sources