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

Source: https://xmlvalid.com/e-invoicing/netherlands

> 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](https://xmlvalid.com/validate?schema=nl-si-ubl-invoice), 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](https://xmlvalid.com/rules/BR-NL-1)), a buyer reference or order reference ([BR-NL-2](https://xmlvalid.com/rules/BR-NL-2)), the customer's KVK or OIN number when it is Dutch too ([BR-NL-10](https://xmlvalid.com/rules/BR-NL-10)), payment details and the allowed payment means ([BR-NL-11](https://xmlvalid.com/rules/BR-NL-11), [BR-NL-12](https://xmlvalid.com/rules/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](https://xmlvalid.com/rules/NL-R-003).

## Profiles to check with

- [Netherlands SI-UBL 2.0 Invoice (NLCIUS)](https://xmlvalid.com/schemas/nl-si-ubl-invoice): A Dutch e-invoice in SI-UBL 2.0, checked against the UBL 2.1 schema and the NLCIUS rules: EN 16931 with the Dutch BR-NL rules. [Validate](https://xmlvalid.com/validate?schema=nl-si-ubl-invoice)
- [Netherlands SI-UBL 2.0 Credit Note (NLCIUS)](https://xmlvalid.com/schemas/nl-si-ubl-credit-note): A Dutch credit note in SI-UBL 2.0, checked against the UBL 2.1 CreditNote schema and the NLCIUS rules (EN 16931 and BR-NL). [Validate](https://xmlvalid.com/validate?schema=nl-si-ubl-credit-note)
- [Netherlands SI-UBL 2.0 G-account Invoice](https://xmlvalid.com/schemas/nl-si-ubl-gaccount): A Dutch invoice that sends part of the amount to a blocked G-account, checked against the UBL 2.1 schema and the SI-UBL G-account rules. [Validate](https://xmlvalid.com/validate?schema=nl-si-ubl-gaccount)
- [Netherlands NLCIUS Invoice (CII)](https://xmlvalid.com/schemas/nl-nlcius-cii): A Dutch e-invoice in UN/CEFACT CII D16B, checked against the CII schema and the NLCIUS rules for CII (EN 16931 and BR-NL). [Validate](https://xmlvalid.com/validate?schema=nl-nlcius-cii)
- [Peppol BIS Billing 3.0 Invoice](https://xmlvalid.com/schemas/peppol-bis-3-invoice): A Peppol invoice checked the way an access point does: UBL 2.1 schema, EN 16931 rules and the Peppol BIS Billing 3.0 rules. [Validate](https://xmlvalid.com/validate?schema=peppol-bis-3-invoice)
- [Peppol BIS Billing 3.0 Credit Note](https://xmlvalid.com/schemas/peppol-bis-3-credit-note): A Peppol credit note checked against the UBL 2.1 schema, the EN 16931 rules and the Peppol BIS Billing 3.0 rules. [Validate](https://xmlvalid.com/validate?schema=peppol-bis-3-credit-note)

## 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`](https://xmlvalid.com/rules/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`](https://xmlvalid.com/rules/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`](https://xmlvalid.com/rules/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`](https://xmlvalid.com/rules/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`](https://xmlvalid.com/rules/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`](https://xmlvalid.com/rules/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`](https://xmlvalid.com/rules/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

- [Rijksoverheid: the cabinet chooses e-invoicing and reporting for businesses, 11 September 2026 (in Dutch)](https://www.rijksoverheid.nl/actueel/nieuws/2026/09/11/kabinet-kiest-voor-invoering-e-facturatie-en-rapportage-voor-bedrijven)
- [Peppol Autoriteit NL: SI-UBL 2.0 and NLCIUS validation artefacts (GitHub)](https://github.com/peppolautoriteit-nl/validation)

### Other countries

- [French e-invoice validator](https://xmlvalid.com/e-invoicing/france)
- [German e-invoice validator: XRechnung and ZUGFeRD](https://xmlvalid.com/e-invoicing/germany)
- [Belgian e-invoice validator: Peppol BIS](https://xmlvalid.com/e-invoicing/belgium)
- [KSeF invoice validator: FA(3)](https://xmlvalid.com/e-invoicing/poland)
- [Croatian eRačun validator](https://xmlvalid.com/e-invoicing/croatia)
- [RO e-Factura validator](https://xmlvalid.com/e-invoicing/romania)
- [FatturaPA validator](https://xmlvalid.com/e-invoicing/italy)
- [UAE e-invoice validator (PINT AE)](https://xmlvalid.com/e-invoicing/uae)
- [InvoiceNow validator (PINT SG)](https://xmlvalid.com/e-invoicing/singapore)
- [JP PINT validator](https://xmlvalid.com/e-invoicing/japan)
- [Australian e-invoice validator (PINT A-NZ)](https://xmlvalid.com/e-invoicing/australia)
- [Spanish e-invoice validator](https://xmlvalid.com/e-invoicing/spain)
- [Danish e-invoice validator: OIOUBL 2.1](https://xmlvalid.com/e-invoicing/denmark)
- [Norwegian e-invoice validator: EHF](https://xmlvalid.com/e-invoicing/norway)
- [Swedish e-invoice validator: Peppol BIS](https://xmlvalid.com/e-invoicing/sweden)
- [Finnish e-invoice validator: Finvoice](https://xmlvalid.com/e-invoicing/finland)
- [Austrian e-invoice validator for e-Rechnung.gv.at](https://xmlvalid.com/e-invoicing/austria)
- [Czech e-invoice validator: ISDOC](https://xmlvalid.com/e-invoicing/czech-republic)
- [Portuguese e-invoice validator: CIUS-PT](https://xmlvalid.com/e-invoicing/portugal)
- [ZATCA e-invoice validator (FATOORA)](https://xmlvalid.com/e-invoicing/saudi-arabia)
