# BR-CO-08 Le motif et le code des frais de ligne doivent concorder

Le code du motif des frais de ligne (BT-145) et le motif des frais de ligne (BT-144) doivent désigner le même type de frais.

## Description du problème

> **ERREUR**: Règle de calcul et de cohérence EN 16931 (BR-CO)

## Contexte et importance

Cette règle est l’équivalent de BR-CO-06 au niveau de la ligne. Les artefacts de validation EN 16931 pour UBL et CII utilisés par le validateur KoSIT ne contiennent pour BR-CO-08 qu’un contrôle factice toujours satisfait : BR-CO-08 n’apparaît donc jamais dans un rapport de validation. L’exigence reste valable : des frais de ligne dont le code de motif (BT-145) et le motif (BT-144) se contredisent, par exemple le code ABL (emballage supplémentaire) avec « Remise de fidélité », entraînent une vérification manuelle chez l’acheteur. Cas typique : une remise saisie dans l’ERP comme des frais négatifs.

## Solution

Dans les frais de ligne, faites en sorte que le motif en texte libre (BT-144) et le code de motif (BT-145) décrivent les mêmes frais, par exemple le code ABL (emballage supplémentaire) avec le motif « Emballage spécial ». Si le montant est en réalité une remise, déclarez-le comme remise de ligne (BG-27).

- [Valider le XML](/fr/xrechnung-validator?source=resource&rule=BR-CO-08)
- [Convertir la facture](/fr/pdf-to-xrechnung?source=resource&rule=BR-CO-08)

## Exemples valides

- BT-145 = ABL (emballage supplémentaire) avec BT-144 = « Emballage spécial »

## Exemples invalides

- BT-145 = ABL (emballage supplémentaire) avec BT-144 = « Remise de fidélité »

## Exemples de code

### XML valide
```
<cac:InvoiceLine>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
    <cbc:AllowanceChargeReasonCode>ABL</cbc:AllowanceChargeReasonCode>
    <cbc:AllowanceChargeReason>Special packaging</cbc:AllowanceChargeReason>
    <cbc:Amount currencyID="EUR">3.00</cbc:Amount>
  </cac:AllowanceCharge>
</cac:InvoiceLine>
```

### XML invalide
```
<cac:InvoiceLine>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
    <cbc:AllowanceChargeReasonCode>ABL</cbc:AllowanceChargeReasonCode>
    <cbc:AllowanceChargeReason>Loyalty discount</cbc:AllowanceChargeReason>
    <cbc:Amount currencyID="EUR">3.00</cbc:Amount>
  </cac:AllowanceCharge>
</cac:InvoiceLine>
```

## Champs concernés

- [BT-144 Motif des frais de ligne](/resources/xrechnung/bt-144-invoice-line-charge-reason)
- [BT-145 Code du motif des frais de ligne](/resources/xrechnung/bt-145-invoice-line-charge-reason-code)

## Règles associées

- [BR-CO-06](/resources/kosit-validator-errors/br-co-06-charge-reason-code-match)
- [BR-CO-24](/resources/kosit-validator-errors/br-co-24-line-charge-reason-required)

## Outils de validation

- [Validateur KoSIT officiel](https://github.com/itplr-kosit/validator): Exécutez le validateur officiel du KoSIT avec la configuration XRechnung pour contrôler les règles EN 16931 et XRechnung.
- [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://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/)
- [Suite de tests](https://github.com/itplr-kosit/xrechnung-testsuite)
- [Toutes les erreurs de validation](/resources/kosit-validator-errors): Vue d’ensemble des règles de validation EN 16931, XRechnung et Peppol expliquées ici.
