DOMAIN:EU_REGULATION:PEPPOL_E_INVOICING¶
OWNER: eric
ALSO_USED_BY: julian, aimee, margot, ALL dev agents building invoicing features
UPDATED: 2026-03-26
SCOPE: Peppol e-invoicing network, EU ViDA regulation, implementation patterns for GE projects
OVERVIEW¶
Peppol (Pan-European Public Procurement On-Line) is the EU-wide e-invoicing network
enabling electronic exchange of standardised business documents between organisations
across borders. Originally designed for public procurement, Peppol is rapidly expanding
to cover B2B transactions as EU Member States mandate structured e-invoicing.
WHY_GE_CARES: every client project that involves invoicing must consider Peppol compliance.
B2G is already mandatory in the Netherlands. B2B mandates are arriving across Europe.
GE's own invoicing (Eric + Margot domain) must be Peppol-compliant for government clients.
EU VIDA — VAT IN THE DIGITAL AGE¶
WHAT_IT_IS¶
ViDA is the EU's comprehensive plan to modernise the VAT system through digitalisation.
It covers three pillars: digital reporting, platform economy VAT, and single VAT registration.
Formally adopted by the Council on 11 March 2025. Published in EU Official Journal 25 March 2025.
Entered into force 14 April 2025.
THREE_PILLARS¶
PILLAR_1 — DIGITAL_REPORTING_REQUIREMENTS (DRR):
- mandatory e-invoicing and digital reporting for cross-border B2B transactions
- replaces current ESL (European Sales Listings) returns
- mandatory from 1 July 2030
- Member States must transpose directive by 31 December 2026
PILLAR_2 — PLATFORM_ECONOMY:
- deemed-supplier rules for platforms facilitating accommodation and passenger transport
- platforms become VAT-liable for underlying transactions
- effective 1 July 2028 (Member States may defer to 1 January 2030)
PILLAR_3 — SINGLE_VAT_REGISTRATION:
- extension of One Stop Shop (OSS) to cover own-stock movements
- reduces need for multiple VAT registrations
- effective July 2028
VIDA_IMMEDIATE_EFFECTS (since 14 April 2025)¶
- Member States may mandate domestic B2B e-invoicing WITHOUT prior EU approval
- buyers can NO LONGER legally refuse to receive structured e-invoices
- the Commission released implementation plan in September 2025
VIDA_TIMELINE¶
| Date | Milestone |
|---|---|
| 14 Apr 2025 | ViDA in force, MS can mandate e-invoicing |
| 31 Dec 2026 | MS must transpose ViDA Directive |
| 1 Jul 2028 | Platform deemed-supplier + OSS extension |
| 1 Jul 2030 | Mandatory cross-border B2B e-invoicing + DRR |
| 2035 | Full harmonisation of existing domestic systems |
PEPPOL NETWORK ARCHITECTURE¶
FOUR_CORNER_MODEL¶
The standard Peppol exchange model has four participants:
SENDER → SENDER_ACCESS_POINT → PEPPOL_NETWORK → RECEIVER_ACCESS_POINT → RECEIVER
(C1) (C2) (C3) (C4)
SENDER (Corner 1): the business sending the invoice
SENDER_AP (Corner 2): certified Access Point that sends on behalf of the sender
RECEIVER_AP (Corner 3): certified Access Point that receives on behalf of the receiver
RECEIVER (Corner 4): the business receiving the invoice
FIVE_CORNER_MODEL (Netherlands 2030)¶
The Netherlands plans to extend Peppol with a fifth corner for tax authority reporting:
SENDER → SENDER_AP → PEPPOL_NETWORK → RECEIVER_AP → RECEIVER
↓ ↓
TAX_DATA_EXTRACTION TAX_DATA_EXTRACTION
↓ ↓
BELASTINGDIENST (Corner 5)
In this model, Access Points extract core transaction data and report it
to the Belastingdienst in near real time. This enables fraud detection
and analytics without requiring a centralised government portal.
KEY_INFRASTRUCTURE_COMPONENTS¶
SMP — SERVICE_METADATA_PUBLISHER:
- directory service that maps participant IDs to their Access Point
- each participant registers in SMP with their Peppol ID and supported document types
- SMP lookup happens before every document exchange
SML — SERVICE_METADATA_LOCATOR:
- DNS-based service that resolves which SMP holds a participant's metadata
- operated centrally by OpenPeppol
ACCESS_POINT:
- certified service provider that sends/receives documents on the Peppol network
- must pass OpenPeppol certification and comply with transport infrastructure agreements
- handles AS4 message exchange protocol
PEPPOL_ID_STRUCTURE¶
Every participant is identified by a Peppol Participant Identifier:
EXAMPLES:
- 0106:12345678 — Netherlands KvK number (scheme 0106)
- 0190:NL123456789B01 — Netherlands BTW number (scheme 0190)
- 0208:0123456789 — Belgium KBO/BCE number (scheme 0208)
- 9930:DE123456789 — Germany VAT ID (scheme 9930)
The scheme ID determines the identifier type. Common Dutch schemes:
0106 = KvK number, 0190 = OIN (government), 0190 = BTW-id
PEPPOL BIS 3.0 — TECHNICAL FORMAT¶
STANDARDS_HIERARCHY¶
The format follows a layered standards architecture:
LAYER 1: UBL 2.1 (OASIS) — base XML schema for Invoice/CreditNote
↓
LAYER 2: EN 16931 (CEN) — European semantic model for core invoices
↓
LAYER 3: Peppol BIS Billing 3.0 — CIUS (Core Invoice Usage Specification) of EN 16931
↓
LAYER 4: NLCIUS / SI-UBL 2.0 — Dutch national CIUS (additional rules)
CIUS = Core Invoice Usage Specification: a constrained subset of the European standard
that adds country-specific or community-specific rules.
DOCUMENT_TYPE_IDENTIFIERS¶
INVOICE:
urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1
CREDIT_NOTE:
urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2::CreditNote##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1
NLCIUS_CUSTOMIZATION_ID¶
urn:cen.eu:en16931:2017#compliant#urn:fdc:nen.nl:nlcius:v1.0
The NLCIUS was defined by STPE (Standaardisatieplatform E-factureren).
SI-UBL 2.0 is the syntax binding of NLCIUS to UBL.
SI-UBL 2.0 will eventually be phased out in favour of Peppol BIS 3.0 exclusively.
VALIDATION_LAYERS¶
Validation of a Peppol invoice occurs in four stages:
STAGE_1 — XML schema validation (UBL 2.1 mandatory elements present)
STAGE_2 — Code list validation (currencies ISO 4217, countries ISO 3166, tax codes)
STAGE_3 — EN 16931 business rules (mandatory fields, calculation checks, date logic)
STAGE_4 — Peppol BIS or NLCIUS-specific rules (EndpointID mandatory, empty elements forbidden)
VALIDATION_ARTEFACTS:
- Schematron files from OpenPeppol (Peppol BIS rules)
- si-ubl-2.0.sch from peppolautoriteit-nl (NLCIUS rules)
- GitHub: github.com/peppolautoriteit-nl/validation
KEY_DIFFERENCES — PEPPOL BIS 3.0 vs NLCIUS¶
| Element | Peppol BIS 3.0 | NLCIUS / SI-UBL 2.0 |
|---|---|---|
| EndpointID (BT-34) | MANDATORY | Optional |
| Empty elements | FATAL error | Warning |
| Direct debit mandate ref | MANDATORY if direct debit | Not required |
| Primary use | Cross-border EU | Domestic NL |
RECOMMENDATION: for new implementations, use Peppol BIS 3.0 exclusively.
It is a superset of NLCIUS for practical purposes. OpenPeppol has announced
convergence into BIS 4.0 (expected late 2025 or early 2026).
NETHERLANDS — COUNTRY-SPECIFIC¶
B2G (MANDATORY since 2017/2019)¶
All suppliers to Dutch government entities must send invoices electronically
via Peppol BIS Billing 3.0 or SI-UBL 2.0 format. This has been mandatory since 2019
for central government and expanded to all government levels.
FORMAT: Peppol BIS Billing 3.0 (preferred) or SI-UBL 2.0
NETWORK: Peppol
AUTHORITY: Nederlandse Peppol Autoriteit (NPA) at peppol.nu
B2B (VOLUNTARY NOW — MANDATE PLANNED JULY 2030)¶
STATUS: no B2B e-invoicing mandate yet — voluntary, buyer consent required
PLANNED: the Ministry of Finance commissioned an EY report (published 10 March 2026)
recommending "ViDA-B" model — extending e-invoicing to domestic B2B transactions
ROADMAP:
| Phase | Date | Activity |
|---|---|---|
| Policy design | 2025-2028 | Framework development |
| Public consultation | Q4 2026 | Draft legislation for comment |
| Draft legislation | July 2028 | Formal bill |
| Infrastructure build | 2029-2030 | Technical rollout |
| Full launch domestic | Jan 2030 | Domestic B2B mandatory |
| Cross-border DRR | Jul 2030 | ViDA cross-border reporting |
ARCHIVING: 7 years (10 years for immovable property transactions)
CROSS_BORDER — NEIGHBOURING COUNTRIES¶
BELGIUM: B2B mandatory via Peppol since 1 January 2026
- tolerance period first 3 months (no sanctions if reasonable efforts shown)
- e-Reporting via Peppol planned January 2028
- fines EUR 1,500-5,000 per infringement
GERMANY: phased since January 2025
- all companies must RECEIVE EN-compliant e-invoices since 1 January 2025
- large businesses must ISSUE from 2027, all businesses by 2028
- formats: XRechnung (primary), ZUGFeRD 2.1 (hybrid), Peppol BIS 3.0 (supported)
FRANCE: phased rollout 2026
POLAND: KSeF clearance model, large taxpayers from February 2026, all from April 2026
GREECE: B2B e-invoicing mandatory from February 2026 via myDATA platform
CROATIA: B2B/B2G mandatory from January 2026
IF clients trade with BE/DE → B2B e-invoicing likely needed NOW
EU-BASED ACCESS POINT PROVIDERS¶
GE MUST use EU-based providers for data sovereignty reasons.
RECOMMENDED¶
STORECOVE (Netherlands):
- ISO 27001 certified, 10+ years e-invoicing experience
- certified Peppol AP, partner of peppol.nu (since October 2025)
- 14.5% market share in Belgian Peppol market
- supports 18+ formats (Peppol BIS, FatturaPA, XRechnung, ZUGFeRD, PINT)
- single API connection for 30+ countries
- white-label approach — integrates into ERP/accounting software
- free 30-day sandbox for testing
BASWARE (Finland):
- enterprise-grade AP/AR automation
- strong in large enterprise segment
- Peppol certified across multiple countries
TRADESHIFT (Denmark):
- supply chain platform with Peppol AP
- strong in procurement integration
ALSO_NOTABLE¶
D_SOFT (Belgium/Netherlands): DocTrails platform, 25+ years experience, ISO 27001
PAGERO (Sweden): part of Thomson Reuters, strong in compliance
ECOSIO (Austria): EDI + Peppol integration specialist
GE CLIENT PROJECTS — IMPLEMENTATION PATTERNS¶
WHEN_TO_IMPLEMENT_PEPPOL¶
1. client sells to Dutch government? → Peppol BIS 3.0 MANDATORY now
2. client sells B2B to Belgian companies? → MANDATORY since Jan 2026
3. client sells B2B to German companies? → must receive since Jan 2025
4. client sells B2B domestically in NL? → voluntary now, mandate Jul 2030
5. client is a marketplace/platform? → may need to issue on behalf of sellers
INTEGRATION_ARCHITECTURE¶
OPTION_A — DIRECT_AP_INTEGRATION (recommended for volume):
- integrate with Access Point provider API (e.g., Storecove)
- client system generates UBL 2.1 XML → sends via AP API → Peppol network
- AP handles SMP lookup, AS4 transport, delivery confirmation
OPTION_B — ACCOUNTING_SOFTWARE_NATIVE:
- use built-in Peppol support in accounting packages
- Exact Online: native Peppol support via Scan & Herken
- Moneybird: Peppol sending via UBL export + AP
- suitable for SME clients without custom invoicing
OPTION_C — HYBRID:
- custom invoicing system generates invoices
- exports to accounting software for Peppol transmission
- common pattern during transition to full integration
INTEGRATION_WITH_ACCOUNTING_SOFTWARE¶
EXACT_ONLINE:
- REST API for invoice creation
- native UBL export
- Peppol sending via third-party AP integration
- XML import/export for bulk operations
MONEYBIRD:
- REST API v2 for full invoice lifecycle
- UBL 2.1 export supported
- Peppol via external AP (Storecove integration available)
- webhook support for real-time sync
GE INTERNAL INVOICING¶
GE's own invoicing must be Peppol-compliant when invoicing government clients
or Belgian companies. Eric (contract/KYC) and Margot (invoicing) own this domain.
REQUIREMENTS:
- GE needs a Peppol ID (based on KvK number, scheme 0106)
- GE needs an Access Point subscription for sending
- invoices must be Peppol BIS 3.0 format
- archiving: 7 years minimum, 10 for property-related
CURRENT_STATUS: assess whether GE's accounting software supports Peppol natively
or whether AP integration is needed.
ANTI_PATTERNS AND FIXES¶
ANTI_PATTERN: generating PDF invoices and calling them "e-invoices"
FIX: e-invoice means structured XML (UBL 2.1). PDF is NOT an e-invoice under ViDA.
A PDF attachment is allowed alongside the structured data but is not the invoice itself.
ANTI_PATTERN: using a US-based e-invoicing provider for EU compliance
FIX: use EU-based Access Points. Data sovereignty matters. Storecove (NL), Basware (FI),
Tradeshift (DK) are all EU-domiciled.
ANTI_PATTERN: hardcoding tax rates in invoice generation code
FIX: tax rates change. Use a VAT rate lookup service or configurable rate tables.
Netherlands BTW rates: 21% standard, 9% reduced, 0% zero-rated.
ANTI_PATTERN: skipping Schematron validation before sending
FIX: always validate against both EN 16931 rules AND Peppol BIS/NLCIUS rules
before submitting to the Access Point. Invalid invoices get rejected.
ANTI_PATTERN: not handling credit notes in the invoice flow
FIX: Peppol BIS 3.0 defines a separate CreditNote document type.
Credit notes must reference the original invoice (InvoiceDocumentReference).
Build the credit note flow from day one.
ANTI_PATTERN: ignoring the EndpointID requirement
FIX: Peppol BIS 3.0 requires EndpointID (BT-34). This is the Peppol participant ID
of the receiver. Without it, the AP cannot route the document. Always include it.
ANTI_PATTERN: treating domestic and cross-border invoices as the same flow
FIX: cross-border invoices may require reverse charge mechanism, different VAT treatment,
and potentially different reporting. Build separate validation paths.
TESTING¶
PEPPOL_TESTBED: OpenPeppol provides a test environment
STORECOVE_SANDBOX: free 30-day sandbox for API testing
VALIDATION_TOOLS:
- Peppol validation artefacts on GitHub
- ecosio online validator: validate UBL against EN 16931 + Peppol rules
- peppolautoriteit-nl/testset: reference test invoices for NLCIUS
READ_ALSO:
- domains/eu-regulation/vat-digital-reporting.md
- domains/eu-regulation/digital-signatures.md
- domains/client-communications/contract-kyc.md