Sur cette page
La réponse courte
PEPPOL-EN16931-R110 échoue lorsque le cac:InvoicePeriod/cbc:StartDate d'une ligne est antérieur au cbc:StartDate du cac:InvoicePeriod au niveau du document. Soit la date de la ligne est fausse et doit être corrigée, soit la ligne couvre réellement des jours antérieurs et la période de facturation doit commencer à ces jours ou avant.
Le constat pointe sur la date de début de la ligne elle-même : sur un document comportant de nombreuses lignes, il vous indique donc laquelle sort de la plage. Les dates de fin de ligne relèvent de PEPPOL-EN16931-R111.
Ce que la règle vérifie
La règle ne s'exécute que si la période au niveau du document a un cbc:StartDate. Lors d'un essai, la même date de ligne précoce a passé lorsque la période du document n'avait qu'une date de fin, et de nouveau lorsqu'il n'y avait aucune période de document.
Chaque date de début de période de ligne est ensuite comparée à la date de début du document en tant que date calendaire. Le même jour passe : dans la facture corrigée, les deux périodes commencent le 2026-08-01.
Seules les dates de début interviennent. Une ligne dont la date de fin est postérieure à la date de fin du document signale PEPPOL-EN16931-R111 à la place ; lors d'un essai, une ligne se terminant le 2026-09-05 dans une période se terminant le 2026-08-31 a fait exactement cela.
La règle ne vérifie pas si une ligne commence après la fin de la période de facturation. Lors d'un essai, une période de ligne avec seulement une date de début au 2026-09-05, au-delà de la date de fin du document au 2026-08-31, a passé toutes les étapes.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-134 | Date de début de la période de facturation de la ligne | cac:InvoiceLine/cac:InvoicePeriod/cbc:StartDate (cac:CreditNoteLine/cac:InvoicePeriod/cbc:StartDate in a credit note) |
| BT-73 | Date de début de la période de facturation | cac:InvoicePeriod/cbc:StartDate |
Comment une intégration en arrive là
Causes possibles, déduites de la forme de la règle et non d'une utilisation mesurée :
- La période de facturation est fixée au mois de facturation en cours alors qu'une ligne porte des montants pour des jours antérieurs, comme une consommation facturée à terme échu ou une première période au prorata.
- La période du document est copiée depuis la première ligne, et une ligne suivante commence plus tôt.
- Les dates de ligne et les dates du document passent par des conversions de fuseau horaire différentes, si bien qu'une ligne commençant à minuit heure locale est écrite à la veille.
- Une ligne de correction garde les dates de prestation de la facture d'origine alors que la période du document est la période en cours.
Comment corriger le document
- Pour la ligne nommée dans le constat, vérifiez ses dates de prestation dans la source : la date de début est-elle juste ?
- Si elle est fausse, corrigez-la à la source et écrivez la date corrigée dans le
cac:InvoicePeriod/cbc:StartDatede cette ligne. - Si elle est juste, la période de facturation ne couvre pas toute la facture. Donnez au
cac:InvoicePeriod/cbc:StartDatedu document la date de début de ligne la plus ancienne, et comparez la date de fin du document à la date de fin de ligne la plus tardive, comme l'exigePEPPOL-EN16931-R111. - Écrivez chaque date sous la forme simple
YYYY-MM-DD, tirée de la date calendaire dans le fuseau horaire de l'activité, sans conversion en UTC.
Valider votre facture corrigée
Avant et après
Ce sont des extraits, pas des documents complets. Les documents synthétiques complets dont ils proviennent sont liés ci-dessous.
Fragment de la facture en échec : la période de facturation commence le 1er août, la période de ligne le 25 juillet
<cac:InvoicePeriod>
<cbc:StartDate>2026-08-01</cbc:StartDate>
<cbc:EndDate>2026-08-31</cbc:EndDate>
</cac:InvoicePeriod>
<!-- parties, VAT and totals omitted from this fragment -->
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
<cac:InvoicePeriod>
<cbc:StartDate>2026-07-25</cbc:StartDate>
<cbc:EndDate>2026-08-15</cbc:EndDate>
</cac:InvoicePeriod>
<!-- item and price omitted from this fragment -->
</cac:InvoiceLine>Fragment de la facture corrigée : la période de ligne commence le 1er août, premier jour de la période de facturation
<cac:InvoicePeriod>
<cbc:StartDate>2026-08-01</cbc:StartDate>
<cbc:EndDate>2026-08-31</cbc:EndDate>
</cac:InvoicePeriod>
<!-- parties, VAT and totals omitted from this fragment -->
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
<cac:InvoicePeriod>
<cbc:StartDate>2026-08-01</cbc:StartDate>
<cbc:EndDate>2026-08-15</cbc:EndDate>
</cac:InvoicePeriod>
<!-- item and price omitted from this fragment -->
</cac:InvoiceLine>Seule la date de début de la ligne diffère : 2026-07-25 dans la facture en échec, 2026-08-01 dans la facture corrigée. Le document en échec ne signale que PEPPOL-EN16931-R110. Son étape EN 16931 passe, car la règle de période de ligne de cette étape, BR-30, ne compare la date de début d'une ligne qu'à la date de fin de la même ligne, et 2026-08-15 est postérieur à 2026-07-25.
Ce que le validateur a signalé
- La facture en erreur signale PEPPOL-EN16931-R110. Le document corrigé passe toutes les étapes de validation sans constat.Télécharger le XML en erreurTélécharger le XML corrigé
Enregistré avec phive 12.1.0 / phive-rules-peppol 4.5.6 / Saxon-HE 12.10, le moteur du validateur gratuit, sur des données synthétiques. Un résultat enregistré est une preuve de non-régression pour ces documents ; ce n'est pas une certification.
Où la règle s'applique
- S'applique à
Invoiceet àCreditNote. Dans un avoir, la ligne estcac:CreditNoteLine, dont l'élément de période s'appelle toujourscac:InvoicePeriod; lors d'un essai, la même date précoce y a signalé cette règle. - C'est une règle Peppol BIS, qui n'apparaît qu'à l'étape Peppol ; l'étape EN 16931 a passé la facture en échec enregistrée.
- Une valeur qui n'est pas du tout une date, comme
25/07/2026, échoue à l'étape XSD avant que cette règle puisse s'exécuter ; une date avec un suffixe de fuseau horaire passe la XSD et est rejetée parPEPPOL-EN16931-F001. - Une date de fin de ligne antérieure à sa propre date de début relève de
BR-30; une date de fin de ligne postérieure à la date de fin du document relève dePEPPOL-EN16931-R111.
Règles liées
- BR-29 vérifie que la période de facturation à laquelle cette règle se mesure ne finit pas avant de commencer
- BR-CO-19 exige une date dans la période de facturation, et seule une date de début à cet endroit fait intervenir cette règle
- PEPPOL-EN16931-F001 rejette les dates de période de ligne et de document qui portent un fuseau horaire
- Parcourir toutes les règles de la référence
- Contexte (en anglais) : How Peppol invoice validation actually works
Portée et source
Rédigé pour Peppol BIS Billing 3.0.21 (May 2026), EN 16931 1.3.16, tel qu'appliqué aux documents Invoice et CreditNote en UBL 2.1. D'autres profils, syntaxes et versions peuvent définir cet identifiant autrement. Version du catalogue d'aide 2026-09-24.1 : source vérifiée le 2026-09-24, explication mise à jour le 2026-09-24.
La définition officielle de PEPPOL-EN16931-R110 (en anglais) contient le texte normatif et le test. Cette page en est notre explication, pas une copie.
Cette aide ne modifie pas le verdict du moteur. Corriger ce constat ne signifie pas que le document passe toutes les étapes de validation, et la validation ne certifie pas la conformité juridique ou fiscale et ne transmet aucun document via Peppol.

