Counterfoil rule note
Quoted from a public specification. This page is not a validator, and it is not tax, legal, or accounting advice.
In order for the buyer to automatically identify a supplier, the Seller identifier (BT-29), the Seller legal registration identifier (BT-30) and/or the Seller VAT identifier (BT-31) shall be present.
Source: https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-CO-26/
Peppol BIS Billing 3.0, May 2026 release, EN 16931 model bound to UBL
Severity note: fatal, from the Flag column of the Peppol BIS Billing 3.0 UBL rules index retrieved 2026-10-18.
The seller identifier (BT-29), the seller legal registration identifier (BT-30), or the seller VAT identifier (BT-31) must be present so the buyer can identify the supplier. The statement says "and/or" and "shall be present", and it ends with a period. The rule page has a trailing U+00A0 after that period. Collapse drops it. The context is the accounting supplier party. The published test calls exists three times. The VAT scheme comparison is cbc:ID))='VAT' with no space before =. The party-identification branch excludes schemeID SEPA, with spaces around =.
Send a Seller identifier (BT-29), a Seller legal registration identifier (BT-30), or a Seller VAT identifier (BT-31). A party identification with scheme SEPA does not satisfy the identifier branch.
Illustration of the condition in the official statement. Not an example published by the source.
Fails the stated condition. The seller has no identifier, no legal registration identifier, and no VAT identifier.
Passes the stated condition. The seller has a VAT identifier and no other seller identifier.
Copied from the source. Not reimplemented on this page.
cac:AccountingSupplierParty
exists(cac:Party/cac:PartyTaxScheme[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:CompanyID) or exists(cac:Party/cac:PartyIdentification/cbc:ID[not(@schemeID = 'SEPA')]) or exists(cac:Party/cac:PartyLegalEntity/cbc:CompanyID)
All rule notes · JSON · Markdown · llms.txt · Invoice page · Privacy