1. Accueil
  2. Base de connaissances
  3. Peppol
  4. Peppol validation rule codes

Peppol validation rule codes

Peppol validation rule codes

Every Peppol validation error names a rule identifier. The prefix tells you which rule set the rule belongs to, who maintains it, what it governs and where the normative text is published. Start with the prefix to identify the relevant validation layer before examining the invoice.

Prefixes and what they govern

PrefixRule setGovernsPublished by
BR-EN 16931 business rulesMandatory business terms and their combinationsCEN/TC 434
BR-CO-EN 16931 calculation rulesTotals, sums and derived amountsCEN/TC 434
BR-CL-EN 16931 code list rulesValues restricted to a code listCEN/TC 434
BR-DEC-EN 16931 decimal rulesNumber of decimals in an amountCEN/TC 434
BR-S-, BR-Z-, BR-E-, BR-AE-, BR-IC-, BR-G-, BR-O-, BR-AF-, BR-AG-EN 16931 VAT category rulesOne family per VAT categoryCEN/TC 434
UBL-SR-, UBL-CR-Syntax rules for UBLHow the model is expressed in UBLCEN/TC 434
CII-SR-Syntax rules for CIIHow the model is expressed in CIICEN/TC 434
PEPPOL-EN16931-RPeppol rulesRequirements Peppol adds on top of EN 16931OpenPeppol
PEPPOL-EN16931-CLPeppol code list rulesPeppol restrictions on code list valuesOpenPeppol
PEPPOL-COMMON-RPeppol identifier rulesFormat of national organization and tax identifiersOpenPeppol
SE-R-, NO-R-, DK-R-, NL-R-, DE-R-, IT-R-, GR-R-, IS-R-National rulesCountry requirements applied by party countryThe relevant Peppol Authority

The VAT category families

Each VAT family enforces the field combination its category requires. BR-S- covers standard rate, BR-Z- zero rated, BR-E- exempt, BR-AE- reverse charge, BR-IC- intra-community supply, BR-G- export outside the EU and BR-O- not subject to VAT.

Two families do not follow the pattern. The Canary Islands tax (IGIC, category code L) is BR-AF-, and the Ceuta and Melilla tax (IPSI, category code M) is BR-AG-. BR-IG- and BR-IP- are not EN 16931 rule-family prefixes.

Common Peppol validation rules

IdentifierMessageSeverity
PEPPOL-EN16931-R001Business process MUST be providedFatal
PEPPOL-EN16931-R004Specification identifier MUST begin with the value urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0 and follow the identifier format rulesFatal
PEPPOL-EN16931-R007Business process MUST have an approved identifierFatal
PEPPOL-EN16931-R008Document MUST not contain empty elementsFatal
PEPPOL-EN16931-R010Buyer electronic address MUST be providedFatal
PEPPOL-EN16931-R020Seller electronic address MUST be providedFatal
PEPPOL-COMMON-R052Danish chamber of commerce number (P) MUST be stated in the correct formatFatal
PEPPOL-COMMON-R053Danish ERSTORG number (SE) MUST be stated in the correct formatFatal

R004 concerns an incorrect or truncated specification identifier. R008 occurs when a source system writes an empty element instead of omitting it.

Severity is a property of the release, not the rule

A rule identifier does not carry a fixed severity. The same rule can be a warning in one release and fatal in the next, and the artifact version your validator runs determines which applies.

In 3.0.21, PEPPOL-COMMON-R052 and PEPPOL-COMMON-R053 changed from warning to fatal because the rules now apply to all profiles. The Danish rules DK-R-003 and DK-R-017 became fatal in the same release. A document that passed with an earlier artifact version can therefore fail when validated against the new release.

The same release added warning rules for Dutch identifiers, PEPPOL-COMMON-R054 to R057, covering KVK numbers (0106), organization numbers (0190), establishment numbers (0217) and VAT numbers (9944). OpenPeppol states that these will become fatal in a future release and are warnings now to give implementers a transition period. Plan to resolve them before their severity changes.

If an invoice that used to pass now fails, check the release notes before checking the invoice.

Where the normative text lives

PrefixWhere to look
PEPPOL-EN16931-R, PEPPOL-EN16931-CL, PEPPOL-COMMON-RRules for Peppol BIS 3.0 Billing on docs.peppol.eu
BR-, BR-CO-, BR-CL-, BR-DEC-, VAT familiesThe EN 16931 rule pages for your syntax
UBL-SR-, UBL-CR-, CII-SR-The syntax binding rule pages for your syntax
National prefixesThe release notes first, then the country rule set

Release notes show whether national rules have been added, revised or assigned a different severity.

Reading a rule identifier you have not seen before

  1. Start with the prefix. It identifies the owner and validation layer. A BR- rule concerns the invoice data. A UBL-SR- rule concerns how the file is built. A PEPPOL-COMMON-R rule concerns an identifier format. A national prefix means the rule was applied because of the seller’s or buyer’s country and may not apply to your next document.
  2. Check the severity in the current artifacts. The same identifier can be fatal in one release and a warning in another, and a forwarded error message may not identify the artifact version that produced it.
  3. Look up the business term the rule names. Peppol rule messages name the business concept, not the element path. The syntax page for that business term gives you the element, the cardinality and every other rule that applies to it, which is usually where the real cause is.
  4. Check whether a second rule fired on the same field. Rules cluster. A missing element gives one rule, a wrong value in that element gives another, and fixing only the one in the subject line leaves the document failing.

Normative sources

Peppol rules and EN 16931 rules for UBL, OpenPeppol. Rule families were also checked against the EN 16931 validation artifacts published by CEN/TC 434.

Cet article a-t-il été utile ?

Articles connexes