InvoiceKit

What XRechnung and Peppol BIS add to EN 16931, counted

3 rule sets · every assertion each one runs, in CII and UBL separately · 408 added assertions listed in full, with severity and wording · counted by the engine that does the validating, not by a summary someone retyped

“Does my invoice pass EN 16931?” is the wrong question on its own. The norm is the layer that is the same everywhere; what your buyer runs is the norm plus a CIUS or a network profile, and each of those adds rules of its own. This page counts the difference and names it, rule by rule, from the artefacts the validator loads.

The rule sets side by side

The norm alone runs 810 CII assertions and 982 UBL ones, 339 and 284 of them fatal. The last column is what a rule set runs on top of the norm, and the counts are per syntax because the two grammars are validated by different artefacts.
Rule setArtefacts the engine loadsSyntax AssertionsBy severityover the norm
EN 16931the core invoice modelEN 16931 Schematron 1.3.17 (updated 2026-10-09)CII810339 fatal / 471 warning—
UBL982284 fatal / 698 warning—
XRechnungGermany’s mandate: a CIUS of EN 169312.6.0, for XRechnung 3.0.2CII862379 fatal / 482 warning / 1 information+52
UBL1038330 fatal / 707 warning / 1 information+56
Peppol BIS Billing 3.0the network’s profile of EN 16931Peppol BIS Billing 3.0 release 3.0.21 (May 2026), with EN 16931 Schematron 1.3.16CII897409 fatal / 488 warning+114
UBL1144420 fatal / 724 warning+186

Counts are per syntax because the two grammars are validated by different artefacts: the same rule id is often two assertions, one written against CII and one against UBL. The UBL listing is larger for every rule set for that reason, not because a UBL invoice is held to a higher standard.

The severity column is the engine’s own, not an editor’s guess: a fatal assertion fails the invoice and a warning one is reported alongside a pass. Almost every assertion here is one or the other — XRechnung’s rules carry exactly 1 informational assertion per grammar, BR-DE-TMP-32, a “should” about the delivery date that the engine reports without failing the invoice. It is counted because it runs.

Every assertion a rule set adds

280 rows: XRechnung’s 52 CII and 56 UBL additions, and Peppol BIS’s 114 CII and 186 UBL ones — 408 assertions in all, merged into one row where both syntaxes state the same id in the same words at the same severity.
RuleAdded byApplies toSeverityWhat the rule says
BR-AF-01Peppol BIS Billing 3.0CII and UBLfatalAn Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "IGIC" shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with "IGIC".
BR-AF-02Peppol BIS Billing 3.0CII and UBLfatalAn Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IGIC" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).
BR-AF-03Peppol BIS Billing 3.0CII and UBLfatalAn Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IGIC" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).
BR-AF-04Peppol BIS Billing 3.0CII and UBLfatalAn Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IGIC" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).
BR-AF-05Peppol BIS Billing 3.0CIIfatalIn an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IGIC" the invoiced item VAT rate (BT-152) shall be greater than 0 (zero).
BR-AF-05Peppol BIS Billing 3.0UBLfatalIn an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IGIC" the invoiced item VAT rate (BT-152) shall be 0 (zero) or greater than zero.
BR-AF-06Peppol BIS Billing 3.0CII and UBLfatalIn a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IGIC" the Document level allowance VAT rate (BT-96) shall be 0 (zero) or greater than zero.
BR-AF-07Peppol BIS Billing 3.0CII and UBLfatalIn a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IGIC" the Document level charge VAT rate (BT-103) shall be 0 (zero) or greater than zero.
BR-AF-08Peppol BIS Billing 3.0CII and UBLfatalFor each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is "IGIC", the VAT category taxable amount (BT-116) in a VAT breakdown (BG-23) shall equal the sum of Invoice line net amounts (BT-131) plus the sum of document level charge amounts (BT-99) minus the sum of document level allowance amounts (BT-92) where the VAT category code (BT-151, BT-102, BT-95) is "IGIC" and the VAT rate (BT-152, BT-103, BT-96) equals the VAT category rate (BT-119).
BR-AF-09Peppol BIS Billing 3.0CII and UBLfatalThe VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "IGIC" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).
BR-AF-10Peppol BIS Billing 3.0CIIfatalA VAT Breakdown (BG-23) with VAT Category code (BT-118) "IGIC" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).
BR-AF-10Peppol BIS Billing 3.0UBLfatalA VAT breakdown (BG-23) with VAT Category code (BT-118) "IGIC" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).
BR-AG-01Peppol BIS Billing 3.0CII and UBLfatalAn Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "IPSI" shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with "IPSI".
BR-AG-02Peppol BIS Billing 3.0CII and UBLfatalAn Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IPSI" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).
BR-AG-03Peppol BIS Billing 3.0CII and UBLfatalAn Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IPSI" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).
BR-AG-04Peppol BIS Billing 3.0CII and UBLfatalAn Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IPSI" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).
BR-AG-05Peppol BIS Billing 3.0CII and UBLfatalIn an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IPSI" the Invoiced item VAT rate (BT-152) shall be 0 (zero) or greater than zero.
BR-AG-06Peppol BIS Billing 3.0CII and UBLfatalIn a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IPSI" the Document level allowance VAT rate (BT-96) shall be 0 (zero) or greater than zero.
BR-AG-07Peppol BIS Billing 3.0CII and UBLfatalIn a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IPSI" the Document level charge VAT rate (BT-103) shall be 0 (zero) or greater than zero.
BR-AG-08Peppol BIS Billing 3.0CII and UBLfatalFor each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is "IPSI", the VAT category taxable amount (BT-116) in a VAT breakdown (BG-23) shall equal the sum of Invoice line net amounts (BT-131) plus the sum of document level charge amounts (BT-99) minus the sum of document level allowance amounts (BT-92) where the VAT category code (BT-151, BT-102, BT-95) is "IPSI" and the VAT rate (BT-152, BT-103, BT-96) equals the VAT category rate (BT-119).
BR-AG-09Peppol BIS Billing 3.0CII and UBLfatalThe VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "IPSI" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).
BR-AG-10Peppol BIS Billing 3.0CIIfatalA VAT Breakdown (BG-23) with VAT Category code (BT-118) "IPSI" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).
BR-AG-10Peppol BIS Billing 3.0UBLfatalA VAT breakdown (BG-23) with VAT Category code (BT-118) "IPSI" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).
BR-DE-1XRechnungCII and UBLfatalEine Rechnung (INVOICE) muss Angaben zu "PAYMENT INSTRUCTIONS" (BG-16) enthalten.
BR-DE-2XRechnungCII and UBLfatalDie Gruppe "SELLER CONTACT" (BG-6) muss übermittelt werden.
BR-DE-3XRechnungCII and UBLfatalDas Element "Seller city" (BT-37) muss übermittelt werden.
BR-DE-4XRechnungCII and UBLfatalDas Element "Seller post code" (BT-38) muss übermittelt werden.
BR-DE-5XRechnungCII and UBLfatalDas Element "Seller contact point" (BT-41) muss übermittelt werden.
BR-DE-6XRechnungCII and UBLfatalDas Element "Seller contact telephone number" (BT-42) muss übermittelt werden.
BR-DE-7XRechnungCII and UBLfatalDas Element "Seller contact email address" (BT-43) muss übermittelt werden.
BR-DE-8XRechnungCII and UBLfatalDas Element "Buyer city" (BT-52) muss übermittelt werden.
BR-DE-9XRechnungCII and UBLfatalDas Element "Buyer post code" (BT-53) muss übermittelt werden.
BR-DE-10XRechnungCII and UBLfatalDas Element "Deliver to city" (BT-77) muss übermittelt werden, wenn die Gruppe "DELIVER TO ADDRESS" (BG-15) übermittelt wird.
BR-DE-11XRechnungCII and UBLfatalDas Element "Deliver to post code" (BT-78) muss übermittelt werden, wenn die Gruppe "DELIVER TO ADDRESS" (BG-15) übermittelt wird.
BR-DE-14XRechnungCII and UBLfatalDas Element "VAT category rate" (BT-119) muss übermittelt werden.
BR-DE-15XRechnungCII and UBLfatalDas Element "Buyer reference" (BT-10) muss übermittelt werden.
BR-DE-16XRechnungCII and UBLfatalWenn in einer Rechnung die Steuercodes S, Z, E, AE, K, G, L oder M verwendet werden, muss mindestens eines der Elemente "Seller VAT identifier" (BT-31), "Seller tax registration identifier" (BT-32) oder "SELLER TAX REPRESENTATIVE PARTY" (BG-11) übermittelt werden.
BR-DE-17XRechnungCII and UBLwarningMit dem Element "Invoice type code" (BT-3) sollen ausschließlich folgende Codes aus der Codeliste UNTDID 1001 übermittelt werden: 326 (Partial invoice), 380 (Commercial invoice), 384 (Corrected invoice), 389 (Self-billed invoice) und 381 (Credit note),875 (Partial construction invoice), 876 (Partial final construction invoice), 877 (Final construction invoice).
BR-DE-18XRechnungCIIfatalSkonto Zeilen in muessen diesem regulärem Ausdruck entsprechen: . Die Informationen zur Gewährung von Skonto müssen wie folgt im Element "Payment terms" (BT-20) übermittelt werden: Anzugeben ist im ersten Segment "SKONTO", im zweiten "TAGE=n", im dritten "PROZENT=n". Prozentzahlen sind ohne Vorzeichen sowie mit Punkt getrennt von zwei Nachkommastellen anzugeben. Liegt dem zu berechnenden Betrag nicht BT-115, "fälliger Betrag" zugrunde, sondern nur ein Teil des fälligen Betrags der Rechnung, ist der Grundwert zur Berechnung von Skonto als viertes Segment "BASISBETRAG=n" gemäß dem semantischen Datentypen Amount anzugeben. Jeder Eintrag beginnt mit einer #, die Segmente sind mit einer # getrennt und eine Zeile schließt mit einer # ab. Am Ende einer vollständigen Skontoangabe muss ein XML-konformer Zeilenumbruch folgen. Alle Angaben zur Gewährung von Skonto müssen in Großbuchstaben gemacht werden. Zusätzliches Whitespace (Leerzeichen, Tabulatoren oder Zeilenumbrüche) ist nicht zulässig. Andere Zeichen oder Texte als in den oberen Vorgaben genannt sind nicht zulässig.
BR-DE-18XRechnungUBLfatalSkonto Zeilen in müssen diesem regulärem Ausdruck entsprechen: . Die Informationen zur Gewährung von Skonto müssen wie folgt im Element "Payment terms" (BT-20) übermittelt werden: Anzugeben ist im ersten Segment "SKONTO", im zweiten "TAGE=n", im dritten "PROZENT=n". Prozentzahlen sind ohne Vorzeichen sowie mit Punkt getrennt von zwei Nachkommastellen anzugeben. Liegt dem zu berechnenden Betrag nicht BT-115, "fälliger Betrag" zugrunde, sondern nur ein Teil des fälligen Betrags der Rechnung, ist der Grundwert zur Berechnung von Skonto als viertes Segment "BASISBETRAG=n" gemäß dem semantischen Datentypen Amount anzugeben. Jeder Eintrag beginnt mit einer #, die Segmente sind mit einer # getrennt und eine Zeile schließt mit einer # ab. Am Ende einer vollständigen Skontoangabe muss ein XML-konformer Zeilenumbruch folgen. Alle Angaben zur Gewährung von Skonto müssen in Großbuchstaben gemacht werden. Zusätzliches Whitespace (Leerzeichen, Tabulatoren oder Zeilenumbrüche) ist nicht zulässig. Andere Zeichen oder Texte als in den oberen Vorgaben genannt sind nicht zulässig.
BR-DE-19XRechnungCII and UBLwarning"Payment account identifier" (BT-84) soll eine korrekte IBAN enthalten, wenn in "Payment means type code" (BT-81) mit dem Code 58 SEPA als Zahlungsmittel gefordert wird.
BR-DE-20XRechnungCII and UBLwarning"Debited account identifier" (BT-91) soll eine korrekte IBAN enthalten, wenn in "Payment means type code" (BT-81) mit dem Code 59 SEPA als Zahlungsmittel gefordert wird.
BR-DE-21XRechnungCII and UBLwarningDas Element "Specification identifier" (BT-24) soll syntaktisch der Kennung des Standards XRechnung entsprechen.
BR-DE-22XRechnungCIIfatalNot all filename attributes of the embeddedDocumentBinaryObject elements are unique
BR-DE-22XRechnungUBLfatalDas "filename"-Attribut aller "EmbeddedDocumentBinaryObject"-Elemente muss eindeutig sein
BR-DE-23-aXRechnungCII and UBLfatalWenn BT-81 "Payment means type code" einen Schlüssel für Überweisungen enthält (30, 58), muss BG-17 "CREDIT TRANSFER" übermittelt werden.
BR-DE-23-bXRechnungCII and UBLfatalWenn BT-81 "Payment means type code" einen Schlüssel für Überweisungen enthält (30, 58), dürfen BG-18 und BG-19 nicht übermittelt werden.
BR-DE-24-aXRechnungCII and UBLfatalWenn BT-81 "Payment means type code" einen Schlüssel für Kartenzahlungen enthält (48, 54, 55), muss genau BG-18 "PAYMENT CARD INFORMATION" übermittelt werden.
BR-DE-24-bXRechnungCII and UBLfatalWenn BT-81 "Payment means type code" einen Schlüssel für Kartenzahlungen enthält (48, 54, 55), dürfen BG-17 und BG-19 nicht übermittelt werden.
BR-DE-25-aXRechnungCII and UBLfatalWenn BT-81 "Payment means type code" einen Schlüssel für Lastschriften enthält (59), muss genau BG-19 "DIRECT DEBIT" übermittelt werden.
BR-DE-25-bXRechnungCII and UBLfatalWenn BT-81 "Payment means type code" einen Schlüssel für Lastschriften enthält (59), dürfen BG-17 und BG-18 nicht übermittelt werden.
BR-DE-26XRechnungCIIwarningWenn im Element Invoice type code (BT-3) der Code 384 (Corrected invoice) übergeben wird, soll PRECEDING INVOICE REFERENCE BG-3 mind. einmal vorhanden sein.
BR-DE-26XRechnungUBLwarningWenn im Element "Invoice type code" (BT-3) der Code 384 (Corrected invoice) übergeben wird, soll PRECEDING INVOICE REFERENCE BG-3 mind. einmal vorhanden sein.
BR-DE-27XRechnungCII and UBLwarningIn BT-42 sollen mindestens drei Ziffern enthalten sein.
BR-DE-28XRechnungCII and UBLwarningIn BT-43 soll genau ein @-Zeichen enthalten sein, welches nicht von einem Leerzeichen, einem Punkt, aber mindestens zwei Zeichen auf beiden Seiten flankiert werden soll. Ein Punkt sollte nicht am Anfang oder am Ende stehen.
BR-DE-30XRechnungCII and UBLfatalWenn "DIRECT DEBIT" BG-19 vorhanden ist, dann muss "Bank assigned creditor identifier" BT-90 übermittelt werden.
BR-DE-31XRechnungCII and UBLfatalWenn "DIRECT DEBIT" BG-19 vorhanden ist, dann muss "Debited account identifier" BT-91 übermittelt werden.
BR-DE-CVD-01XRechnungCII and UBLfatalDas Element "Contract reference" (BT-12) muss übermittelt werden.
BR-DE-CVD-02XRechnungCII and UBLfatalDas Element "Tender or lot reference" (BT-17) muss übermittelt werden.
BR-DE-CVD-03XRechnungCII and UBLfatalIn einer Rechnung muss mindestens eine INVOICE LINE (BG-25) enthalten sein, in der der Scheme identifier von "Item classification identifier" (BT-158) den Wert 'CVD' und der "Item attribute name" (BT-160) den Wert 'cva' enthält.
BR-DE-CVD-04XRechnungCII and UBLfatalEin "Item classification identifier" (BT-158) mit dem Scheme identifier 'CVD' muss einen Wert aus der Liste der zulässigen Fahrzeugkategorien enthalten.
BR-DE-CVD-05XRechnungCII and UBLfatalWenn innerhalb von ITEM ATTRIBUTES (BG-32) der "Item attribute name" (BT-160) den Wert 'cva' hat, muss der "Item attribute value" (BT-161) einen der zulässigen Werte enthalten.
BR-DE-CVD-06-aXRechnungCII and UBLfatalWenn der Scheme identifier von "Item classification identifier" (BT-158) mit dem Wert 'CVD' angegeben ist, muss in derselben Rechnungszeile genau ein "Item attribute name" (BT-160) mit dem Wert 'cva' vorhanden sein.
BR-DE-CVD-06-bXRechnungCII and UBLfatalWenn "Item attribute name" (BT-160) mit dem Wert 'cva' angegeben ist, muss in derselben Rechnungszeile genau ein "Item classification identifier" (BT-158) mit dem Scheme identifier 'CVD' vorhanden sein.
BR-DE-TMP-32XRechnungCII and UBLinformationEine Rechnung sollte zur Angabe des Liefer-/Leistungsdatums entweder BT-72 "Actual delivery date", BG-14 "Invoicing period" oder in jeder Rechnungsposition BG-26 "Invoice line period" enthalten.
BR-DEX-01XRechnungCII and UBLfatalDas Element "Attached Document" (BT-125) benutzt einen nicht zulässigen MIME-Code: . Im Falle einer Extension darf zusätzlich zu der Liste der mime codes (definiert in Abschnitt 8.2, "Binary Object") der MIME-Code application/xml genutzt werden.
BR-DEX-02XRechnungUBLwarningDer Wert von "Invoice line net amount" (BT-131) einer "INVOICE LINE" (BG-25) oder einer "SUB INVOICE LINE" (BG-DEX-01) soll der Summe der "Invoice line net amount" (BT-131) der direkt darunterliegenden "SUB INVOICE LINE" (BG-DEX-01) entsprechen.
BR-DEX-03XRechnungUBLfatalEine Sub Invoice Line (BG-DEX-01) muss genau eine "SUB INVOICE LINE VAT INFORMATION" (BG-DEX-06) enthalten.
BR-DEX-04XRechnungCII and UBLfatalAny scheme identifier in MUST be coded using one of the ISO 6523 ICD list.
BR-DEX-05XRechnungCII and UBLfatalAny scheme identifier in MUST be coded using one of the ISO 6523 ICD list.
BR-DEX-06XRechnungCII and UBLfatalAny scheme identifier in MUST be coded using one of the ISO 6523 ICD list.
BR-DEX-07XRechnungCII and UBLfatalAny scheme identifier for an Endpoint Identifier in MUST belong to the CEF EAS code list.
BR-DEX-08XRechnungCII and UBLfatalAny scheme identifier for a Delivery location identifier in MUST be coded using one of the ISO 6523 ICD list.
BR-DEX-09XRechnungUBLfatalAmount due for payment (BT-115) = Invoice total amount with VAT (BT-112) - Paid amount (BT-113) + Rounding amount (BT-114) + Σ Third party payment amount (BT-DEX-002).
BR-DEX-10XRechnungUBLfatalDas Element "Third party payment type" BT-DEX-001 muss übermittelt werden, wenn die Gruppe "THIRD PARTY PAYMENT" (BG-DEX-09) übermittelt wird.
BR-DEX-11XRechnungUBLfatalDas Element "Third party payment amount" BT-DEX-002 muss übermittelt werden, wenn die Gruppe "THIRD PARTY PAYMENT" (BG-DEX-09) übermittelt wird.
BR-DEX-12XRechnungUBLfatalDas Element "Third party payment description" BT-DEX-003 muss übermittelt werden, wenn die Gruppe "THIRD PARTY PAYMENT" (BG-DEX-09) übermittelt wird.
BR-DEX-13XRechnungUBLfatalDie maximale Anzahl zulässiger Nachkommastellen für das Element "Third party payment amount" (BT-DEX-002) ist 2.
BR-DEX-14XRechnungUBLfatalDie Währungsangabe von "Third party payment amount" BT-DEX-002 muss BT-5 ("Invoice currency code") entsprechen.
BR-DEX-15XRechnungCIIwarningThis CII file might use the concept of Sub Invoice Lines. However XRechnung does not support this.
BR-TMP-2XRechnungCII and UBLfatalBT-124 "External document location" muss eine absolute URL mit gültigem Schema enthalten.
BR-TMP-3XRechnungCIIfatalWenn BT-149 (Item price base quantity) sowohl in GrossPriceProductTradePrice als auch in NetPriceProductTradePrice vorhanden ist, müssen die Werte identisch sein. Wenn BT-150 (unit of measure code) auf dem NetPrice-Pfad vorhanden ist, muss es auch auf dem GrossPrice-Pfad vorhanden und identisch sein.
BR-TMP-4XRechnungCIIwarningBT-123 "Supporting document description" (ram:Name) darf innerhalb von "Additional supporting documents" (BG-24) höchstens einmal vorkommen.
BR-TMP-5XRechnungCIIwarningBT-125 "Attached document" (ram:AttachmentBinaryObject) darf innerhalb von "Additional Supporting documents" (BG-24) höchstens einmal vorkommen.
BR-TMP-6XRechnungUBLwarningDatumsangaben in UBL müssen im Format JJJJ-MM-TT (YYYY-MM-DD) übermittelt werden.
BR-TMP-7XRechnungCIIwarningDatumsangaben in UNCEFACT/CII müssen das Attribut format="102" tragen und im Format JJJJMMTT (YYYYMMDD) übermittelt werden.
BR-TMP-CVD-01XRechnungCII and UBLfatalDas Bildungsschema für "Item classification identifier" (BT-158) ist aus der Codeliste UNTDID 7143 zu wählen.
CII-SR-464Peppol BIS Billing 3.0CIIwarningPayerSpecifiedDebtorFincancialInstitution shall not be used.
CII-SR-471Peppol BIS Billing 3.0CIIfatalEach Specified Trade Allowance Charge (BG-20)(BG-21) shall contain a VAT category code (BT-95).
CII-SR-472Peppol BIS Billing 3.0CIIfatalEach Specified Trade Allowance Charge (BG-20)(BG-21) should contain a VAT rate (BT-96).
DE-R-001Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are located in Germany, an invoice shall contain information on "PAYMENT INSTRUCTIONS" (BG-16).
DE-R-002Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are located in Germany, the group "SELLER CONTACT" (BG-6) shall be provided.
DE-R-003Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are located in Germany, the element "Seller city" (BT-37) shall be provided.
DE-R-004Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are located in Germany, the element "Seller post code" (BT-38) shall be provided.
DE-R-005Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are located in Germany, the element "Seller contact point" (BT-41) shall be provided.
DE-R-006Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are located in Germany, the element "Seller contact telephone number" (BT-42) shall be provided.
DE-R-007Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are located in Germany, the element "Seller contact email address" (BT-43) shall be provided.
DE-R-008Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are located in Germany, the element "Buyer city" (BT-52) shall be provided.
DE-R-009Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are located in Germany, the element "Buyer post code" (BT-53) shall be provided.
DE-R-010Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are located in Germany, the element "Deliver to city" (BT-77) shall be provided if the group "DELIVER TO ADDRESS" (BG-15) is delivered.
DE-R-011Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are located in Germany, the element "Deliver to post code" (BT-78) shall be provided if the group "DELIVER TO ADDRESS" (BG-15) is delivered.
DE-R-014Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are located in Germany, the element "VAT category rate" (BT-119) shall be provided.
DE-R-015Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are located in Germany, the element "Buyer reference" (BT-10) shall be provided.
DE-R-016Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are located in Germany, and if one of the VAT codes S, Z, E, AE, K, G, L, or M is used, an invoice shall contain at least one of the following elements: "Seller VAT identifier" (BT-31) or "Seller tax registration identifier" (BT-32) or "SELLER TAX REPRESENTATIVE PARTY" (BG-11).
DE-R-017Peppol BIS Billing 3.0UBLwarningIf both supplier and customer are located in Germany, the element "Invoice type code" (BT-3) should only contain the following values from code list UNTDID 1001: 326 (Partial invoice), 380 (Commercial invoice), 384 (Corrected invoice), 389 (Self-billed invoice), 381 (Credit note), 875 (Partial construction invoice), 876 (Partial final construction invoice), 877 (Final construction invoice).
DE-R-018Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are located in Germany, information on cash discounts for prompt payment (Skonto) shall be provided within the element "Payment terms" BT-20 in the following way: First segment "SKONTO", second segment amount of days ("TAGE=N"), third segment percentage ("PROZENT=N"). Percentage must be separated by dot with two decimal places. In case the base value of the invoiced amount is not provided in BT-115 but as a partial amount, the base value shall be provided as fourth segment "BASISBETRAG=N" as semantic data type amount. Each entry shall start with a #, the segments must be separated by # and a row shall end with a #. A complete statement on cash discount for prompt payment shall end with a XML-conformant line break. All statements on cash discount for prompt payment shall be given in capital letters. Additional whitespaces (blanks, tabulators or line breaks) are not allowed. Other characters or texts than defined above are not allowed.
DE-R-019Peppol BIS Billing 3.0UBLwarningIf both supplier and customer are located in Germany, the element "Payment account identifier" (BT-84) should contain a valid IBAN if code 58 SEPA is provided in "Payment means type code" (BT-81).
DE-R-020Peppol BIS Billing 3.0UBLwarningIf both supplier and customer are located in Germany, the element "Debited account identifier" (BT-91) should contain a valid IBAN if code 59 SEPA is provided in "Payment means type code" (BT-81).
DE-R-022Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are located in Germany, attached documents provided with an invoice in "ADDITIONAL SUPPORTING DOCUMENTS" (BG-24) shall have a unique filename (non case-sensitive) within the element ″Attached document″ (BT-125).
DE-R-023-1Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are German, if "Payment means type code" (BT-81) contains a code for credit transfer (30, 58), "CREDIT TRANSFER" (BG-17) shall be provided.
DE-R-023-2Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are located in Germany, and if "Payment means type code" (BT-81) contains a code for credit transfer (30, 58), BG-18 and BG-19 shall not be provided.
DE-R-024-1Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are located in Germany, and if "Payment means type code" (BT-81) contains a code for payment card (48, 54, 55), "PAYMENT CARD INFORMATION" (BG-18) shall be provided.
DE-R-024-2Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are located in Germany, and if "Payment means type code" (BT-81) contains a code for payment card (48, 54, 55), BG-17 and BG-19 shall not be provided.
DE-R-025-1Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are located in Germany, and if "Payment means type code" (BT-81) contains a code for direct debit (59), "DIRECT DEBIT" (BG-19) shall be provided.
DE-R-025-2Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are located in Germany, and if "Payment means type code" (BT-81) contains a code for direct debit (59), BG-17 and BG-18 shall not be provided.
DE-R-026Peppol BIS Billing 3.0UBLwarningIf both supplier and customer are located in Germany, and if "Invoice type code" (BT-3) contains the code 384 (Corrected invoice), "PRECEDING INVOICE REFERENCE" (BG-3) should be provided at least once.
DE-R-027Peppol BIS Billing 3.0UBLwarningIf both supplier and customer are located in Germany, "Seller contact telephone number" (BT-42) should contain a valid telephone number. A valid telephone should consist of 3 digits minimum.
DE-R-028Peppol BIS Billing 3.0UBLwarningIf both supplier and customer are located in Germany, "Seller contact email address" (BT-43) should contain exactly one @-sign, which should not be framed by a whitespace or a dot but by at least two characters on each side. A dot should not be the first or last character.
DE-R-030Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are located in Germany, and if the group "DIRECT DEBIT" (BG-19) is delivered, the element "Bank assigned creditor identifier" (BT-90) shall be provided.
DE-R-031Peppol BIS Billing 3.0UBLfatalIf both supplier and customer are located in Germany, and if the group "DIRECT DEBIT" (BG-19) is delivered, the element "Debited account identifier" (BT-91) shall be provided.
DE-R-T02Peppol BIS Billing 3.0UBLwarningIf both supplier and customer are located in Germany, BT-124 "External document location" must contain an absolute URL with valid scheme.
DK-R-002Peppol BIS Billing 3.0CIIfatalDanish suppliers MUST provide legal entity.
DK-R-002Peppol BIS Billing 3.0UBLfatalDanish suppliers MUST provide legal entity (CVR-number)
DK-R-003Peppol BIS Billing 3.0CIIwarningIf ItemClassification is provided from Danish suppliers, UNSPSC version 19.05.01 or 26.08.01 should be used
DK-R-003Peppol BIS Billing 3.0UBLfatalIf ItemClassification is provided from Danish suppliers, UNSPSC version 19.05.01 or 26.08.01 should be used.
DK-R-004Peppol BIS Billing 3.0CII and UBLfatalWhen specifying non-VAT Taxes for Danish customers, Danish suppliers MUST use the AllowanceChargeReasonCode="ZZZ" and MUST be specified in AllowanceChargeReason; Either as the 4-digit Tax category or must include a #, but the # is not allowed as first and last character
DK-R-005Peppol BIS Billing 3.0CIIfatalFor Danish suppliers the following Payment means type codes are allowed: 1, 10, 31, 42, 48, 49, 50, 58, 59, 93 and 97
DK-R-005Peppol BIS Billing 3.0UBLfatalFor Danish suppliers the following Payment means codes are allowed: 1, 10, 31, 42, 48, 49, 50, 58, 59, 93 and 97
DK-R-006Peppol BIS Billing 3.0CIIfatalFor Danish suppliers, bank account and registration account are mandatory if payment means is 31 or 42
DK-R-006Peppol BIS Billing 3.0UBLfatalFor Danish suppliers bank account and registration account is mandatory if payment means is 31 or 42
DK-R-007Peppol BIS Billing 3.0CIIfatalFor Danish suppliers DirectDebitMandateID and CreditorReferenceID are mandatory when payment means is 49
DK-R-007Peppol BIS Billing 3.0UBLfatalFor Danish suppliers PaymentMandate/ID and PayerFinancialAccount/ID are mandatory when payment means is 49
DK-R-008Peppol BIS Billing 3.0CIIfatalFor Danish Suppliers PaymentReference is mandatory and MUST start with 01#, 04# or 15# (kortartkode), and PayeePartyCreditorFinancialAccount/IBANID (Giro kontonummer) is mandatory and must be 7 characters long, when payment means equals 50 (Giro)
DK-R-008Peppol BIS Billing 3.0UBLfatalFor Danish Suppliers PaymentID is mandatory and MUST start with 01#, 04# or 15# (kortartkode), and PayeeFinancialAccount/ID (Giro kontonummer) is mandatory and must be 7 or 8 numerical characters long, when payment means equals 50 (Giro)
DK-R-009Peppol BIS Billing 3.0CIIfatalFor Danish Suppliers if the PaymentReference is prefixed with 04# or 015# the 16 digits instruction Id must be added to the PaymentReference eg. "04#1234567890123456" when Payment means equals 50 (Giro)
DK-R-009Peppol BIS Billing 3.0UBLfatalFor Danish Suppliers if the PaymentID is prefixed with 04# or 15# the 16 digits instruction Id must be added to the PaymentID eg. "04#1234567890123456" when Payment means equals 50 (Giro)
DK-R-010Peppol BIS Billing 3.0CII and UBLfatalFor Danish Suppliers using PaymentMeansCode 93, PaymentID is mandatory. The first three characters of the PaymentID MUST be 71#, 73# or 75# (kortartskode), and PayeeFinancialAccount/ID MUST be exactly 8 characters long.
DK-R-011Peppol BIS Billing 3.0CIIfatalFor Danish Suppliers if the PaymentReference is prefixed with 71# or 75# the 15-16 digits instruction Id must be added to the PaymentReference eg. "71#1234567890123456" when payment Method equals 93 (FIK)
DK-R-011Peppol BIS Billing 3.0UBLfatalFor Danish Suppliers if the PaymentID is prefixed with 71# or 75# the 15-16 digits instruction Id must be added to the PaymentID eg. "71#1234567890123456" when payment Method equals 93 (FIK)
DK-R-013Peppol BIS Billing 3.0CIIfatalFor Danish Suppliers it is mandatory to use schemeID when GlobalID is used for SellerTradeParty or BuyerTradeParty
DK-R-013Peppol BIS Billing 3.0UBLfatalFor Danish Suppliers it is mandatory to use schemeID when PartyIdentification/ID is used for AccountingCustomerParty or AccountingSupplierParty
DK-R-014Peppol BIS Billing 3.0CIIfatalFor Danish Suppliers it is mandatory to specify schemeID as "0184" when SpecifiedLegalOrganization is used for SellerTradeParty
DK-R-014Peppol BIS Billing 3.0UBLfatalFor Danish Suppliers it is mandatory to specify schemeID as "0184" (DK CVR-number) when PartyLegalEntity/CompanyID is used for AccountingSupplierParty
DK-R-016Peppol BIS Billing 3.0CIIfatalFor Danish Suppliers, a Credit note cannot have a negative total (DuePayableAmount)
DK-R-016Peppol BIS Billing 3.0UBLfatalFor Danish Suppliers, a Credit note cannot have a negative total (PayableAmount)
DK-R-017Peppol BIS Billing 3.0UBLfatalFor Danish Customers it is mandatory to specify schemeID as "0184" (DK CVR-number) when PartyLegalEntity/CompanyID is used for AccountingCustomerParty
GR-R-001-1Peppol BIS Billing 3.0UBLfatalWhen the Supplier is Greek, the Invoice Id should consist of 6 segments
GR-R-001-2Peppol BIS Billing 3.0UBLfatalWhen the Supplier is Greek, the Invoice Id first segment must be a valid TIN Number and match either the Supplier's or the Tax Representative's Tin Number
GR-R-001-3Peppol BIS Billing 3.0UBLfatalWhen the Supplier is Greek, the Invoice Id second segment must be a valid Date that matches the invoice Issue Date
GR-R-001-4Peppol BIS Billing 3.0UBLfatalWhen Supplier is Greek, the Invoice Id third segment must be a positive integer
GR-R-001-5Peppol BIS Billing 3.0UBLfatalWhen Supplier is Greek, the Invoice Id in the fourth segment must be a valid greek document type
GR-R-001-6Peppol BIS Billing 3.0UBLfatalWhen Supplier is Greek, the Invoice Id fifth segment must not be empty
GR-R-001-7Peppol BIS Billing 3.0UBLfatalWhen Supplier is Greek, the Invoice Id sixth segment must not be empty
GR-R-002Peppol BIS Billing 3.0UBLfatalGreek Suppliers must provide their full name as they are registered in the Greek Business Registry (G.E.MH.) as a legal entity or in the Tax Registry as a natural person
GR-R-003Peppol BIS Billing 3.0UBLfatalFor the Greek Suppliers, the VAT must start with 'EL' and must be a valid TIN number
GR-R-004-1Peppol BIS Billing 3.0UBLfatalWhen Supplier is Greek, there must be one MARK Number
GR-R-004-2Peppol BIS Billing 3.0UBLfatalWhen Supplier is Greek, the MARK Number must be a positive integer
GR-R-005Peppol BIS Billing 3.0UBLfatalGreek Suppliers must provide the full name of the buyer
GR-R-006Peppol BIS Billing 3.0UBLfatalGreek Suppliers must provide the VAT number of the buyer, if the buyer is Greek
GR-R-008-2Peppol BIS Billing 3.0UBLfatalWhen Supplier is Greek, there should be no more than one invoice url
GR-R-008-3Peppol BIS Billing 3.0UBLfatalWhen Supplier is Greek and the INVOICE URL Document reference exists, the External Reference URI should be present
GR-R-009Peppol BIS Billing 3.0UBLfatalGreek suppliers that send an invoice through the PEPPOL network must use a correct TIN number as an electronic address according to PEPPOL Electronic Address Identifier scheme (schemeID 9933).
GR-R-010Peppol BIS Billing 3.0UBLfatalGreek Suppliers that send an invoice through the PEPPOL network to a greek buyer must use a correct TIN number as an electronic address according to PEPPOL Electronic Address Identifier scheme (SchemeID 9933)
GR-S-008-1Peppol BIS Billing 3.0UBLwarningWhen Supplier is Greek, there should be one invoice url
GR-S-011Peppol BIS Billing 3.0UBLwarningGreek suppliers must provide their Seller Tax Registration Number, prefixed by the country code
IS-R-001Peppol BIS Billing 3.0UBLwarningIf seller is icelandic then invoice type should be 380 or 381 — Ef seljandi er íslenskur þá ætti gerð reiknings (BT-3) að vera sölureikningur (380) eða kreditreikningur (381).
IS-R-002Peppol BIS Billing 3.0UBLfatalIf seller is icelandic then it shall contain sellers legal id — Ef seljandi er íslenskur þá skal reikningur innihalda íslenska kennitölu seljanda (BT-30).
IS-R-003Peppol BIS Billing 3.0UBLfatalIf seller is icelandic then it shall contain his address with street name and zip code — Ef seljandi er íslenskur þá skal heimilisfang seljanda innihalda götuheiti og póstnúmer (BT-35 og BT-38).
IS-R-004Peppol BIS Billing 3.0UBLfatalIf seller and buyer are icelandic then the invoice shall contain the buyers icelandic legal identifier — Ef seljandi og kaupandi eru íslenskir þá skal reikningurinn innihalda íslenska kennitölu kaupanda (BT-47).
IS-R-005Peppol BIS Billing 3.0UBLfatalIf seller and buyer are icelandic then the invoice shall contain the buyers address with street name and zip code — Ef seljandi og kaupandi eru íslenskir þá skal heimilisfang kaupanda innihalda götuheiti og póstnúmer (BT-50 og BT-53)
IS-R-006Peppol BIS Billing 3.0UBLfatalIf seller is icelandic and payment means code is 9 then a 12 digit account id must exist — Ef seljandi er íslenskur og greiðslumáti (BT-81) er krafa (kóti 9) þá skal koma fram 12 stafa númer (bankanúmer, höfuðbók 66 og reikningsnúmer) (BT-84)
IS-R-007Peppol BIS Billing 3.0UBLfatalIf seller is icelandic and payment means code is 42 then a 12 digit account id must exist — Ef seljandi er íslenskur og greiðslumáti (BT-81) er millifærsla (kóti 42) þá skal koma fram 12 stafa reikningnúmer (BT-84)
IS-R-008Peppol BIS Billing 3.0UBLfatalIf seller is icelandic and invoice contains supporting description EINDAGI then the id form must be YYYY-MM-DD — Ef seljandi er íslenskur þá skal eindagi (BT-122, DocumentDescription = EINDAGI) vera á forminu YYYY-MM-DD.
IS-R-009Peppol BIS Billing 3.0UBLfatalIf seller is icelandic and invoice contains supporting description EINDAGI invoice must have due date — Ef seljandi er íslenskur þá skal reikningur sem inniheldur eindaga (BT-122, DocumentDescription = EINDAGI) einnig hafa gjalddaga (BT-9).
IS-R-010Peppol BIS Billing 3.0UBLfatalIf seller is icelandic and invoice contains supporting description EINDAGI the id date must be same or later than due date — Ef seljandi er íslenskur þá skal eindagi (BT-122, DocumentDescription = EINDAGI) skal vera sami eða síðar en gjalddagi (BT-9) ef eindagi er til staðar.
IT-R-001Peppol BIS Billing 3.0CII and UBLfatalBT-32 (Seller tax registration identifier) - For Italian suppliers BT-32 minimum length 11 and maximum length shall be 16. Per i fornitori italiani il BT-32 deve avere una lunghezza tra 11 e 16 caratteri
IT-R-002Peppol BIS Billing 3.0CII and UBLfatalBT-35 (Seller address line 1) - Italian suppliers MUST provide the postal address line 1 - I fornitori italiani devono indicare l'indirizzo postale.
IT-R-003Peppol BIS Billing 3.0CII and UBLfatalBT-37 (Seller city) - Italian suppliers MUST provide the postal address city - I fornitori italiani devono indicare la città di residenza.
IT-R-004Peppol BIS Billing 3.0CII and UBLfatalBT-38 (Seller post code) - Italian suppliers MUST provide the postal address post code - I fornitori italiani devono indicare il CAP di residenza.
NL-R-001Peppol BIS Billing 3.0CIIfatalFor suppliers in the Netherlands, if the document is a creditnote, the document MUST contain an invoice reference (ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:IssuerAssignedID)
NL-R-001Peppol BIS Billing 3.0UBLfatalFor suppliers in the Netherlands, if the document is a creditnote, the document MUST contain an invoice reference (cac:BillingReference/cac:InvoiceDocumentReference/cbc:ID)
NL-R-002Peppol BIS Billing 3.0CIIfatalFor suppliers in the Netherlands the supplier's address (ram:SellerTradeParty/ram:PostalTradeAddress) MUST contain street name (ram:LineOne), city (ram:CityName) and post code (ram:PostcodeCode)
NL-R-002Peppol BIS Billing 3.0UBLfatalFor suppliers in the Netherlands the supplier's address (cac:AccountingSupplierParty/cac:Party/cac:PostalAddress) MUST contain street name (cbc:StreetName), city (cbc:CityName) and post code (cbc:PostalZone)
NL-R-003Peppol BIS Billing 3.0CII and UBLfatalFor suppliers in the Netherlands, the legal entity identifier MUST be either a KVK or OIN number (schemeID 0106 or 0190)
NL-R-004Peppol BIS Billing 3.0CIIfatalFor suppliers in the Netherlands, if the customer is in the Netherlands, the customer address (ram:BuyerTradeParty/ram:PostalTradeAddress) MUST contain street name (ram:LineOne), city (ram:CityName) and post code (ram:PostcodeCode)
NL-R-004Peppol BIS Billing 3.0UBLfatalFor suppliers in the Netherlands, if the customer is in the Netherlands, the customer address (cac:AccountingCustomerParty/cac:Party/cac:PostalAddress) MUST contain the street name (cbc:StreetName), the city (cbc:CityName) and post code (cbc:PostalZone)
NL-R-005Peppol BIS Billing 3.0CII and UBLfatalFor suppliers in the Netherlands, if the customer is in the Netherlands, the customer's legal entity identifier MUST be either a KVK or OIN number (schemeID 0106 or 0190)
NL-R-006Peppol BIS Billing 3.0CIIfatalFor suppliers in the Netherlands, if the fiscal representative is in the Netherlands, the representative's address (ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress) MUST contain street name (ram:LineOne), city (ram:CityName) and post code (ram:PostcodeCode)
NL-R-006Peppol BIS Billing 3.0UBLfatalFor suppliers in the Netherlands, if the fiscal representative is in the Netherlands, the representative's address (cac:TaxRepresentativeParty/cac:PostalAddress) MUST contain street name (cbc:StreetName), city (cbc:CityName) and post code (cbc:PostalZone)
NL-R-007Peppol BIS Billing 3.0CIIfatalFor suppliers in the Netherlands, the supplier MUST provide a means of payment (ram:SpecifiedTradeSettlementPaymentMeans) if the payment is from customer to supplier
NL-R-007Peppol BIS Billing 3.0UBLfatalFor suppliers in the Netherlands, the supplier MUST provide a means of payment (cac:PaymentMeans) if the payment is from customer to supplier
NL-R-008Peppol BIS Billing 3.0CIIfatalFor suppliers in the Netherlands, if the customer is in the Netherlands, the payment means code (ram:SpecifiedTradeSettlementPaymentMeans/ram:TypeCode) MUST be one of 30, 48, 49, 57, 58 or 59
NL-R-008Peppol BIS Billing 3.0UBLfatalFor suppliers in the Netherlands, if the customer is in the Netherlands, the payment means code (cac:PaymentMeans/cbc:PaymentMeansCode) MUST be one of 30, 48, 49, 57, 58 or 59
NL-R-009Peppol BIS Billing 3.0CIIfatalFor suppliers in the Netherlands, if an order line reference (ram:BuyerOrderReferencedDocument/ram:LineID) is used, there must be an order reference on the document level (rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:IssuerAssignedID)
NL-R-009Peppol BIS Billing 3.0UBLfatalFor suppliers in the Netherlands, if an order line reference (cac:OrderLineReference/cbc:LineID) is used, there must be an order reference on the document level (cac:OrderReference/cbc:ID)
NO-R-001Peppol BIS Billing 3.0CII and UBLfatalFor Norwegian suppliers, a VAT number MUST be the country code prefix NO followed by a valid Norwegian organization number (nine numbers) followed by the letters MVA.
NO-R-002Peppol BIS Billing 3.0CIIwarningMost invoice issuers are required to append "Foretaksregisteret" to their invoice. "Dersom selger er aksjeselskap, allmennaksjeselskap eller filial av utenlandsk selskap skal også ordet «Foretaksregisteret» fremgå av salgsdokumentet, jf. foretaksregisterloven § 10-2."
NO-R-002Peppol BIS Billing 3.0UBLwarningFor Norwegian suppliers, most invoice issuers are required to append "Foretaksregisteret" to their invoice. "Dersom selger er aksjeselskap, allmennaksjeselskap eller filial av utenlandsk selskap skal også ordet «Foretaksregisteret» fremgå av salgsdokumentet, jf. foretaksregisterloven § 10-2."
PEPPOL-COMMON-R040Peppol BIS Billing 3.0CII and UBLfatalGLN must have a valid format according to GS1 rules.
PEPPOL-COMMON-R041Peppol BIS Billing 3.0CII and UBLfatalNorwegian organization number MUST be stated in the correct format.
PEPPOL-COMMON-R042Peppol BIS Billing 3.0CII and UBLfatalDanish organization number (CVR) MUST be stated in the correct format.
PEPPOL-COMMON-R043Peppol BIS Billing 3.0CII and UBLfatalBelgian enterprise number MUST be stated in the correct format.
PEPPOL-COMMON-R044Peppol BIS Billing 3.0CII and UBLwarningIPA Code (Codice Univoco Unità Organizzativa) must be stated in the correct format
PEPPOL-COMMON-R045Peppol BIS Billing 3.0CII and UBLwarningTax Code (Codice Fiscale) must be stated in the correct format
PEPPOL-COMMON-R046Peppol BIS Billing 3.0CII and UBLwarningTax Code (Codice Fiscale) must be stated in the correct format
PEPPOL-COMMON-R047Peppol BIS Billing 3.0CII and UBLwarningItalian VAT Code (Partita Iva) must be stated in the correct format
PEPPOL-COMMON-R049Peppol BIS Billing 3.0CII and UBLfatalSwedish organization number MUST be stated in the correct format.
PEPPOL-COMMON-R050Peppol BIS Billing 3.0CII and UBLfatalAustralian Business Number (ABN) MUST be stated in the correct format.
PEPPOL-COMMON-R052Peppol BIS Billing 3.0CII and UBLfatalDanish chamber of commerce number (P) MUST be stated in the correct format.
PEPPOL-COMMON-R053Peppol BIS Billing 3.0CII and UBLfatalDanish ERSTORG number (SE) MUST be stated in the correct format.
PEPPOL-COMMON-R054Peppol BIS Billing 3.0CII and UBLwarningDutch Chamber of Commerce (KVK) numbers (0106) MUST be stated in the correct format (12345678).
PEPPOL-COMMON-R055Peppol BIS Billing 3.0CII and UBLwarningDutch organization identification numbers (0190) MUST be stated in the correct format (12345678901234567890).
PEPPOL-COMMON-R056-1Peppol BIS Billing 3.0CII and UBLwarningDutch VAT numbers (9944) MUST be stated in the correct format (NL123456789B12).
PEPPOL-COMMON-R056-2Peppol BIS Billing 3.0CII and UBLwarningDutch VAT numbers MUST have the format (NL123456789B12).
PEPPOL-COMMON-R057Peppol BIS Billing 3.0CII and UBLwarningDutch Chamber of Commerce Establishment numbers (0217) MUST be stated in the correct format (123456789012).
PEPPOL-EN16931-CL001Peppol BIS Billing 3.0CII and UBLfatalMime code must be according to subset of IANA code list.
PEPPOL-EN16931-CL002Peppol BIS Billing 3.0CII and UBLfatalReason code MUST be according to subset of UNCL 5189 D.16B.
PEPPOL-EN16931-CL003Peppol BIS Billing 3.0CII and UBLfatalReason code MUST be according to UNCL 7161 D.16B.
PEPPOL-EN16931-CL006Peppol BIS Billing 3.0UBLfatalInvoice period description code must be according to UNCL 2005 D.16B.
PEPPOL-EN16931-CL007Peppol BIS Billing 3.0CII and UBLfatalCurrency code must be according to ISO 4217:2005
PEPPOL-EN16931-CL008Peppol BIS Billing 3.0CII and UBLfatalElectronic address identifier scheme must be from the codelist "Electronic Address Identifier Scheme"
PEPPOL-EN16931-F001Peppol BIS Billing 3.0CIIfatalA date MUST be formatted YYYYMMDD.
PEPPOL-EN16931-F001Peppol BIS Billing 3.0UBLfatalA date MUST be formatted YYYY-MM-DD.
PEPPOL-EN16931-P0100Peppol BIS Billing 3.0CII and UBLfatalInvoice type code MUST be set according to the profile.
PEPPOL-EN16931-P0101Peppol BIS Billing 3.0UBLfatalCredit note type code MUST be set according to the profile.
PEPPOL-EN16931-P0104Peppol BIS Billing 3.0UBLfatalTax Category G MUST be used when exemption reason code is VATEX-EU-G
PEPPOL-EN16931-P0105Peppol BIS Billing 3.0UBLfatalTax Category O MUST be used when exemption reason code is VATEX-EU-O
PEPPOL-EN16931-P0106Peppol BIS Billing 3.0UBLfatalTax Category K MUST be used when exemption reason code is VATEX-EU-IC
PEPPOL-EN16931-P0107Peppol BIS Billing 3.0UBLfatalTax Category AE MUST be used when exemption reason code is VATEX-EU-AE
PEPPOL-EN16931-P0108Peppol BIS Billing 3.0UBLfatalTax Category E MUST be used when exemption reason code is VATEX-EU-D
PEPPOL-EN16931-P0109Peppol BIS Billing 3.0UBLfatalTax Category E MUST be used when exemption reason code is VATEX-EU-F
PEPPOL-EN16931-P0110Peppol BIS Billing 3.0UBLfatalTax Category E MUST be used when exemption reason code is VATEX-EU-I
PEPPOL-EN16931-P0111Peppol BIS Billing 3.0UBLfatalTax Category E MUST be used when exemption reason code is VATEX-EU-J
PEPPOL-EN16931-P0112Peppol BIS Billing 3.0UBLfatalInvoice type codes 326 and 389 are only allowed when both buyer and seller are German organizations. Invoice type code 384 is only allowed when both buyer and seller are German organizations or both are Slovak organizations.
PEPPOL-EN16931-R001Peppol BIS Billing 3.0CII and UBLfatalBusiness process MUST be provided.
PEPPOL-EN16931-R002Peppol BIS Billing 3.0CIIfatalNo more than one note is allowed on document level.
PEPPOL-EN16931-R002Peppol BIS Billing 3.0UBLfatalNo more than one note is allowed on document level, unless both the buyer and seller are German organizations.
PEPPOL-EN16931-R003Peppol BIS Billing 3.0CII and UBLfatalA buyer reference or purchase order reference MUST be provided.
PEPPOL-EN16931-R004Peppol BIS Billing 3.0CII and UBLfatalSpecification identifier MUST begin with the value 'urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0' and follow the format rules for the identifier.
PEPPOL-EN16931-R005Peppol BIS Billing 3.0CII and UBLfatalVAT accounting currency code MUST be different from invoice currency code when provided.
PEPPOL-EN16931-R006Peppol BIS Billing 3.0CIIfatalOnly one invoiced object is allowed on document level
PEPPOL-EN16931-R007Peppol BIS Billing 3.0CIIfatalBusiness process MUST have an approved profile identifier.
PEPPOL-EN16931-R007Peppol BIS Billing 3.0UBLfatalBusiness process MUST have an approved identifier.
PEPPOL-EN16931-R008Peppol BIS Billing 3.0UBLfatalDocument MUST not contain empty elements.
PEPPOL-EN16931-R010Peppol BIS Billing 3.0CII and UBLfatalBuyer electronic address MUST be provided
PEPPOL-EN16931-R020Peppol BIS Billing 3.0CII and UBLfatalSeller electronic address MUST be provided
PEPPOL-EN16931-R040Peppol BIS Billing 3.0CII and UBLfatalAllowance/charge amount must equal base amount * percentage/100 if base amount and percentage exists
PEPPOL-EN16931-R041Peppol BIS Billing 3.0CII and UBLfatalAllowance/charge base amount MUST be provided when allowance/charge percentage is provided.
PEPPOL-EN16931-R042Peppol BIS Billing 3.0CII and UBLfatalAllowance/charge percentage MUST be provided when allowance/charge base amount is provided.
PEPPOL-EN16931-R043Peppol BIS Billing 3.0CII and UBLfatalAllowance/charge ChargeIndicator value MUST equal 'true' or 'false'
PEPPOL-EN16931-R044Peppol BIS Billing 3.0UBLfatalCharge on price level is NOT allowed. Only value 'false' allowed.
PEPPOL-EN16931-R046Peppol BIS Billing 3.0UBLfatalItem net price MUST equal (Gross price - Allowance amount) when gross price is provided.
PEPPOL-EN16931-R051Peppol BIS Billing 3.0UBLfatalAll currencyID attributes must have the same value as the invoice currency code (BT-5), except for the invoice total VAT amount in accounting currency (BT-111).
PEPPOL-EN16931-R053Peppol BIS Billing 3.0CII and UBLfatalOnly one tax total with tax subtotals MUST be provided.
PEPPOL-EN16931-R054Peppol BIS Billing 3.0CII and UBLfatalOnly one tax total without tax subtotals MUST be provided when tax currency code is provided.
PEPPOL-EN16931-R055Peppol BIS Billing 3.0CII and UBLfatalInvoice total VAT amount and Invoice total VAT amount in accounting currency MUST have the same operational sign
PEPPOL-EN16931-R061Peppol BIS Billing 3.0CII and UBLfatalMandate reference MUST be provided for direct debit.
PEPPOL-EN16931-R080Peppol BIS Billing 3.0CII and UBLfatalOnly one project reference is allowed on document level
PEPPOL-EN16931-R100Peppol BIS Billing 3.0CII and UBLfatalOnly one invoiced object is allowed pr line
PEPPOL-EN16931-R101Peppol BIS Billing 3.0CII and UBLfatalElement Document reference can only be used for Invoice line object
PEPPOL-EN16931-R110Peppol BIS Billing 3.0CII and UBLfatalStart date of line period MUST be within invoice period.
PEPPOL-EN16931-R111Peppol BIS Billing 3.0CII and UBLfatalEnd date of line period MUST be within invoice period.
PEPPOL-EN16931-R120Peppol BIS Billing 3.0CII and UBLfatalInvoice line net amount MUST equal (Invoiced quantity * (Item net price/item price base quantity) + Sum of invoice line charge amount - sum of invoice line allowance amount
PEPPOL-EN16931-R121Peppol BIS Billing 3.0CII and UBLfatalBase quantity MUST be a positive number above zero.
PEPPOL-EN16931-R130Peppol BIS Billing 3.0CII and UBLfatalUnit code of price base quantity MUST be same as invoiced quantity.
SE-R-001Peppol BIS Billing 3.0CII and UBLfatalFor Swedish suppliers, Swedish VAT-numbers must consist of 14 characters.
SE-R-002Peppol BIS Billing 3.0CII and UBLfatalFor Swedish suppliers, the Swedish VAT-numbers must have the trailing 12 characters in numeric form
SE-R-003Peppol BIS Billing 3.0CII and UBLfatalSwedish organisation numbers should be numeric.
SE-R-004Peppol BIS Billing 3.0CII and UBLfatalSwedish organisation numbers consist of 10 characters.
SE-R-005Peppol BIS Billing 3.0CII and UBLfatalFor Swedish suppliers, when using Seller tax registration identifier, 'Godkänd för F-skatt' must be stated
SE-R-006Peppol BIS Billing 3.0CII and UBLfatalFor Swedish suppliers, only standard VAT rate of 6, 12 or 25 are used
SE-R-007Peppol BIS Billing 3.0CII and UBLwarningFor Swedish suppliers using Plusgiro, the Account ID must be numeric
SE-R-008Peppol BIS Billing 3.0CII and UBLwarningFor Swedish suppliers using Bankgiro, the Account ID must be numeric
SE-R-009Peppol BIS Billing 3.0CII and UBLwarningFor Swedish suppliers using Bankgiro, the Account ID must have 7-8 characters
SE-R-010Peppol BIS Billing 3.0CII and UBLwarningFor Swedish suppliers using Plusgiro, the Account ID must have 2-8 characters
SE-R-011Peppol BIS Billing 3.0CII and UBLwarningFor Swedish suppliers using Swedish Bankgiro or Plusgiro, the proper way to indicate this is to use Code 30 for PaymentMeans and FinancialInstitutionBranch ID with code SE:BANKGIRO or SE:PLUSGIRO
SE-R-012Peppol BIS Billing 3.0CIIwarningFor domestic transactions between Swedish trading partners, credit transfer should be indicated by PaymentMeansCode=”30”
SE-R-012Peppol BIS Billing 3.0UBLwarningFor domestic transactions between Swedish trading partners, credit transfer should be indicated by PaymentMeansCode="30"
SE-R-013Peppol BIS Billing 3.0CII and UBLfatalThe last digit of a Swedish organization number must be valid according to the Luhn algorithm.
UBL-CR-674Peppol BIS Billing 3.0UBLwarningA UBL invoice should not include the PrimaryAccountNumber schemeID

How to read the difference

A CIUS (Customisation of the European Invoice Standard) is a national tightening of the norm: Germany’s XRechnung keeps every EN 16931 rule and adds its own — the BR-DE-* family, plus BR-DEX-*, BR-DE-CVD-* and the BR-TMP-* checks that arrive with XRechnung 3.0. It cannot relax anything, because a CIUS is allowed only to add.

A profile such as Peppol BIS Billing 3.0 is a published bundle: its own copy of the norm’s artefacts, plus network rules (BR-AF-*, BR-AG-*, PEPPOL-EN-*, PEPPOL-COMMON-R-*) and the country rule sets the network ships (DE-R, DK-R, SE-R, NL-R, IT-R, NO-R, GR-R, IS-R and friends). That is why its totals move for two different reasons: it genuinely adds rules, and it carries a slightly older copy of the norm — Peppol BIS 3.0.21 ships EN 16931 Schematron 1.3.16 while the artefacts this engine loads for the plain norm are 1.3.17. Reading “Peppol has more rules” as “Peppol is stricter” misses half of it.

Severity comes from the artefacts, not from our preference: fatal is a shall, warning is a should, and EN 16931 itself does not reject a document on a warning. Peppol and most national gateways do promote warnings to failures, so if the invoice is going through an access point, fix both.

Get the same numbers in a terminal

These are not screenshots of a database. The command that answers the question is the one the library enforces:

einv artefacts -json -cius xrechnung
einv rules -json -syntax ubl -cius xrechnung | wc -l
einv validate -cius xrechnung invoice.xml
einv validate -profile peppol invoice.xml

einv is a static binary with the rule sets embedded — no Java, no Saxon, no rule files to install beside it. It is the same engine the pages on this site run in your browser and the hosted API runs behind a key: see the command-line and library page and the API & licences page.

The data behind the page

These figures get wrong when someone retypes them into a tender response, a procurement policy or a support ticket. Both files this page is generated from are published beside it, so the numbers can be cited instead of copied:

Both files are rebuilt from the engine the site pins, and the build stops if the tracked file was counted from a different version than the one it ships with — so a stale number here is a failed build rather than an out-of-date paragraph. The version they were counted under is v0.2.9.

The assertions are other people’s publications: the norm’s Schematron artefacts from the Connecting Europe Facility (EUPL 1.2), XRechnung’s from KoSIT (Apache 2.0), Peppol BIS’s from OpenPEPPOL. What is published here is the counting; the sources and licences are spelled out in the engine repository’s NOTICE.md. If you republish the wording, keep that attribution with it.

Frequently asked

How many business rules does XRechnung have?

XRechnung 3.0.2 (CIUS 2.6.0) runs 862 assertions against CII and 1,038 against UBL. Of those, 810 and 982 are EN 16931 itself; the German mandate adds 52 and 56 more — the BR-DE-*, BR-DEX-*, BR-DE-CVD-* and BR-TMP-* families. Numbers quoted elsewhere usually count rule ids rather than assertions, or quote one syntax only.

Is Peppol BIS stricter than EN 16931?

It is wider, and it is harsher about the same rules. Peppol BIS Billing 3.0.21 runs 897 CII and 1,144 UBL assertions: 114 and 186 more than the plain norm, mostly its own network and country rules. It also ships its own copy of the norm’s artefacts at Schematron 1.3.16, so a few of those differences are version drift rather than new requirements. And a Peppol access point treats warnings as failures, which the norm does not.

Which one should I validate against?

Whatever your buyer runs. Sending a German public-sector invoice means XRechnung; sending through the Peppol network means Peppol BIS; a French Factur-X invoice is checked against the norm plus its profile. Validate under the rule set you are being judged by — the validator on this site takes EN 16931 only, XRechnung or Peppol BIS, and the CLI and API take the same options.

Are these every rule my buyer will check?

No. This is the norm plus the two rule sets the engine embeds. A big buyer or a different country’s CIUS can add more on top, and some add rules no published artefact contains at all. Anything the engine can load, it enforces and lists; what it cannot load, it will not pretend to check.

Can I quote these numbers?

Yes — take them from the file rather than from the prose. The CSV and JSON above are what the page is built from, and each row carries the rule-set version and the engine version it was counted under, so a figure can be pinned to a release. The rule texts themselves are the European Commission’s, KoSIT’s and OpenPEPPOL’s under the licences named in the footer, so keep that attribution if you republish the wording, and say which engine release your counts came from, because they move.

Why do you publish counts at all — they change with every release?

Precisely because they change. Every number and every row on this page is generated at build time from the artefacts the pinned engine loads, so a page that gets stale is a build that failed rather than a paragraph nobody remembered to edit. The footer names the engine version these numbers belong to.