# BR-CO-22 Les frais au niveau du document exigent un motif ou un code de motif

Chaque groupe de frais au niveau du document (BG-21) doit contenir un motif (BT-104) ou un code de motif (BT-105), ou les deux.

## Description du problème

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

## Contexte et importance

Cette règle de la norme EN 16931 exige que chaque groupe de frais au niveau du document soit motivé, par un texte ou un code, afin que l’acheteur comprenne pourquoi le montant a été ajouté. Cas typique : des frais de port, d’emballage ou de gestion exportés comme simple montant.

## Solution

Pour chaque groupe de frais au niveau du document, renseignez le motif (BT-104) et/ou le code de motif (BT-105) de la liste UNCL 7161 : cbc:AllowanceChargeReason / cbc:AllowanceChargeReasonCode en UBL, ram:Reason / ram:ReasonCode dans ram:SpecifiedTradeAllowanceCharge en CII.

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

## Exemples valides

- Frais au niveau du document avec BT-105 = FC et BT-104 = « Frais de transport »

## Exemples invalides

- Montant de frais 15,00 sans BT-104 ni BT-105

## Exemples de code

### XML valide
```
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>FC</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Freight charge</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="EUR">15.00</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>19</cbc:Percent>
    <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>
```

### XML invalide
```
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <cbc:Amount currencyID="EUR">15.00</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>19</cbc:Percent>
    <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>
```

## Champs concernés

- [BG-21 Frais au niveau du document](/resources/xrechnung/bt-99-document-level-charge-amount)
- [BT-104 Motif des frais au niveau du document](/resources/xrechnung/bt-104-document-level-charge-reason)
- [BT-105 Code du motif des frais au niveau du document](/resources/xrechnung/bt-105-document-level-charge-reason-code)

## Règles associées

- [BR-CO-06](/resources/kosit-validator-errors/br-co-06-charge-reason-code-match)
- [BR-CO-21](/resources/kosit-validator-errors/br-co-21-document-allowance-reason-required)
- [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.
