What it means
When a row of the VAT breakdown (BG-23) has the exemption reason code (BT-121) VATEX-EU-O, which stands for not subject to VAT, its VAT category code (BT-118) must be O, the capital letter O and not the digit zero. Any other category, such as E or Z, fails. The same check applies to any other cac:TaxCategory with this exemption reason code.
Why it matters
Category O marks a sale that falls outside the scope of VAT, which is different from a sale that is exempt (E) or taxed at a rate of 0 (Z).
How to fix it
In your invoicing software, set the VAT category code that accompanies VATEX-EU-O to O. If the sale is in fact exempt from VAT rather than outside its scope, use category E with an exemption reason that fits instead of VATEX-EU-O. If you build the XML yourself, set cbc:ID to O in the same cac:TaxCategory that holds the cbc:TaxExemptionReasonCode.
Once the file is corrected, check it again for free: Validate a Peppol BIS invoice
Or fix the invoice in a form and download the corrected file, for 1 credit: Fix a rejected e-invoice
The rule as published
Read the rule on the publisher's site
Where this rule applies
| Rule set | Version |
|---|---|
| Peppol BIS Billing 3.0 (invoice) | 2026.5 |
| Peppol BIS Billing 3.0 (credit note) | 2026.5 |
Check your file
Drop your e-invoice to see whether PEPPOL-EN16931-P0105 still fails, and which other rules do.
Related rules
- PEPPOL-EN16931-P0106 Reason VATEX-EU-IC needs VAT category K
- PEPPOL-EN16931-P0107 Reason VATEX-EU-AE needs VAT category AE
- PEPPOL-EN16931-P0108 Reason VATEX-EU-D needs VAT category E
- PEPPOL-EN16931-P0109 Reason VATEX-EU-F needs VAT category E
- PEPPOL-EN16931-P0110 Reason VATEX-EU-I needs VAT category E
- PEPPOL-EN16931-P0111 Reason VATEX-EU-J needs VAT category E