# BR-O-12 Not-subject-to-VAT invoice must have no non-O line

An invoice that contains a VAT breakdown (BG-23) with VAT category code (BT-118) "Not subject to VAT" (O) shall not contain an invoice line (BG-25) whose Invoiced item VAT category code (BT-151) is not "Not subject to VAT".

## Problem Description

> **ERROR**: EN 16931 VAT category rule

## Context and Significance

Because an invoice with a category O breakdown is entirely outside the scope of VAT, every line must also use category O; mixing with taxable lines is not allowed. In practice, the error occurs when an out-of-scope invoice gets one extra line, such as a handling fee, that the software codes S by default.

## Solution

Give every invoice line category O (BT-151 = O), or move the non-O lines to a separate invoice.

- [Validate XML](/en/xrechnung-validator?source=resource&rule=BR-O-12)
- [Convert invoice](/en/pdf-to-xrechnung?source=resource&rule=BR-O-12)

## Valid Examples

- O breakdown present and every line has BT-151 = O

## Invalid Examples

- O breakdown present but one line has BT-151 = S

## Code Examples

### Valid XML
```
<cac:InvoiceLine>
  <cac:Item>
    <cac:ClassifiedTaxCategory><cbc:ID>O</cbc:ID><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:ClassifiedTaxCategory>
  </cac:Item>
</cac:InvoiceLine>
```

### Invalid XML
```
<cac:InvoiceLine>
  <cac:Item>
    <cac:ClassifiedTaxCategory>
      <cbc:ID>S</cbc:ID>
      <cbc:Percent>19</cbc:Percent>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:ClassifiedTaxCategory>
  </cac:Item>
</cac:InvoiceLine>
```

## Affected Fields

- [BT-118 VAT category code](/resources/xrechnung/bt-118-vat-category-code)
- [BT-151 Invoiced item VAT category code](/resources/xrechnung/bt-151-invoice-line-vat-category-code)

## Related Rules

- [BR-O-01](/resources/kosit-validator-errors/br-o-01-not-subject-vat-breakdown-required)
- [BR-O-11](/resources/kosit-validator-errors/br-o-11-forbids-other-vat-breakdowns)
- [BR-O-13](/resources/kosit-validator-errors/br-o-13-forbids-non-o-allowances)

## Validation Tools

- [Official KoSIT Validator](https://github.com/itplr-kosit/validator): Run the official KoSIT validator with the XRechnung configuration to check EN 16931 and XRechnung rules.
- [Convert PDF to XRechnung](/pdf-to-xrechnung): Find validation errors during conversion and review each correction.

## Related Resources

- [Official Specification](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/)
- [Test Suite](https://github.com/itplr-kosit/xrechnung-testsuite)
- [All validation errors](/resources/kosit-validator-errors): Overview of the EN 16931, XRechnung and Peppol validation rules explained here.
