Dutch e-invoice validator: SI-UBL 2.0 and NLCIUS

Check an invoice for the Dutch government or a Dutch business before it goes on Peppol: the UBL or CII schema, the EN 16931 rules and the Dutch BR-NL rules of SI-UBL 2.0, with every finding on its line. Nothing is uploaded.

E-invoicing in the Netherlands in short

Suppliers of the Dutch central government (Rijksoverheid) must invoice it electronically, in practice through the Peppol network: in 2025 it received nearly two million e-invoices. Since 1 January 2023 it no longer accepts the old SI-UBL 1.2; invoices follow NLCIUS, the Dutch core invoice usage specification of EN 16931, as SI-UBL 2.0 (its UBL form) or as Peppol BIS Billing 3.0.

Between businesses e-invoicing is not required yet. In its letter to parliament of 11 September 2026 the cabinet chose to require e-invoices for domestic B2B sales from 1 July 2030, the date the EU's ViDA directive sets for cross-border ones, and the digital reporting of selected invoice data to the Belastingdienst from 1 July 2031. Invoices will follow the European standard, small businesses under the KOR scheme stay out, and the network invoices travel on is still to be decided; Peppol is the one the research for the cabinet advised. A public consultation is planned for autumn 2026 and the bill for before the summer recess of 2027.

How to check a Dutch invoice

  1. Open the validator with the SI-UBL 2.0 invoice profile, or pick the credit note, G-account or CII one. A file opened or pasted picks its profile from its specification identifier (BT-24), Peppol BIS ones included.
  2. Paste the XML or drop the file, then press Validate.
  3. Click a rule id for what it checks.

What is checked

For SI-UBL 2.0 and NLCIUS in CII, the validation artefacts of Peppol Autoriteit NL (SI-UBL 2.0.3.13, NLCIUS-CII 1.0.3.13, released on 21 May 2026), which include the EN 16931 rules 1.3.16. The Dutch rules apply to suppliers in the Netherlands: a KVK or OIN number for the seller (BR-NL-1), a buyer reference or order reference (BR-NL-2), the customer's KVK or OIN number when it is Dutch too (BR-NL-10), payment details and the allowed payment means (BR-NL-11, BR-NL-12). Warnings point out fields the specification advises against.

An invoice that sends part of the amount to a blocked G-account (G-rekening) has its own identifier and rules, with two sets of payment details. A Peppol BIS Billing 3.0 invoice runs the Peppol rules, which have Dutch rules of their own for Dutch suppliers, such as NL-R-003.

Profiles to check with

Rules invoices break most

Each one has a page with what it checks, its test and, for many, how to fix it.

  • BR-NL-1: For suppliers in the Netherlands the supplier MUST provide either a KVK or OIN number for its legal entity identifier (cac:AccountingSupplierParty/cac:Party/cac...
  • BR-NL-2: For suppliers in the Netherlands, the invoice MUST contain either the buyer reference (cbc:BuyerReference) or the order reference (cac:OrderReference/cbc:ID)
  • BR-NL-10: For suppliers in the Netherlands, if the customer is in the Netherlands, the customer's legal entity identifier (cac:AccountingCustomerParty/cac:Party/cac:Party...
  • BR-NL-11: For suppliers in the Netherlands, the supplier MUST provide a means of payment (cac:PaymentMeans) if the payment is from customer to supplier
  • BR-NL-12: For suppliers in the Netherlands, the payment means code (cac:PaymentMeans/cbc:PaymentMeansCode) MUST be one of 30, 48, 49, 57, 58 or 59
  • NL-R-003: For suppliers in the Netherlands, the legal entity identifier MUST be either a KVK or OIN number (schemeID 0106 or 0190)
  • BR-CO-15: Invoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) + Invoice total VAT amount (BT-110).

Questions

Is the invoice uploaded?

No. The schema check and the rules both run in your browser. Only the API and URL monitors validate on our servers.

SI-UBL 2.0 or Peppol BIS?

Both are EN 16931 invoices with Dutch rules, and both travel on Peppol. SI-UBL 2.0 is the Dutch specification; Peppol BIS Billing 3.0 is the European one, with its NL rules for Dutch suppliers. The invoice states which it follows, and the validator picks the profile from that.

Which version of the rules is used?

SI-UBL 2.0.3.13 and NLCIUS-CII 1.0.3.13 (21 May 2026), with the EN 16931 rules 1.3.16. A weekly check tells us when Peppol Autoriteit NL publishes a newer release.

Can I check invoices from code?

Yes: the API and the command-line client with --schema nl-si-ubl-invoice, or --schema auto for a folder of mixed invoices.

Official sources

Other countries