InvoiceValidator.eu

BR-IC-02

fatalEN 16931EN 16931 business ruleCIIUBLBG-25BT-151BT-31BT-48BT-63

An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) 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).

Why it fails

An invoice line uses VAT category Intra-community supply (K), which needs BOTH parties identified, and at least one side is missing.

How to fix it

Add BOTH sides — this rule keeps failing if you add only the seller, which is the usual mistake. You need the Seller VAT identifier (BT-31), or the Seller tax representative VAT identifier (BT-63); AND the Buyer VAT identifier (BT-48). An intra-community supply is zero-rated precisely because the buyer accounts for the VAT in their own country, so an invoice without the buyer's VAT number does not evidence one — and if that number is wrong or lapsed the zero rating fails and the VAT becomes yours. Check it against VIES before sending. If this is not a cross-border EU supply, change the line's category code.

What the validator checks

CII — context $VATIC_Line

(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']

UBL — context /ubl:Invoice | /cn:CreditNote

(exists(//cac:ClassifiedTaxCategory[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(//cac:ClassifiedTaxCategory[normalize-space(cbc:ID) = 'K'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'])

Related rules

Part of BR-IC — Intra-community supply.

Check your own invoice against BR-IC-02

…or paste the XML instead

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.