Automation MCP Server Features Blog Pricing Contact
Netherlands · SI-UBL 2.0.3.12 · EN 16931 CIUS

NLCIUS Invoice API for
the Netherlands

NLCIUS is the Dutch national flavour of EN 16931, implemented as SI-UBL 2.0 and expected by every public-sector buyer and Peppol NL. It is the same European core as Peppol BIS, plus the Dutch rules (the BR-NL set) and identifiers (KvK, OIN). InvoiceXML creates NLCIUS documents from JSON, validates them against the Dutch authority's own artifact, and detects the profile automatically on the way in.

POST /v1/create/ubl · profile nlcius
curl -X POST https://api.invoicexml.com/v1/create/ubl \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{ "invoice": { ... }, "options": { "profile": "nlcius" } }'
200 OK · SI-UBL validated before delivery
{
  "valid": true,
  "data": {
    "profile": "nlcius",
    "customizationId": "urn:cen.eu:en16931:2017#compliant#
      urn:fdc:nen.nl:nlcius:v1.0"
  }
}
On top of EN 16931

What NLCIUS adds to the European core

NLCIUS does not replace EN 16931; it tightens it for Dutch use. These are the pieces that make a Dutch invoice pass where a plain EN 16931 document would not, all enforced by SI-UBL when you stamp the nlcius profile.

What it is Detail Why it matters
Authority & artifact SI-UBL 2.0.3.12, published by the Dutch Peppol Authority (Peppolautoriteit) The exact Schematron Dutch buyers validate against, vendored unmodified
CustomizationID urn:fdc:nen.nl:nlcius:v1.0 Stamped into BT-24, this is what tells a receiver (and our validator) the rule set is NLCIUS
Seller identity (BR-NL-1) A KvK number (scheme 0106) or, for government bodies, an OIN (scheme 0190) in BT-30 The single most common reason a Dutch invoice is rejected when it would otherwise pass BIS
Buyer identity (BR-NL-2) Dutch public-sector buyers are identified by KvK or OIN in BT-47 Public bodies route on the OIN; getting it wrong stops the invoice at the door
Document types UBL 2.1 Invoice and CreditNote Same coverage as every other profile on the platform
NLCIUS rides the Peppol network in the Netherlands, so the wider network rules are covered on the Peppol hub, and the UBL 2.1 syntax underneath it on the UBL hub. For the Norwegian equivalent, see EHF Billing 3.0. Identifiers we hold no dedicated rules for fall back to the EN 16931 core with a PROFILE-DETECTION notice, never a false rejection.
Validation response

Findings that name the BR-NL rule

When a Dutch rule objects, the finding says so: the BR-NL rule ID, a plain-language message, the EN 16931 BT code involved, and the JSON field path to highlight in your form.

layer: xsdStructure. The document is well-formed UBL.
layer: en16931The European semantic core every profile shares.
layer: ciusThe Dutch overlay: the BR-NL rules from SI-UBL.

"Passes EN 16931 but a Dutch buyer rejects it" is a debugging genre we retired.

422 · 1 finding
{
  "valid": false,
  "data": {
    "profile": "nlcius",
    "customizationId": "urn:cen.eu:en16931:2017#compliant#
      urn:fdc:nen.nl:nlcius:v1.0"
  },
  "errors": [
    {
      "rule": "BR-NL-1",
      "layer": "cius",
      "message": "A Dutch supplier must be identified by a
        Chamber of Commerce number (KvK, scheme
        0106) or an OIN (scheme 0190) in the
        seller's legal registration (BT-30).",
      "btCodes": ["BT-30", "BT-30-1"],
      "fields": ["seller.legalRegistration.identifier",
        "seller.legalRegistration.schemeId"]
    }
  ]
}
Where NLCIUS applies

The Dutch e-invoicing picture

The Netherlands was an early mover on the public-sector side, and the rule set has been stable and well-governed since. Here is where NLCIUS sits today.

Central government
Suppliers to Dutch central government have been required to e-invoice since January 2017, over Digipoort or Peppol.
nlcius
Wider public sector
Municipalities and other public bodies receive over Peppol NL, expecting NLCIUS / SI-UBL.
nlcius
B2B
No general B2B mandate yet; the EU ViDA timeline drives what comes next. NLCIUS is the ready baseline.
en16931

Dutch public-sector e-invoicing implements Directive 2014/55/EU through NLCIUS. See the Mandate Map for how the Dutch timeline compares with the rest of Europe.

Always current

SI-UBL revs on the Peppol calendar. Your integration doesn't.

The Dutch Peppol Authority refreshes SI-UBL on the same spring and autumn cadence as the wider Peppol BIS releases, each with a mandatory date. We vendor the artifact unmodified, regression-test it, and flip the switch server-side on the day it becomes mandatory. Your code never changes.

Read the versioning policy and the exact artifact versions running now
Next scheduled update
17 August 2026

SI-UBL 2.0.3.13 becomes mandatory on this date, alongside the Peppol May 2026 release, and will be live here that day.

nlcius peppol-bis-3 Scheduled
FAQ

Questions Dutch teams ask before they build

01What is NLCIUS?
NLCIUS is the Dutch Core Invoice Usage Specification: a national CIUS of the European standard EN 16931, implemented as SI-UBL 2.0 and maintained by the Dutch Peppol Authority. It is the rule set Dutch public-sector buyers and Peppol NL expect.
02What is the difference between NLCIUS and Peppol BIS?
Both build on EN 16931, but they are separate overlays. Peppol BIS is the network-wide gate every access point runs; NLCIUS (SI-UBL) adds Dutch national rules such as BR-NL-1. An invoice can be valid for one and not the other, so the profile you stamp matters.
03Which identifiers does a Dutch invoice need?
A Dutch supplier identifies itself with a Chamber of Commerce number (KvK, scheme 0106) or, for government bodies, an OIN (scheme 0190), carried in the seller's legal registration identifier (BT-30). BR-NL-1 enforces this.
04How do I create an NLCIUS invoice?
Post your invoice JSON to the create endpoint with options.profile set to nlcius. You get UBL 2.1 back, stamped with the NLCIUS CustomizationID and validated against SI-UBL before it reaches you.
05Can you validate NLCIUS files I receive?
Yes. The validate endpoint reads the CustomizationID, recognises the NLCIUS profile, and runs SI-UBL. The verdict names the applied rule set in data.profile, and each finding carries its layer and BR-NL rule ID.
06How current are the NLCIUS rules?
SI-UBL 2.0.3.12 is live now. SI-UBL 2.0.3.13 becomes mandatory on 17 August 2026 and goes live here that day, server-side, with no change to your integration.
Start free today

Ready to automate your invoices?

Validate, convert and embed compliant e-invoices through one API. Start your 30-day free trial. No credit card required.

GDPR Compliant No credit card required Setup in minutes
Peppol UBL
Factur-X
EN 16931
142 / 142 passed
Compliant
PDF/A-3 embedded