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:
| Element | Issue | Rule Enforced |
|---|---|---|
cbc:ID | Missing Invoice ID | EN 16931 BT-1 is mandatory |
cbc:DocumentCurrencyCode | Invalid value "EURO" | Must use ISO 4217 format (e.g., "EUR") |
cac:PartyIdentification/cbc:ID (Supplier) | Missing ID | BT-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
Discover more
Validate your UBL files with our validator