Changes in code lists are also reflected by changes in the validation artefacts enforcing only valid codes. All validation changes apply to both UBL and CII validation rules.

Version 3.0.9 - Hotfix

Release date


Changes to BIS document

  • Added VAT tax category code B to code list 5305. This code is allowed in the EN16931 for Italy only, based on the A-deviation.

Changes to support documents

Changes to code lists and validation artefacts

Version 3.0.8

Release date


Changes to BIS document

  • Definitions for EndPoint identifiers BT-34 and BT-49 aligned with defintion in EN16931. Issue: [POACC-331]

  • Migration plan from BIS2 to BIS3 removed. Is completed.

  • Use GLN as the only examlpe in section 10.2. Delivery Details (Date and Location). Removed reference to GSRN from the description text. [POACC-332]

  • Updating rule references in the Bis Syntax document to align with the schematron rules in use. Issue: [POACC-334]

Changes to support documents

Changes to code lists and validation artefacts

  • Rule PEPPOL-COMMON-R040: "GLN must have a valid format according to GS1 rules". Changed from severity "warning" to "fatal". (The rule was introduced in fall 2019 with severity "warning" to avoid disruptions but with the intention to be changed to severity "fatal" after 6-12 months). Issue: [POACC-333] and [POACC-341]

  • EAS code list, added code 0209, removed code 9958. Rule updated accordingly.

  • ICD code list, added code 0209. Rule updated accordingly. Names and descriptions added where missing.

  • VATEX code list, added code VATEX-EU-79C for repayment of expenditure. Rule updated accordingly.

  • Duplicate currency codes removed from ISO4217 code list. Issue: [POACC-339]

  • New national Swedish validation rule (SE-R-012) which gives warning on use of payment means code (31) which is often incorrectly used between Swedish suppliers and buyers. The rule only triggers if both buyer and supplier are Swedish.

  • Added Greek PA National Rules

Version 3.0.7

Release date


Hotfix release

  • Implements new TC434 validation artefacts as released here.

    • Code 0208 added to the Electronic Address Scheme (EAS) code list.

    • Codes 0205, 0206, 0207, 0208 added to the ICD code list.

Version 3.0.6

Release date


Changes to BIS document

  • Changed busienss name in peppol-bis-invoice-3\\guide\\transaction-spec\\annex, restricted-elements.adoc for BG-19 to “Direct debit” instead of “Payment card information” [POACC-261]

  • Changed Datatype in structure/syntax/ubl-invoice.xml on ubl-invoice/cac-InvoiceLine/cbc-LineExtensionAmount/ from Identifier to Amount [POACC-252]

  • EAS code list entry 0007 for billing and upgrade, spelling corrected and added clarification. [POACC-259]

  • Descriptions and some names of codes in UNCL7143 corrected in line with the official code list version d19a. Applies to all BIS using this code list. [POACC-258]

  • Updated the link in section 12 of to reflect the newest version of “Policy for use of identifiers” [POACC-188]

Changes to support documents

  • Added section Annex A.4. Known Issues in profile 01 - Billing and the reported issue noted. No workaround suggested since none is known. [POACC-260]

Changes to code lists and validation artefacts

  • Added country code 1A for Kosovo into ISO 3166 for all BIS specifications. EN 16931 validation artefacts used in BIS Billing 3.0 updated to latest version 1.3.1. [POACC-324]

  • Added rules PEPPOL-EN16931-P0104 to P0111 to restrict the use of allowed VAT category code in combination with ExemptionReasonCode. Following the rules defined in the codelists for codes: vatex-eu-g, vatex-eu-o, vatex-eu-ic, vatex-eu-ae, vatex-eu-d, vatex-eu-f, vatex-eu-i, vatex-eu-j. [POACC-303]

  • Added a clarification to the error message of rule PEPPOL-EN16931-R044 regarding other values than value ‘false’ in Price/AllowanceCharge/ChargeIndicator. [POACC-236]

  • Changes to TC434 rules as released here.

Version 3.0.5

Release date


Changes to BIS document

  • A description in BIS for a workaround for UNSPSC codes as item classification codes, removed since a new code has been added to code list UNECE 7143, directly supporting UNSPSC. This new code is TST.

  • Description of EAS code for code ION 0190 corrected. No change to the code itself.

Changes to support documents

  • Syntax mapping between UBL and CII, in xls spreadsheet corrected. Mapping for BT-34 corrected to use URIID instead of GlobalID. Correction in line with part 3-3 of EN 16931. Published in new version of mapping in file mapping-cii-ubl v2 fr19.xls

  • A bug in xslt stylesheet fixed. The stylesheet contains a list (uncl1001invoice) of different document types, that is displayed. In this list, only the Invoice name exist while the creditnote name is did not exist.

Changes to code lists and validation artefacts

  • Update in EAS code list, addition of codes: 0130 and 0204, and deprecating of code 9902, 9904, 9905, 9917 and 9921.

  • Update in ICD code list, addition of codes: 0203 and 0204. Description of code 0190 corrected as specified in ICD code certificate.

  • Update in VATEX code list, addition of codes: vatex-eu-132, vatex-eu-143, vatex-eu-148, vatex-eu-151

  • Rule PEPPOL-EN16931-CL005 "Country code MUST be according to ISO 3166 Alpha-2" deleted since it is an unneccessary duplication of [BR-CL-14]-"Country codes in an invoice MUST be coded using ISO code list 3166-1"

  • Rule PEPPOL-EN16931-R008 has been updated and PEPPOL-EN16931-R009 has been removed.

  • Error message for rules rephrased to be more instructive. Rules themselves are unchanged.

    • PEPPOL-COMMON-R040: "Invalid GLN number provided." → "GLN must have a valid format according to GS1 rules."

    • PEPPOL-COMMON-R041: "Invalid Norwegian organization number provided." → "Norwegian organization number MUST be stated in the correct format."

    • PEPPOL-EN16931-CL001: "Invalid mime code." → "Mime code must be according to subset of IANA code list."

  • An error in a common structural validation of GLN numbers, rule PEPPOL-COMMON-R040, corrected.

  • Changed implementation of empty element-test. Rule updated so that it also fails on whitespace only content.

  • Country rules for Denmark updated.

  • Added rule PEPPOL-COMMON-R042 to check structure of Danish CVR numbers.

  • Danish country rule DK-R-003 changed to use scheme code TST instead of MP for identifying UNSPSC classification.

  • PEPPOL rul PEPPOL-COMMON-R002 removed and PEPPOL-COMMON-R001 modified to cover its functionality.

  • Changes to TC434 rules as released here.

Version 3.0.4 - hotfix

Release date


Changes to BIS document

Changes to syntax mapping

Changes to code lists and validation artefacts

  • Update in EAS code list, addition of codes: 0151 ,0183, 0201 and 0200, and renaming of code 0199

  • Update in ICD code list, addition of codes: 0201 and 0200, and renaming of code 0199

  • Update in UNCL7143 code list, addition of codes: TSQ, TSR, TSS and TST

  • Update in UNCL1153 code list, addition of codes: AXS

  • Changes to TC434 rules as released here.

  • New TC434 rule: BR-CL-22 enforcing use of VATEX code list for VAT Exemption reason code

    • BR-CO-25 - Changed to only fire for invoices, not for Credit notes.For further details, see TC434 GitHub issue #84

    • UBL-SR-44 - correcting technical validation, to ensure all instances of cbc:PaymentID are equal if cac:PaymentMeans - are repeated. For further details, see TC434 GitHub issue #150

    • Change to ensure that syntax rules (rules that provides warnings if UBL elements not part of the data model are used), also fire for credit notes. For further details, see TC434 GitHub issue #156

Version 3.0.3

Release date


Changes to BIS document and validation artifacts

  • Adopted versions 1.2 and 1.2.1 of EN 16931 validation artifacts (includes new codes and rules)

  • VAT specified in separate currency now have the same operational sign as the VAT POACC-172

  • Added rule to check format of ProfileID (Process identifier) POACC-179

  • Added rule to check that only values true/false are used in AllowanceCharge/ChargeIndicator POACC-98

  • Floating point error when comparing decimals in some implementations. All use of the xpath function sum() adjusted/verified. (Both Billing and BIS Order/OrderAgreement) POACC-184

  • Linebreaks and other whitespace inside rule statements removed for the PEPPOL-rules (not country specific) POACC-158

  • Codes 0198 (ERSTORG), 0199 (GLEIF), 0200 (Lithuania org code) added as allowed Electronic Address schemes

  • Added a common structure validation rule for Norwegian organizational numbers and GLN numbers.

  • Various text corrections and minor bug fixes.

Changes in validation rules inherited through adoption of EN 16931 validation artifacts version 1.2 and version 1.2.1

Updated national rules

  • PEPPOL BIS Billing Italian validation rules updated POACC-180

  • PEPPOL BIS Billing Danish validation rules (UBL and CII) updated POACC-178

Version 3.0.1 - hotfix

Release date


Changes to BIS document

Changes to syntax mapping tables

  • Correct the structure of the cac:Taxtotal element in the syntax mapping.

  • Add EN16931 rules to syntax mapping.

  • Cardinality set to mandatory for element cac:InvoiceDocumentReference as this is the only element in cac:BillingReference

  • Cardinality set to mandatory for element cbc:URI as this is the only element in cac:AdditionalDocumentReference/cac:Attachment/cac:ExternalReference

  • Change description text from "Document level…​" to "Line level…​" for allowance/charge elements on line level in the syntax mapping table.

Changes to validation artefacts

  • Removed rule "PEPPOL-EN16931-R050 - Tax exemption reason code MUST NOT be used"

  • Incorporated updated validation artifacts from TC434 (amongst other, adding new ICD values).