1. Etusivu
  2. Tietopankki
  3. Peppol
  4. Peppol VAT category codes

Peppol VAT category codes

Peppol VAT category codes

VAT category codes appear on invoice and credit note lines, in the VAT breakdown, and on VAT-relevant document level allowances and charges. They come from UN/CEFACT code list UNCL5305, version D.16B, in the Peppol subset. The code selected determines which EN 16931 rule family is applied, and therefore which other fields the document must carry.

The codes

CodeNimiRule family
SStandard rateBR-S-
ZZero rated goodsBR-Z-
EExempt from taxBR-E-
AEVAT reverse chargeBR-AE-
KVAT exempt for EEA intra-community supply of goods and servicesBR-IC-
GFree export item, VAT not chargedBR-G-
OServices outside scope of taxBR-O-
LCanary Islands general indirect taxBR-AF-
MTax for production, services and importation in Ceuta and MelillaBR-AG-
BTransferred (VAT), in ItalyItalian A-deviation

What the rule family checks

Each family enforces the field combination its category requires. The selected VAT category determines whether the VAT rate must be positive, must be zero or must be omitted. For example, category E requires a rate of zero, while category O must not contain a VAT rate. Several categories require an exemption reason, given as text (BT-120), as a VATEX code (BT-121) or as both. The rules require at least one of the two, and both are permitted.

A VAT-category error may concern the code itself or a related field required by that category. Check the rate, exemption information, taxable amount and tax amount together.

The two Spanish families

The Canary Islands and the Ceuta and Melilla taxes do not follow the naming pattern of the other families. They are BR-AF- and BR-AG-. BR-IG- and BR-IP- do not exist in the EN 16931 artifacts.

In the abstract rules the two are expressed against the tokens IGIC and IPSI rather than the letters L and M. If you are searching the schematron for the rule text, search on the family prefix rather than the category letter.

Category B

B is an A-deviation for Italy, added to the code list in November 2020. It is accepted in Peppol BIS Billing but is not part of the base EN 16931 category set.

Category B was added for the Italian context. Confirm the applicable Italian requirements before using it; schema or business-rule validation alone does not establish the correct tax treatment.

One category per breakdown line

The VAT breakdown carries one entry per combination of category and rate. An invoice mixing standard rate and reverse charge lines therefore has at least two breakdown entries, each with its own taxable amount and tax amount.

Errors from the BR-CO- family can surface here because the breakdown sums must reconcile with the line totals for each category separately as well as for the document as a whole.

Three combinations that fail

Standard rate with an exemption reason. BR-S-10 states that a VAT breakdown with category S shall not have a VAT exemption reason code (BT-121) or text (BT-120). ERPs that always populate an exemption text field produce this on every standard-rated invoice. The fix is to suppress the field for S, not to change the category.

Exempt without an exemption reason. BR-E-10 requires a breakdown with category E to have a VAT exemption reason code (BT-121) or a VAT exemption reason text (BT-120). At least one is required and both are permitted. A rate of zero is not sufficient on its own. BR-E-05 to BR-E-07 also require the rate to be exactly zero, so a blank rate fails as well as a non-zero one.

Reverse charge with a rate or a tax amount. BR-AE-05 to BR-AE-07 require the VAT rate to be zero, and BR-AE-09 requires the VAT category tax amount to be zero. Reverse charge also requires identifiers for both the seller and the buyer.

The category code determines which fields must be present, which must be absent and which must be zero. When a VAT rule fires, identify the category and then inspect the field named by the rule.

A breakdown for exempt supply, with the reason given as text:

<cac:TaxSubtotal> <cbc:TaxableAmount currencyID=”SEK”>10000.00</cbc:TaxableAmount> <cbc:TaxAmount currencyID=”SEK”>0.00</cbc:TaxAmount> <cac:TaxCategory> <cbc:ID>E</cbc:ID> <cbc:Percent>0</cbc:Percent> <cbc:TaxExemptionReason>VAT exempt supply</cbc:TaxExemptionReason> </cac:TaxCategory> </cac:TaxSubtotal>
<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="SEK">10000.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="SEK">0.00</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:ID>E</cbc:ID>
    <cbc:Percent>0</cbc:Percent>
    <cbc:TaxExemptionReason>VAT exempt supply</cbc:TaxExemptionReason>
  </cac:TaxCategory>
</cac:TaxSubtotal>

The exemption reason in this fragment is illustrative. Use the reason required by the applicable tax treatment and jurisdiction. Remove the exemption reason and the document fails BR-E-10. Change the category to S and keep the reason, and it fails BR-S-10.

Normative sources

UNCL5305 subset and EN 16931 rules for UBL, OpenPeppol. Rule family identifiers were also checked against the EN 16931 validation artifacts published by CEN/TC 434.

Oliko tästä artikkelista apua?

Aiheeseen liittyvät artikkelit