Message

An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Intra-community supply" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48).

Context
/ubl:Invoice | /cn:CreditNote
Test
(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=true()]/cac:TaxCategory[normalize-space(cbc:ID) = 'K'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']) and (exists(//cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) = 'VAT')]/cbc:CompanyID) or exists(//cac:TaxRepresentativeParty/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) = 'VAT')]/cbc:CompanyID)) and (exists(//cac:AccountingCustomerParty/cac:Party/cac:PartyTaxScheme[cac:TaxScheme/(normalize-space(upper-case(cbc:ID)) = 'VAT')]/cbc:CompanyID))) or not(exists(//cac:AllowanceCharge[cbc:ChargeIndicator=true()]/cac:TaxCategory[normalize-space(cbc:ID) = 'K'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']))
Usage
/ ubl:Invoice / cac:AccountingSupplierParty / cac:Party / cac:PartyTaxScheme / cbc:CompanyID
/ ubl:Invoice / cac:AccountingCustomerParty / cac:Party / cac:PartyTaxScheme / cbc:CompanyID
/ ubl:Invoice / cac:TaxRepresentativeParty / cac:PartyTaxScheme / cbc:CompanyID
/ ubl:CreditNote / cac:AccountingSupplierParty / cac:Party / cac:PartyTaxScheme / cbc:CompanyID
/ ubl:CreditNote / cac:AccountingCustomerParty / cac:Party / cac:PartyTaxScheme / cbc:CompanyID
/ ubl:CreditNote / cac:TaxRepresentativeParty / cac:PartyTaxScheme / cbc:CompanyID