Skip to content

Ironfang Finance - Rule reference

Validation rule reference

Look up an EN 16931 or Peppol BIS Billing error by its rule code: what failed, how to fix it, and a tested before and after.

Explained rules

Core invoice fieldsBR

38 explanations

Calculations and conditionsBR-CO

17 explanations

Code listsBR-CL, PEPPOL-EN16931-CL

17 explanations

Decimal precisionBR-DEC

6 explanations

VAT categoriesBR-S, BR-Z, BR-E, BR-AE, BR-IC, BR-G, BR-O

26 explanations

Standard rated (S) (6)

Zero rated (Z) (3)

Exempt (E) (4)

Reverse charge (AE) (4)

Intra-community supply (K) (4)

Export outside the EU (G) (1)

Not subject to VAT (O) (4)

Peppol requirementsPEPPOL-EN16931, PEPPOL-COMMON

29 explanations

Business rules (PEPPOL-EN16931-R) (24)

Process and document type codes (PEPPOL-EN16931-P) (3)

Formats (PEPPOL-EN16931-F) (1)

Identifier checks (PEPPOL-COMMON) (1)

Country-specific requirementsNL-R and other country codes

3 explanations

Netherlands (NL) (3)

UBL syntax and structureUBL-CR, UBL-SR, UBL-DT

5 explanations

Elements outside the model (UBL-CR) (3)

Repetition limits (UBL-SR) (1)

Data types (UBL-DT) (1)

XML diagnosticsFW

1 explanation

What this reference covers

The rules Ironfang Finance runs for Peppol BIS Billing 3.0, 2026.5 (May 2026 release, aka BIS Billing 3.0.21), with the EN 16931 validation artefacts 1.3.16, on UBL 2.1 Invoice and CreditNote documents. It does not cover CII, other CIUS such as XRechnung, other Peppol document types or earlier releases, where the same identifier can mean something different.

That release defines 1,144 official rules: 979 from EN 16931 and its UBL binding, and 165 added by Peppol BIS Billing, some of which apply only to one seller country. 141 have an explanation here so far, alongside 1 Ironfang diagnostic for input the validator cannot read, which is ours and not part of either specification. The validator reports every rule either way; an explanation is extra help, not coverage.

Background reading

Two longer articles explain where these rules come from and how to read a failure: How Peppol invoice validation actually works, from the XML layers to the Peppol rules, and Understanding EN 16931 validation errors, on the business rules behind most errors. To check a document against all of them, use the free Peppol validator. For a whole document that passes, with its totals worked through against BR-CO-10 to BR-CO-16, see the Peppol XML invoice example.

Not yet explained

The validator checks every official rule in the supported release, including the 1,003 that have no Ironfang explanation yet. Each code below links to its official definition, not to a page here.

Show the 1,003 rules without an explanation, by family
Calculations and conditions (BR-CO) (6)
Code lists (BR-CL) (7)
Core fields (BR) (20)
Decimal precision (BR-DEC) (15)
UBL syntax: elements outside the model (UBL-CR) (675)

675 syntax-binding rules, from UBL-CR-001 to UBL-CR-681. They are listed in the official EN 16931 rule index.

UBL syntax: data types (UBL-DT) (23)

23 syntax-binding rules, from UBL-DT-06 to UBL-DT-28. They are listed in the official EN 16931 rule index.

UBL syntax: repetition limits (UBL-SR) (53)

53 syntax-binding rules, from UBL-SR-01 to UBL-SR-56. They are listed in the official EN 16931 rule index.

VAT categories (BR-S, BR-Z, BR-E, BR-AE ...) (72)
Country-conditional rules (99)
Peppol code lists (PEPPOL-EN16931-CL) (5)
Identifier checks (PEPPOL-COMMON-R) (16)
Peppol process and type codes (PEPPOL-EN16931-P) (8)
Peppol rules (PEPPOL-EN16931-R) (4)