# BR-O-01 Une facture de catégorie O exige exactement une ventilation « non soumis à la TVA »

Une facture comportant une ligne de facture (BG-25), une remise au niveau du document (BG-20) ou un frais au niveau du document (BG-21) dont le code de catégorie de TVA (BT-151, BT-95 ou BT-102) est « non soumis à la TVA » (O) doit contenir exactement une ventilation de TVA (BG-23) dont le code de catégorie de TVA (BT-118) est « non soumis à la TVA » (O).

## Description du problème

Une facture comportant une ligne de facture (BG-25), une remise au niveau du document (BG-20) ou un frais au niveau du document (BG-21) dont le code de catégorie de TVA (BT-151, BT-95 ou BT-102) est « non soumis à la TVA » (O) doit contenir exactement une ventilation de TVA (BG-23) dont le code de catégorie de TVA (BT-118) est « non soumis à la TVA » (O).

> **ERREUR**: XRechnung 3.0

## Contexte et importance

La catégorie O (non soumis à la TVA) concerne les opérations hors du champ d’application de la TVA ; cette règle garantit l’existence du récapitulatif O unique obligatoire afin que le total de taxe soit cohérent.

## Solution

Ajoutez une seule cac:TaxTotal/cac:TaxSubtotal (BG-23) avec cac:TaxCategory/cbc:ID = O résumant tous les montants non soumis à la TVA ; ne répartissez pas la catégorie O sur plusieurs ventilations.

- validate
- convert

## Exemples valides

- Une ligne O (BT-151 = O) résumée par une ventilation BG-23 avec BT-118 = O

## Exemples invalides

- Une ligne O (BT-151 = O) mais aucune ventilation BG-23 portant BT-118 = O

## Exemples de code

### XML valide
```
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">0.00</cbc:TaxAmount>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="EUR">0.00</cbc:TaxAmount>
    <cac:TaxCategory>
      <cbc:ID>O</cbc:ID>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>
```

### XML invalide
```
<cac:InvoiceLine>
  <cac:Item>
    <cac:ClassifiedTaxCategory>
      <cbc:ID>O</cbc:ID>
    </cac:ClassifiedTaxCategory>
  </cac:Item>
</cac:InvoiceLine>
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">0.00</cbc:TaxAmount>
</cac:TaxTotal>
```

## Champs concernés

- [BG-23 Ventilation de TVA](/resources/xrechnung)
- [BT-118 Code de catégorie de TVA](/resources/xrechnung/bt-118-vat-category-code)
- [BT-151 Code de catégorie de TVA de l’article facturé](/resources/xrechnung/bt-151-invoice-line-vat-category-code)

## Règles associées

- [BR-O-08](/resources/kosit-validator-errors/br-o-08-not-subject-taxable-amount-sum)
- [BR-O-11](/resources/kosit-validator-errors/br-o-11-forbids-other-vat-breakdowns)
- [BR-CO-18](/resources/kosit-validator-errors/br-co-18-vat-breakdown-required)

## Outils de validation

- [Validateur KoSIT officiel](https://erechnungsvalidator.service-bw.de/): Validez vos fichiers XRechnung par rapport à toutes les règles BR-DE.
- [Convertir un PDF en XRechnung](/pdf-to-xrechnung): Repérez les erreurs de validation pendant la conversion et vérifiez chaque correction.

## Ressources associées

- [Spécification officielle](https://xeinkauf.de/xrechnung/)
- [Suite de tests](https://github.com/itplr-kosit/xrechnung-testsuite)
- [Toutes les erreurs de validation](/resources/kosit-validator-errors): Aperçu de toutes les règles de validation XRechnung en Allemagne.
