Seller identifier for standard-rated invoice lines

Error BR-S-02 EN 16931

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

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

An invoice line with VAT category S is present, but the seller or tax representative section lacks one of the tax identifiers allowed by the rule. An ID with schemeID VA or FC is allowed for the seller, or an ID with schemeID VA for the tax representative.

What the rule means

According to the rule text, VAT category S denotes standard-rated treatment. The invoice must contain one of the specified tax identifiers for the seller or the seller’s tax representative.

Affected fields BG-25 BT-151 BT-31 BT-32 BT-63
Please add a tax identifier for the seller or the seller’s tax representative

The invoice contains an invoice line with VAT category S, but none of the tax identifiers allowed for it. You can resolve this by providing an eligible identifier for the seller or the seller’s tax representative.

What to do
  1. Check the seller identifier in LegalOrganization.ID and its identifier type in TaxRegistration.SchemeID.
  2. Add the seller’s tax registration with AddSellerTaxRegistration(...) if needed.
  3. Alternatively, check the representative’s tax identifier using GetSellerTaxRepresentativeTaxRegistration().
  4. Generate the invoice again and validate it.
What it looks like
✗ Triggers the message
<rsm:CrossIndustryInvoice>
  <rsm:SupplyChainTradeTransaction>
    <ram:IncludedSupplyChainTradeLineItem>
      <ram:SpecifiedLineTradeSettlement>
        <ram:ApplicableTradeTax>
          <ram:CategoryCode>S</ram:CategoryCode>
        </ram:ApplicableTradeTax>
      </ram:SpecifiedLineTradeSettlement>
    </ram:IncludedSupplyChainTradeLineItem>
    <ram:ApplicableHeaderTradeAgreement>
      <ram:SellerTradeParty/>
    </ram:ApplicableHeaderTradeAgreement>
  </rsm:SupplyChainTradeTransaction>
</rsm:CrossIndustryInvoice>
✓ Correct
<rsm:CrossIndustryInvoice>
  <rsm:SupplyChainTradeTransaction>
    <ram:IncludedSupplyChainTradeLineItem>
      <ram:SpecifiedLineTradeSettlement>
        <ram:ApplicableTradeTax>
          <ram:CategoryCode>S</ram:CategoryCode>
        </ram:ApplicableTradeTax>
      </ram:SpecifiedLineTradeSettlement>
    </ram:IncludedSupplyChainTradeLineItem>
    <ram:ApplicableHeaderTradeAgreement>
      <ram:SellerTradeParty>
        <ram:SpecifiedTaxRegistration>
          <ram:ID schemeID="VA">DE123456789</ram:ID>
        </ram:SpecifiedTaxRegistration>
      </ram:SellerTradeParty>
    </ram:ApplicableHeaderTradeAgreement>
  </rsm:SupplyChainTradeTransaction>
</rsm:CrossIndustryInvoice>
Check in FactoorSharp
  • LegalOrganization.ID (SellerTradeParty: BT-31; SellerTradeParty: BT-32; SellerTaxRepresentativeTradeParty: BT-63)
  • TaxRegistration.SchemeID (For Seller VAT identifier: BT-31; For Seller tax registration identifier: BT-32)
  • FacturXInvoice.AddSellerTaxRegistration(no, schemeID) (BT-31)
  • FacturXInvoice.GetSellerTaxRegistration() (BT-31)
  • FacturXInvoice.GetSellerTaxRepresentativeTaxRegistration() (BT-63)
Technical details

At document level, the test checks whether at least one matching ram:ID exists under the seller’s or tax representative’s SpecifiedTaxRegistration elements. The rule context limits the check to invoice lines with ram:CategoryCode S.

Where the rule applies

The rule applies to invoices with an invoice line whose ApplicableTradeTax contains VAT category S. It checks the tax registrations of the seller or the seller’s tax representative.

Context (rule/@context)
//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ ram:ApplicableTradeTax[ram:CategoryCode = 'S']
Test expression (assert/@test)
/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = ('VA', 'FC')] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = 'VA']