Schematron in Peppol BIS Billing 3.0

βœ… Overview

Schematron is a rule-based validation language used to enforce business rules and compliance constraints beyond basic XML schema validation. In Peppol BIS Billing 3.0, Schematron is used alongside the EN 16931 standard to validate UBL 2.1 XML documents such as Invoices and Credit Notes.

πŸ“Œ Purpose in Peppol

  • Ensure EN 16931 semantic conformance.
  • Apply Peppol-specific restrictions.
  • Validate national extensions or country-specific rules.
  • Enforce value constraints (e.g., code lists, decimal precision).

πŸ” Common Schematron Validation Checks

Based on an uploaded file, here are examples of what Schematron would flag:

ElementIssueRule Enforced
cbc:IDMissing Invoice IDEN 16931 BT-1 is mandatory
cbc:DocumentCurrencyCodeInvalid value "EURO"Must use ISO 4217 format (e.g., "EUR")
cac:PartyIdentification/cbc:ID (Supplier)Missing IDBT-29 (Seller identifier) is required

These are all enforced by Schematron rules derived from the EN 16931 and Peppol CIUS specifications.


πŸ“˜ Technical Details

Schematron rules are organized in the following layers:

  • UBL XSD Schema: Validates structural syntax.
  • EN 16931 Schematron: Ensures semantic rules from the EU norm.
  • Peppol CIUS Schematron: Applies community-specific constraints (e.g., BuyerReference or PurchaseOrderReference required).
  • Country-specific Schematron: For rules applicable in FR, DE, etc.
  • Each layer adds additional constraints to ensure full interoperability and legal compliance.

πŸ“Ž Related References

Peppol Schematron Repository

EN 16931:2017


Discover more

Validate your UBL files with our validator