# BR-AG-01 La catégorie IPSI exige une ventilation de TVA correspondante

Une facture qui contient 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 "IPSI" doit comporter dans la ventilation de TVA (BG-23) au moins un code de catégorie de TVA (BT-118) égal à "IPSI".

## Description du problème

Une facture qui contient 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 "IPSI" doit comporter dans la ventilation de TVA (BG-23) au moins un code de catégorie de TVA (BT-118) égal à "IPSI".

> **ERREUR**: XRechnung 3.0

## Contexte et importance

La catégorie de TVA IPSI (code "M", l’impôt indirect de Ceuta et Melilla) provient des listes de codes EN16931 mises à jour prises en charge par le rulepack XRechnung 3.0.2 actuel ; cette règle maintient chaque ligne IPSI rapprochable d’une ventilation de TVA correspondante.

## Solution

Ajoutez un cac:TaxTotal/cac:TaxSubtotal (BG-23) dont le cac:TaxCategory/cbc:ID est "M" (IPSI) afin que la ventilation reflète les lignes, remises ou frais IPSI.

- validate
- convert

## Exemples valides

- Ligne de facture de catégorie "M" (IPSI) à 10.00 % et un groupe BG-23 avec BT-118 = "M"

## Exemples invalides

- Une ligne utilise la catégorie "M" (IPSI) mais le seul groupe BG-23 porte BT-118 = "S"

## Exemples de code

### XML valide
```
<cac:InvoiceLine>
  <cac:Item>
    <cac:ClassifiedTaxCategory>
      <cbc:ID>M</cbc:ID>
      <cbc:Percent>10.00</cbc:Percent>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:ClassifiedTaxCategory>
  </cac:Item>
</cac:InvoiceLine>
<cac:TaxTotal>
  <cac:TaxSubtotal>
    <cac:TaxCategory>
      <cbc:ID>M</cbc:ID>
      <cbc:Percent>10.00</cbc:Percent>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>
```

### XML invalide
```
<cac:InvoiceLine>
  <cac:Item>
    <cac:ClassifiedTaxCategory>
      <cbc:ID>M</cbc:ID>
      <cbc:Percent>10.00</cbc:Percent>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:ClassifiedTaxCategory>
  </cac:Item>
</cac:InvoiceLine>
<cac:TaxTotal>
  <cac:TaxSubtotal>
    <cac:TaxCategory>
      <cbc:ID>S</cbc:ID>
      <cbc:Percent>19.00</cbc:Percent>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>
```

## Champs concernés

- [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)
- [BG-23 Ventilation de TVA](/resources/xrechnung)

## Règles associées

- [BR-AG-02](/resources/kosit-validator-errors/br-ag-02-ipsi-line-seller-vat-identifier-required)
- [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.
