Seller and buyer identifiers for reverse charge

Error BR-AE-03 EN 16931

An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Reverse charge" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) and/or the Buyer legal registration identifier (BT-47).

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

For this allowance, at least one required identifier is missing: on the seller side, there must be either a tax registration ID with schemeID VA or FC, or a VAT identifier for the tax representative. On the buyer side, there must be either a VAT identifier or a legal registration ID.

What the rule means

For an allowance with VAT category AE, identifiers for both the seller and the buyer are required to document the reverse-charge treatment.

Affected fields BG-20 BT-95 BT-31 BT-32 BT-63 BT-48 BT-47
Please add the seller and buyer identifiers for the reverse-charge allowance.

An allowance with category AE is present, but the required seller and buyer identifiers are incomplete. One of the identifiers allowed by the rule is required for each side.

What to do
  1. On the seller side, add either a tax registration ID with VA or FC, or the tax representative’s VAT identifier.
  2. On the buyer side, add either the VAT identifier using AddBuyerTaxRegistration(...) or the legal registration ID using LegalOrganization.ID.
  3. Check the seller identifiers using LegalOrganization.ID, TaxRegistration.SchemeID, or AddSellerTaxRegistration(...), as appropriate for the identifier used.
  4. Generate the invoice again and validate it again.
What it looks like
✗ Triggers the message
<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator>
    <udt:Indicator>false</udt:Indicator>
  </ram:ChargeIndicator>
  <ram:CategoryTradeTax>
    <ram:CategoryCode>AE</ram:CategoryCode>
  </ram:CategoryTradeTax>
</ram:SpecifiedTradeAllowanceCharge>
✓ Correct
<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator>
    <udt:Indicator>false</udt:Indicator>
  </ram:ChargeIndicator>
  <ram:CategoryTradeTax>
    <ram:CategoryCode>AE</ram:CategoryCode>
  </ram:CategoryTradeTax>
  <ram:SellerTradeParty>
    <ram:SpecifiedTaxRegistration>
      <ram:ID schemeID="VA">SELLER-VAT</ram:ID>
    </ram:SpecifiedTaxRegistration>
  </ram:SellerTradeParty>
  <ram:BuyerTradeParty>
    <ram:SpecifiedTaxRegistration>
      <ram:ID schemeID="VA">BUYER-VAT</ram:ID>
    </ram:SpecifiedTaxRegistration>
  </ram:BuyerTradeParty>
</ram:SpecifiedTradeAllowanceCharge>
Check in FactoorSharp
  • LegalOrganization.ID (SellerTradeParty: BT-31; SellerTradeParty: BT-32; BuyerTradeParty: BT-47; SellerTaxRepresentativeTradeParty: BT-63)
  • TaxRegistration.SchemeID (For Seller VAT identifier: BT-31; For Seller tax registration identifier: BT-32)
  • FacturXInvoice.AddBuyerTaxRegistration(no, schemeID) (BT-48)
  • FacturXInvoice.AddSellerTaxRegistration(no, schemeID) (BT-31)
  • FacturXInvoice.BuyerTaxRegistration (BT-48)
Technical details

The test requires both conditions: at least one of the checked seller identifiers and at least one of the checked buyer identifiers. On the seller side it checks schemeID VA or FC, or the tax representative’s VA identifier; on the buyer side it checks a VA identifier or ram:SpecifiedLegalOrganization/ram:ID.

Where the rule applies

The rule applies to a document-level allowance identified as an allowance by ram:ChargeIndicator and as reverse charge by ram:CategoryCode with AE.

Context (rule/@context)
//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ ram:CategoryTradeTax[ram:CategoryCode = 'AE']
Test expression (assert/@test)
( //ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ ram:ID[@schemeID = 'VA'] ) and ( //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA'] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID )
Changes in the KoSIT validation rules
  • 2024-06-202024-06-20 · AddedCEN unexpected tests on BR-AE-02, BR-AE-03, and BR-AE-04 with BT-32 and no BT-31 in CII
  • 2024-06-202024-06-20 · Changedtests on BR-AE-02, BR-AE-03, and BR-AE-04 moved from `src/test/unexpected` to `src/test/cen-unit-tests`