ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

Netherlands — PEPPOL, NL-CIUS and Digipoort

The Netherlands have been historic pioneers of e-invoicing: as early as 2011, the Simplerinvoicing initiative federated Dutch operators around PEPPOL. Since 18 April 2019, e-invoicing is mandatory at the central B2G level; B2B remains voluntary but is widely adopted thanks to commercial Access Points.

Regulatory timeline

  • 1 January 2011 — Simplerinvoicing. Private-public initiative federating Dutch ERP, fintechs and banks around PEPPOL for B2B e-invoicing. Voluntary adoption in retail and public sector.
  • 1 January 2017 — Digipoort SBR pilot. Logius launches the Standard Business Reporting (SBR) Banken pilot on Digipoort, integrating e-invoice flows and fiscal returns.
  • 21 February 2018 — First NL-CIUS published. NEN publishes the NL-CIUS (Dutch Core Invoice Usage Specification) on EN 16931, legal basis for national B2G control.
  • 18 April 2019 — Law 2019/90 and Rijksoverheid obligation. Transposition of Directive 2014/55/EU: central government and centralised organisations required to accept and submit EN 16931 compliant e-invoices.
  • 1 January 2020 — Regions/municipalities extension. Provincies (12) and Gemeenten (340+) required to accept EN 16931 compliant e-invoices via PEPPOL.
  • 9 May 2023 — NL-CIUS v1.0.3. NEN CIUS update aligned with EN 16931:2017+A1:2019: new BR-CO rules on rounding and document currency amounts.
  • 11 March 2025 — ViDA adoption. EU Council adopts ViDA; the Dutch Ministry of Finance announces in November 2025 its consultation for a B2B mandate aligned to 2030.
  • 1 July 2030 — ViDA-aligned B2B mandate (planned). ViDA schedule for intra-EU B2B e-invoicing; the Netherlands aim at strict alignment without national early adoption.

Deep dives — 10 dedicated pages

Ten dedicated pages drill into every dimension of Dutch e-invoicing — the country's pioneering PEPPOL history, the 2017 B2G mandate, the post-ViDA roadmap (no domestic B2B mandate yet), the technical specs (Logius/Digipoort, SBR, Simplerinvoicing CIUS NL, KvK), and the real-world B2B usage in retail (Ahold/Jumbo/Lidl NL/Picnic) and automotive (Stellantis Born/DAF/VDL/Bosch NL).

Reform and history

  • Global PEPPOL pioneer · Simplerinvoicing 2009-2012 invents the 4-corner model. Logius PEPPOL operator since 2014. OpenPEPPOL Authority in The Hague since 1 January 2024. ~99% of B2G via PEPPOL.
  • 2017 B2G mandate · Aanbestedingswet 2012 art. 4.21 + Implementing Regulation EU 2017/1870. Central mandate 18 April 2017, sub-central 18 April 2019. EN 16931 + Simplerinvoicing CIUS NL.
  • ViDA roadmap Netherlands · No domestic B2B mandate in 2026. Belastingdienst awaiting ViDA implementation (1 July 2030). 35% of NL large enterprises already on voluntary PEPPOL (TNO 2024).

Technical specs

  • Logius and Digipoort · BZK ministry digital agency operating the Digipoort B2G gateway since 2010. ~120 M messages/year. Federated eHerkenning, PKIoverheid X.509 eIDAS, EU eDelivery AS4.
  • SBR — mandatory fiscal XBRL · Dutch XBRL framework mandatory for VAT (BTW), income tax, KvK annual accounts and CBS statistics since 2013. NT2025 taxonomy aligned with ESEF + ESRS CSRD.
  • Simplerinvoicing CIUS NL · Customisation of UBL Invoice for the Netherlands (NLCIUS). PEPPOL BIS Billing 3.0 CIUS maintained by NEN + Logius. KvK 8 digits ICD 0106, OIN ICD 0190, BSN forbidden.
  • KvK Handelsregister · Dutch Chamber of Commerce. 8-digit number mandatory for every business, ICD 0106 in PEPPOL. Public API Basisprofiel/Vestiging/UBO, PSD2/KYC integration.

Real-world B2B usage

  • EDIFACT retail Netherlands · Ahold Delhaize (Albert Heijn), Jumbo, Lidl NL, Aldi NL, Plus, Dirk, Hoogvliet, Picnic. GS1 Nederland EANCOM 2002, ~900 M active messages/year, INVOIC → PEPPOL UBL migration.
  • EDIFACT automotive Netherlands · Stellantis Born (Mini), DAF Trucks Eindhoven (PACCAR), VDL Groep, Bosch NL, Lely, Alfen EV. VDA + Galia + Odette V4 standards, OFTP2 over ENX, ~280 M messages/year.
  • VAT regimes — Wet OB 1968 · Standard 21%, verlaagd 9%, nul 0%. KOR (small entrepreneurs 20K€ threshold), reverse charge art. 12, margeregeling art. 28b. NLCIUS mandatory mentions BR-NL-VAT-001 to 004.

Technical schema

The NL-CIUS is a Dutch Core Invoice Usage Specification built on PEPPOL BIS Billing 3.0 (UBL 2.1). It restricts and clarifies EN 16931 for Dutch fiscal and administrative needs.

  • NL-CIUS Customization ID: urn:cen.eu:en16931:2017#compliant#urn:fdc:nen.nl:nlcius:v1.0 — references the PEPPOL profile and the NEN extension.
  • KvK-nummer: 8 digits, identifier from the Dutch Commercial Register; PEPPOL schemeID 0106 for the EndpointID.
  • BTW-nummer: NL + 9 digits + B + 2 digits (sub-number: B01 for main entity, B02-B99 for secondary entities).
  • OIN: Organisatie-identificatienummer for public organisations (20 digits), PEPPOL schemeID 0190.
  • VAT rates: 21 % standard, 9 % reduced (food, books, transport), 0 % (exports, intra-EU B2B services), exempt (health, education, finance).

Structure of an NL-CIUS UBL 2.1 invoice:

xmlnl-cius-ubl.xml
<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
         xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
         xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
  <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:nen.nl:nlcius:v1.0</cbc:CustomizationID>
  <cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
  <cbc:ID>NL-2026-00000142</cbc:ID>
  <cbc:IssueDate>2026-04-15</cbc:IssueDate>
  <cbc:DueDate>2026-05-15</cbc:DueDate>
  <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
  <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
  <cbc:BuyerReference>RIJK-2026-OPDR-00789</cbc:BuyerReference>
  <cac:AccountingSupplierParty>
    <cac:Party>
      <cbc:EndpointID schemeID="0106">12345678</cbc:EndpointID>
      <cac:PartyLegalEntity>
        <cbc:RegistrationName>Ediverse Demo Nederland BV</cbc:RegistrationName>
        <cbc:CompanyID schemeID="0106">12345678</cbc:CompanyID>
      </cac:PartyLegalEntity>
      <cac:PartyTaxScheme>
        <cbc:CompanyID>NL123456789B01</cbc:CompanyID>
        <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
      </cac:PartyTaxScheme>
    </cac:Party>
  </cac:AccountingSupplierParty>
  <cac:AccountingCustomerParty>
    <cac:Party>
      <cbc:EndpointID schemeID="0106">00000001003214345000</cbc:EndpointID>
      <cac:PartyLegalEntity>
        <cbc:RegistrationName>Rijksoverheid — Ministerie van Financiën</cbc:RegistrationName>
      </cac:PartyLegalEntity>
    </cac:Party>
  </cac:AccountingCustomerParty>
  <cac:TaxTotal>
    <cbc:TaxAmount currencyID="EUR">252.00</cbc:TaxAmount>
  </cac:TaxTotal>
  <cac:LegalMonetaryTotal>
    <cbc:LineExtensionAmount currencyID="EUR">1200.00</cbc:LineExtensionAmount>
    <cbc:TaxExclusiveAmount currencyID="EUR">1200.00</cbc:TaxExclusiveAmount>
    <cbc:TaxInclusiveAmount currencyID="EUR">1452.00</cbc:TaxInclusiveAmount>
    <cbc:PayableAmount currencyID="EUR">1452.00</cbc:PayableAmount>
  </cac:LegalMonetaryTotal>
  <cac:InvoiceLine>
    <cbc:ID>1</cbc:ID>
    <cbc:InvoicedQuantity unitCode="HUR">10</cbc:InvoicedQuantity>
    <cbc:LineExtensionAmount currencyID="EUR">1200.00</cbc:LineExtensionAmount>
    <cac:Item><cbc:Name>PEPPOL integration consulting</cbc:Name></cac:Item>
    <cac:Price><cbc:PriceAmount currencyID="EUR">120.00</cbc:PriceAmount></cac:Price>
  </cac:InvoiceLine>
</Invoice>

Submission flow

The Netherlands favour 4-corner PEPPOL: the supplier transmits via their PEPPOL Access Point, which resolves the recipient EndpointID via SMP (Service Metadata Publisher) and SML (Service Metadata Locator), then routes via AS4. For central B2G, Digipoort also serves as access point.

textnl-peppol-flow.txt
┌──────────────┐    ┌────────────────────┐    ┌──────────────┐
│ Supplier     │───>│ PEPPOL Access      │───>│ Recipient    │
│ (ERP, UBL    │    │ Point (sender      │    │ Access Point │
│  NL-CIUS)    │    │ side)              │    │ (Logius/SBR) │
└──────────────┘    └─────────┬──────────┘    └──────┬───────┘
                              │                       │
                              ▼ AS4                   ▼
                  ┌────────────────────┐    ┌──────────────┐
                  │ SML/SMP            │    │ Digipoort    │
                  │ (resolution)       │    │ (SBR portal  │
                  └────────────────────┘    │  central)    │
                                            └──────────────┘

Logius operates the government SMP (smp.peppol.logius.nl) and exposes Ministerial OINs. The Dutch PEPPOL Authority (Stichting Peppol Autoriteit Nederland) certifies commercial Access Points and ensures NL-CIUS compliance.

Validation

  • Belastingdienst: belastingdienst.nl — Tax Administration, VAT rules, archiving, sanctions.
  • Logius — Digipoort: logius.nl/diensten/digipoort — central B2G gateway, SBR and e-invoicing services.
  • PEPPOL Autoriteit NL: peppolautoriteit.nl — Dutch PEPPOL authority, Access Point accreditation, national registry.
  • NEN — NL-CIUS: nen.nl/nlcius — official NEN specifications, schemas, control Schematron.
  • STPE — Stichting ICT Toets: simplerinvoicing.org — Simplerinvoicing community, test tooling and best practices.

Common pitfalls

  1. KvK-nummer vs BTW-nummer confusion. The KvK-nummer (8 digits) identifies the company at the Commercial Register (PEPPOL schemeID 0106) while the BTW-nummer is the VAT identifier used for intra-EU reverse charge. Confusing the two in EndpointID and PartyTaxScheme/CompanyID is a frequent error that can make the invoice rejected by the SMP.
  2. Government OINs. To invoice a ministry or central agency, use the OIN (Organisatie-identificatienummer, 20 digits, schemeID 0190), not the KvK. The OIN registry is held by Logius and publicly accessible; verify the target OIN is enabled on the PEPPOL network.
  3. Mandatory BuyerReference. The cbc:BuyerReference field is mandatory in NL-CIUS: it must contain the buyer's internal reference (purchase order number, accounting reference). Empty or null = automatic NL-CIUS Schematron rejection.
  4. Document currency vs tax currency. A USD invoice must declare a document currency DocumentCurrencyCode = USD AND a tax currency TaxCurrencyCode = EUR with an official exchange rate (DNB). NL-CIUS BR-CO rules verify consistency; missing the TaxCurrencyCode triggers rejection.
  5. 7-year archiving Algemene wet. Retention is 7 years for fiscal documents (AWR art. 52) and 10 years for documents related to real estate. Archive format must guarantee authenticity, integrity, legibility; pure UBL is acceptable, but Factur-X PDF/A-3 is more practical for audit.
  • EN 16931 — European semantic comparison (NL-CIUS is compliant).
  • PEPPOL — European network, BIS Billing 3.0 format used by the Netherlands.
  • Belgium — BeNeLux neighbour with B2B mandate 2026 on PEPPOL.
  • Germany — neighbour with B2B mandate 2025-2028 and XRechnung.
  • France — neighbour with B2B mandate 2026-2027 and PPF+PDP architecture.
  • Official sources: belastingdienst.nl, logius.nl, peppolautoriteit.nl.