Texte officiel de la règle
[PEPPOL-EN16931-R008] Document MUST not contain empty elements.
Le texte normatif est en anglais ; il est cité tel quel.
Pourquoi cette erreur apparaît
Peppol interdit les éléments sans élément enfant ni contenu textuel, car un élément vide est ambigu (valeur manquante ou volontairement vide ?) et perturbe les traitements en aval. La règle signale chaque élément correspondant à //*[not(*) and not(normalize-space())], avec en CII une exception pour ram:ApplicableHeaderTradeDelivery, qui peut être vide. Les éléments vides proviennent presque toujours de modèles qui émettent toutes les balises facultatives et ne les remplissent que si des données existent, par ex. <cbc:Note/>, <cbc:Telephone></cbc:Telephone> ou un <cac:Delivery/> vide.
Comment corriger
Ne générez les éléments facultatifs que lorsque vous disposez d'une valeur : soumettez chaque balise facultative à une condition dans votre modèle ou votre sérialiseur. Supprimez les valeurs composées uniquement d'espaces, qui comptent comme vides. Vérifiez aussi les conteneurs : un <cac:Contact/> sans enfant ou un <cac:PartyIdentification><cbc:ID/></cac:PartyIdentification> échouent tous deux. Repassez le résultat au validateur, car la suppression d'un enfant vide peut laisser un parent vide.
Exemple (valide)
<cac:Contact>
<cbc:Name>Accounts receivable</cbc:Name>
<cbc:ElectronicMail>invoice@muster-gmbh.de</cbc:ElectronicMail>
</cac:Contact>
Ce que le validateur vérifie
Élément vérifié (contexte):
UBL
//*[not(*) and not(normalize-space())]Test (XPath):
false()CII
//*[not(name() = 'ram:ApplicableHeaderTradeDelivery') and not(*) and not(normalize-space())]Test (XPath):
false()
Corriger automatiquement
Cette erreur peut être corrigée automatiquement : déposez le fichier dans le vérificateur et cliquez sur « Corriger automatiquement ».
La même vérification par API:
curl -F file=@invoice.xml https://einvoicechecker.com/v1/validateRègles liées
PEPPOL-EN16931-R001Identifiant du processus métier (BT-23) absentPEPPOL-EN16931-R002Une seule note autorisée au niveau document, sauf si l'acheteur et le vendeur…PEPPOL-EN16931-R003Ni référence acheteur ni référence de bon de commandePEPPOL-EN16931-R004Identifiant de spécification autre que Peppol BIS Billing 3.0PEPPOL-EN16931-R005Devise de comptabilisation de la TVA identique à la devise de facturePEPPOL-EN16931-R006Un seul objet facturé autorisé au niveau documentPEPPOL-EN16931-R007Identifiant du processus métier au format incorrectPEPPOL-EN16931-R010Adresse électronique de l'acheteur (BT-49) absente
Questions fréquentes
Que signifie PEPPOL-EN16931-R008 ?
PEPPOL-EN16931-R008 est une règle peppol bis billing 3.0 : Document MUST not contain empty elements.
Ma facture sera-t-elle rejetée à cause de PEPPOL-EN16931-R008 ?
Oui. PEPPOL-EN16931-R008 est classée « bloquante » ; les validateurs (plateformes agréées, points d'accès Peppol, KoSIT, KSeF) rejettent la facture tant qu'elle n'est pas corrigée.
À quels formats s'applique PEPPOL-EN16931-R008 ?
Factures et avoirs transmis via le réseau Peppol (UBL) et, XRechnung reprenant ces règles, toute XRechnung. Syntaxe : UBL et CII.
Source: Peppol BIS Billing 3.0.20 (November 2025). Catalogue généré à partir des jeux de règles officiels le 2026-10-15.