# PEPPOL-EN16931-R008 Le document ne doit pas contenir d’éléments vides

PEPPOL-EN16931-R008 signale chaque élément XML qui ne contient ni texte ni élément enfant, par exemple <cbc:Note/> ou <cbc:Telephone> </cbc:Telephone>. Les attributs ne comptent pas comme contenu : <cbc:EndpointID schemeID="EM"/> est donc vide lui aussi. La configuration KoSIT pour XRechnung 3.0.2 applique la règle en erreur fatale, en UBL comme en CII. Seuls un cbc:ID vide dans cac:OrderReference (UBL) et ram:ApplicableHeaderTradeDelivery, exigé par le schéma CII, sont exclus.

## Description du problème

> **ERREUR**: Règle Peppol BIS Billing 3.0 (OpenPeppol)

> **Où PEPPOL-EN16931-R008 est contrôlée**
>
> Un validateur contrôle une facture électronique par étapes. D’abord, le fichier doit être un XML bien formé conforme au schéma UBL ou CII (XSD). Viennent ensuite les règles métier de l’EN 16931 : règles de base BR, calculs BR-CO, listes de codes BR-CL, décimales BR-DEC et règles par catégorie de TVA comme BR-S. Puis les règles nationales ou de réseau sélectionnées par BT-24 : BR-DE pour XRechnung, PEPPOL-EN16931 pour Peppol BIS Billing. Le rapport liste chaque règle en échec : une erreur signifie rejet, des avertissements seuls signifient toujours acceptation. PEPPOL-EN16931-R008 : règle Peppol BIS Billing, étape « Règles nationales (CIUS) ».

## Contexte et importance

Les éléments vides viennent le plus souvent de modèles d’export qui écrivent chaque champ, même quand la source n’a pas de valeur : une note vide, un champ de contact, une ligne d’adresse ou un bloc de partie. Un substitut masque l’erreur de structure, mais inscrit une donnée fausse dans la facture.

## Solution

Supprimez l’élément vide. Si le groupe parent ne contient plus aucune donnée, supprimez-le aussi. Si le champ est obligatoire, saisissez la valeur réelle du document source. Ne remplissez pas l’élément avec un substitut comme « - » ou « n/a ». L’emplacement indiqué dans le rapport du validateur (un XPath) désigne l’élément.

- [Valider le XML](/fr/xrechnung-validator?source=resource&rule=PEPPOL-EN16931-R008)
- [Convertir la facture](/fr/pdf-to-xrechnung?source=resource&rule=PEPPOL-EN16931-R008)

## Exemples valides

- <cbc:Telephone>+49 30 1234567</cbc:Telephone>
- Aucun élément cbc:Note si la facture n’a pas de note

## Exemples invalides

- <cbc:Note/>
- <cbc:Telephone></cbc:Telephone>
- <cbc:EndpointID schemeID="EM"/>

## Exemples de code

### XML valide
```
<cac:Contact>
  <cbc:Name>Accounts receivable</cbc:Name>
  <cbc:Telephone>+49 30 1234567</cbc:Telephone>
  <cbc:ElectronicMail>billing@example.com</cbc:ElectronicMail>
</cac:Contact>
```

### XML invalide
```
<cac:Contact>
  <cbc:Name>Accounts receivable</cbc:Name>
  <cbc:Telephone/>
  <cbc:ElectronicMail>billing@example.com</cbc:ElectronicMail>
</cac:Contact>
```

## Champs concernés

- [BT-22 Note de facture](/resources/xrechnung/bt-22-invoice-note)
- [BT-34 Adresse électronique du vendeur](/resources/xrechnung/bt-34-seller-electronic-address)
- [BT-42 Numéro de téléphone du contact vendeur](/resources/xrechnung/bt-42-seller-contact-telephone-number)

## 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-peppol/)
- [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.
