fatalEN 16931syntax binding ruleUBL
Payee identifier shall occur maximum once, if the Payee is different from the Seller
Either the Payee identifier (BT-60) appears more than once, or the Payee name is the same as the Seller's registered name (BT-27). The Payee group (BG-10) exists only to name a third party who is to be paid instead of the seller: repeating its details leaves a receiver two values to choose from, and naming the seller there says nothing at all. An identifier whose schemeID is SEPA is not counted here — the SEPA creditor identifier is a separate term (BT-90) and may sit alongside BT-60.
Keep one Payee identifier (BT-60). If the seller is the one being paid, delete the whole cac:PayeeParty group rather than filling it with the seller's own details — its absence is what means "pay the seller". If payment is genuinely split between two parties, EN 16931 cannot express that on one invoice: issue one invoice per payee.
UBL — context cac:PayeeParty
(count(cac:PartyIdentification/cbc:ID[upper-case(@schemeID) != 'SEPA']) <= 1) and ((cac:PartyName/cbc:Name) != (../cac:AccountingSupplierParty/cac:Party/cac:PartyLegalEntity/cbc:RegistrationName))
Nothing is stored, and the whole invoice is checked, not just this rule. A PDF only works if it is Factur-X / ZUGFeRD — a PDF with the invoice XML inside it.