Seller and buyer VAT identifiers for an intra-community supply

Error BR-IC-04 EN 16931

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).

Mandatory rule: As long as it is violated, the invoice is invalid and will be rejected by validators.
What is wrong

For a document-level charge in category K, either the VAT identifier of both the seller and the tax representative is missing, or the buyer's VAT identifier is missing. At least one seller or representative identifier and, in addition, a buyer identifier are required, each with schemeID VA.

What the rule means

Category K denotes an intra-community supply. The rule requires a VAT identifier for the seller or the seller's tax representative, and also a VAT identifier for the buyer.

Affected fields BG-21 BT-102 BT-31 BT-63 BT-48
Please add the seller and buyer VAT identifiers for the intra-community supply

A required VAT identifier is missing for the seller or the seller's tax representative, or for the buyer, for the document-level charge in category K. Add identifiers for both sides to satisfy the check.

What to do
  1. Add a VAT identifier with schemeID VA for the seller or the tax representative.
  2. Also add a VAT identifier with schemeID VA for the buyer.
  3. Review the buyer details through AddBuyerTaxRegistration(...), BuyerTaxRegistration or GetBuyerTaxRegistration(), and the seller details through AddSellerTaxRegistration(...).
  4. Generate the invoice again and validate it once more.
What it looks like
✗ Triggers the message
<ram:SellerTradeParty>
  <ram:SpecifiedTaxRegistration>
    <ram:ID schemeID="VA">DE123456789</ram:ID>
  </ram:SpecifiedTaxRegistration>
</ram:SellerTradeParty>
✓ Correct
<ram:SellerTradeParty>
  <ram:SpecifiedTaxRegistration>
    <ram:ID schemeID="VA">DE123456789</ram:ID>
  </ram:SpecifiedTaxRegistration>
</ram:SellerTradeParty>
<ram:BuyerTradeParty>
  <ram:SpecifiedTaxRegistration>
    <ram:ID schemeID="VA">FR12345678901</ram:ID>
  </ram:SpecifiedTaxRegistration>
</ram:BuyerTradeParty>
Check in FactoorSharp
  • LegalOrganization.ID (SellerTradeParty: BT-31; SellerTaxRepresentativeTradeParty: BT-63)
  • FacturXInvoice.AddBuyerTaxRegistration(no, schemeID) (BT-48)
  • FacturXInvoice.AddSellerTaxRegistration(no, schemeID) (BT-31)
  • FacturXInvoice.BuyerTaxRegistration (BT-48)
  • FacturXInvoice.GetBuyerTaxRegistration() (BT-48)
Good to know

schemeID VA is required for each of the identifiers.

Technical details

The test requires a logical AND between a seller ID with schemeID VA under SellerTradeParty or SellerTaxRepresentativeTradeParty, and a buyer ID with schemeID VA under BuyerTradeParty.

Where the rule applies

The rule applies to a document-level charge in SpecifiedTradeAllowanceCharge whose ChargeIndicator is true and whose tax category is K. It checks the VAT identifier of the seller or tax representative and the buyer's VAT identifier.

Context (rule/@context)
//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ ram:CategoryTradeTax[ram:CategoryCode = 'K']
Test expression (assert/@test)
( //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']