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.

Simplerinvoicing CIUS NL — the national CIUS

Simplerinvoicing CIUS NL (also called "NLCIUS" in NEN documentation) is the Dutch specialisation of PEPPOL BIS Billing 3.0 / EN 16931. It adds constraints specific to the NL legal and banking context: mandatory KvK Handelsregister number, BSN privacy handling, restricted BTW VAT codes, enhanced IBAN markup. It is the layer that makes a UBL invoice "valid in the Netherlands".

Origin and continuity 2009-2026

Simplerinvoicing CIUS NL was not born in 2017 with EN 16931 — it has evolved since the Simplerinvoicing format of 2009. Key milestones:

  • 2009-2012 — Simplerinvoicing 1.0. UBL 2.0 format + NL extensions. Identifier urn:www.simplerinvoicing.org:si:si-ubl:1.0.
  • 2013-2017 — Simplerinvoicing 2.0. Migration to UBL 2.1. First EN 16931 (draft) alignment.
  • 2018-2020 — Transition period. Coexistence of Simplerinvoicing 2.0 and PEPPOL BIS Billing 3.0 (recommended for cross-border).
  • 2021 — NLCIUS 1.0 (NEN-NLCIUS-1). Official publication by NEN as NL standard (national ISO equivalent). Progressive deprecation of Simplerinvoicing 2.0.
  • 2023 — NLCIUS 1.0.2. Minor corrections, alignment with PEPPOL BIS 3.0.16.
  • 1 January 2025 — Total Simplerinvoicing 2.0 sunset. Only NLCIUS 1.0 accepted in B2G.
  • May 2025 — NLCIUS 1.0.3. Current version. Adds forbidden BSN code in Schematron rules.

CIUS structure — what gets customised?

A CIUS (Core Invoice Usage Specification) — per EN 16931 — never modifies the core standard: it restricts. NLCIUS applies this logic to PEPPOL BIS Billing 3.0, which is itself a CIUS of EN 16931. It is thus a "CIUS of a CIUS".

text nlcius-customizations.txt
Comparison PEPPOL BIS Billing 3.0 vs. Simplerinvoicing CIUS NL:

  Element                              | PEPPOL BIS 3.0  | CIUS NL
  ─────────────────────────────────────┼─────────────────┼──────────────────────
  EndpointID schemeID                  | any ICD         | 0106 (KvK) or
                                       |                 | 0190 (OIN) mandatory
  ─────────────────────────────────────┼─────────────────┼──────────────────────
  PartyLegalEntity/CompanyID           | optional        | mandatory
                                       |                 |   (KvK 8 digits)
  ─────────────────────────────────────┼─────────────────┼──────────────────────
  PaymentMeans/Code 58 (SEPA Credit)   | optional        | IBAN mandatory
                                       |                 |   valid NL scheme
  ─────────────────────────────────────┼─────────────────┼──────────────────────
  BTW TaxCategory codes                | S/Z/E/AE/G/K…   | restricted to
                                       |                 |   S, Z, E, AE, K, G
                                       |                 |   (not all EN 16931)
  ─────────────────────────────────────┼─────────────────┼──────────────────────
  BuyerReference (BT-10)               | recommended     | MANDATORY for B2G
                                       |                 |   (admin internal
                                       |                 |    reference)
  ─────────────────────────────────────┼─────────────────┼──────────────────────
  BSN (Burgerservicenummer)            | not documented  | FORBIDDEN —
                                       |                 |   AVG/GDPR privacy
  ─────────────────────────────────────┼─────────────────┼──────────────────────
  Document totals                      | tolerance 0.02€ | tolerance 0.01€
                                       |                 |   (stricter)
  ─────────────────────────────────────┼─────────────────┼──────────────────────
  Charges/Allowances (BG-20/BG-21)     | free            | code mandatory
                                       |                 |   (UNCL 7161/5189)

KvK and OIN identifiers

Two national identifiers structure the Dutch PEPPOL ecosystem:

  • KvK (Handelsregister): Chamber of Commerce number, 8 digits. Registered as ICD 0106 in the PEPPOL ICD registry. Every NL company registered in the KvK must use this number in EndpointID and PartyLegalEntity/CompanyID. See dedicated KvK page.
  • OIN (Overheidsidentificatienummer): Dutch public bodies identifier, 20 digits. Registered as ICD 0190. Used to address ministries, ZBOs, municipalities, provinces. Managed by Logius in the Digikoppeling Serviceregister.

BSN and privacy — a special case

The BSN (Burgerservicenummer) is the Dutch social security number for natural persons (9 digits). Under Dutch law (Wet Algemene Bepalingen Burgerservicenummer 2007), it is FORBIDDEN to disseminate the BSN outside cases explicitly provided by law (healthcare, tax administration, employer).

BTW VAT mapping → EN 16931 codelists

NL BTW regimeDescriptionTaxCategory codeRate
StandardStandard rate 21%S21.00
VerlaagdReduced 9% (food, books, transport)S9.00
Nul0% (intra-EU export, zero-rated)Z0.00
VrijgesteldExempt (healthcare, education, art. 11 OB)E0.00
VerlegdReverse charge (art. 12 OB)AE0.00
MargeregelingMargin (second-hand, art. 28b OB)G0.00
KOR (small entrepreneurs)Small businesses, 20 000 € thresholdK0.00

See BTW regimes page for the detailed legal basis.

IBAN and bank references

NLCIUS enforces strict IBAN validation:

  • NL IBAN format: NL[2]ABCD[10] — 4 bank letters + 10 digits. ISO 13616 mod-97 validation.
  • BIC mandatory if the payer account is not in the SEPA zone (BIC is optional for SEPA).
  • Payment code: 58 (SEPA Credit Transfer) or 59 (SEPA Direct Debit) recommended. Code 30 (national credit transfer) historic but to be avoided.
  • Account name (BT-85) recommended for audit traceability.

Full UBL example

Synthetic example of an NLCIUS B2G invoice — Voorbeeld B.V. supplier billing the Ministerie van Economische Zaken for a consultancy engagement:

xml nlcius-b2g-snippet.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">

  <!-- CustomizationID — combines EN 16931 + PEPPOL BIS + CIUS NL -->
  <cbc:CustomizationID>
    urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0#conformant#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>2026-NL-1042</cbc:ID>
  <cbc:IssueDate>2026-05-19</cbc:IssueDate>
  <cbc:DueDate>2026-06-18</cbc:DueDate>
  <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
  <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
  <cbc:BuyerReference>OINNL00000123</cbc:BuyerReference>

  <!-- Supplier — KvK Handelsregister identifier -->
  <cac:AccountingSupplierParty>
    <cac:Party>
      <cbc:EndpointID schemeID="0106">12345678</cbc:EndpointID>
      <cac:PartyIdentification>
        <cbc:ID schemeID="0106">12345678</cbc:ID>
      </cac:PartyIdentification>
      <cac:PartyName>
        <cbc:Name>Voorbeeld B.V.</cbc:Name>
      </cac:PartyName>
      <cac:PostalAddress>
        <cbc:StreetName>Voorbeeldstraat 12</cbc:StreetName>
        <cbc:CityName>Amsterdam</cbc:CityName>
        <cbc:PostalZone>1011AA</cbc:PostalZone>
        <cac:Country><cbc:IdentificationCode>NL</cbc:IdentificationCode></cac:Country>
      </cac:PostalAddress>
      <cac:PartyTaxScheme>
        <cbc:CompanyID>NL123456789B01</cbc:CompanyID>
        <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
      </cac:PartyTaxScheme>
      <cac:PartyLegalEntity>
        <cbc:RegistrationName>Voorbeeld B.V.</cbc:RegistrationName>
        <cbc:CompanyID schemeID="0106">12345678</cbc:CompanyID>
      </cac:PartyLegalEntity>
    </cac:Party>
  </cac:AccountingSupplierParty>

  <!-- Customer — OIN (NL public administration) -->
  <cac:AccountingCustomerParty>
    <cac:Party>
      <cbc:EndpointID schemeID="0190">00000001003214345000</cbc:EndpointID>
      <cac:PartyName>
        <cbc:Name>Ministerie van Economische Zaken</cbc:Name>
      </cac:PartyName>
      <cac:PartyLegalEntity>
        <cbc:RegistrationName>Ministerie van Economische Zaken</cbc:RegistrationName>
        <cbc:CompanyID schemeID="0190">00000001003214345000</cbc:CompanyID>
      </cac:PartyLegalEntity>
    </cac:Party>
  </cac:AccountingCustomerParty>

  <!-- IBAN mandatory if SEPA credit transfer -->
  <cac:PaymentMeans>
    <cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>
    <cac:PayeeFinancialAccount>
      <cbc:ID>NL44RABO0123456789</cbc:ID>
      <cbc:Name>Voorbeeld B.V.</cbc:Name>
      <cac:FinancialInstitutionBranch>
        <cbc:ID>RABONL2U</cbc:ID>
      </cac:FinancialInstitutionBranch>
    </cac:PayeeFinancialAccount>
  </cac:PaymentMeans>

  <!-- Taxation — 21% standard rate -->
  <cac:TaxTotal>
    <cbc:TaxAmount currencyID="EUR">525.00</cbc:TaxAmount>
    <cac:TaxSubtotal>
      <cbc:TaxableAmount currencyID="EUR">2500.00</cbc:TaxableAmount>
      <cbc:TaxAmount currencyID="EUR">525.00</cbc:TaxAmount>
      <cac:TaxCategory>
        <cbc:ID>S</cbc:ID>
        <cbc:Percent>21</cbc:Percent>
        <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
      </cac:TaxCategory>
    </cac:TaxSubtotal>
  </cac:TaxTotal>

  <cac:LegalMonetaryTotal>
    <cbc:LineExtensionAmount currencyID="EUR">2500.00</cbc:LineExtensionAmount>
    <cbc:TaxExclusiveAmount currencyID="EUR">2500.00</cbc:TaxExclusiveAmount>
    <cbc:TaxInclusiveAmount currencyID="EUR">3025.00</cbc:TaxInclusiveAmount>
    <cbc:PayableAmount currencyID="EUR">3025.00</cbc:PayableAmount>
  </cac:LegalMonetaryTotal>

  <cac:InvoiceLine>
    <cbc:ID>1</cbc:ID>
    <cbc:InvoicedQuantity unitCode="C62">1</cbc:InvoicedQuantity>
    <cbc:LineExtensionAmount currencyID="EUR">2500.00</cbc:LineExtensionAmount>
    <cac:Item>
      <cbc:Name>Consultancy Project Q2 2026</cbc:Name>
      <cac:ClassifiedTaxCategory>
        <cbc:ID>S</cbc:ID>
        <cbc:Percent>21</cbc:Percent>
        <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
      </cac:ClassifiedTaxCategory>
    </cac:Item>
    <cac:Price>
      <cbc:PriceAmount currencyID="EUR">2500.00</cbc:PriceAmount>
    </cac:Price>
  </cac:InvoiceLine>
</Invoice>