Aller au contenu

Ironfang Finance - Référence des règles

BR-CO-19 : Donner à la période de facturation une date de début, une date de fin ou les deux

Une période de facturation dans cac:InvoicePeriod a besoin de cbc:StartDate, de cbc:EndDate ou des deux. Une description de la période en toutes lettres ne compte pas.

EN 16931Erreur : le document n'est pas valideChamps de base

Sur cette page

La réponse courte

BR-CO-19 échoue lorsque le cac:InvoicePeriod au niveau du document n'a ni cbc:StartDate ni cbc:EndDate. Ajoutez les dates de la période couverte par la facture, ou retirez cac:InvoicePeriod si la facture ne se rapporte à aucune période.

Un texte comme August 2026 dans cbc:Description ne satisfait pas la règle, et cet élément sort de toute façon du modèle EN 16931. La seule exception est une période dont l'unique contenu est un code de date d'exigibilité de la TVA dans cbc:DescriptionCode, une information distincte de la période elle-même.

Ce que la règle vérifie

La règle lit le cac:InvoicePeriod situé sous la racine du document. Elle passe si la période contient une date de début, une date de fin ou les deux ; lors d'un essai, une période avec seulement cbc:StartDate, et une autre avec seulement cbc:EndDate, ont chacune été acceptées.

Elle passe aussi lorsque la période contient un cbc:DescriptionCode et aucune date. Ce code est le code de date d'exigibilité de la TVA (BT-8), que la syntaxe UBL place dans la période de facturation ; lors d'un essai, une période ne contenant que le code 3 a passé toutes les étapes.

Rien d'autre dans la période ne compte. Un cbc:Description seul échoue, et un <cac:InvoicePeriod/> vide échoue aussi, avec PEPPOL-EN16931-R008 pour l'élément vide.

Un cbc:StartDate ou un cbc:EndDate vide n'atteint jamais cette règle : un élément de date sans valeur n'est pas valide au regard du schéma UBL, l'étape XSD échoue donc et les règles métier sont ignorées.

Les périodes de ligne sont vérifiées par BR-CO-20, qui ne prévoit aucune exception pour un code. Lors d'un essai, une période de ligne ne contenant que cbc:DescriptionCode a signalé BR-CO-20 et l'avertissement UBL-CR-523.

TermeSignificationÉlément UBL
BG-14Période de facturationcac:InvoicePeriod
BT-73Date de début de la période de facturationcac:InvoicePeriod/cbc:StartDate
BT-74Date de fin de la période de facturationcac:InvoicePeriod/cbc:EndDate
BT-8Code de date d'exigibilité de la TVAcac:InvoicePeriod/cbc:DescriptionCode

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 :

  • Le système de facturation stocke la période sous forme de libellé, comme un nom de mois, et l'export écrit ce libellé dans cbc:Description au lieu de le convertir en dates.
  • Le modèle émet toujours cac:InvoicePeriod et n'en remplit les dates que pour les factures d'abonnement ou de services, laissant sur les autres factures une période vide ou réduite à une description.
  • Les champs de date sont nuls pour une facturation ponctuelle, et le sérialiseur supprime les dates nulles mais conserve leur élément parent.

Comment corriger le document

  1. Déterminez si la facture couvre réellement une période. Si ce n'est pas le cas, retirez entièrement cac:InvoicePeriod.
  2. Si c'est le cas, écrivez le premier jour dans cbc:StartDate et le dernier jour dans cbc:EndDate au format YYYY-MM-DD, à partir de la période de facturation de la source. Un libellé comme August 2026 devient 2026-08-01 à 2026-08-31.
  3. Retirez cbc:Description de la période. Si le libellé compte pour l'acheteur, la note du document, cbc:Note, est l'endroit prévu pour le texte libre.
  4. Si la période n'existe que pour porter le code de date d'exigibilité de la TVA, gardez le code et omettez les dates. Cela passe cette règle, mais le code ne peut pas figurer à côté d'un cbc:TaxPointDate (BR-CO-03).

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 est décrite en toutes lettres et n'a pas de dates

<cbc:BuyerReference>BUYER-REF-001</cbc:BuyerReference>
<cac:InvoicePeriod>
  <cbc:Description>August 2026</cbc:Description>
</cac:InvoicePeriod>

Fragment de la facture corrigée : la période a une date de début et une date de fin

<cbc:BuyerReference>BUYER-REF-001</cbc:BuyerReference>
<cac:InvoicePeriod>
  <cbc:StartDate>2026-08-01</cbc:StartDate>
  <cbc:EndDate>2026-08-31</cbc:EndDate>
</cac:InvoicePeriod>

La facture corrigée remplace cbc:Description par cbc:StartDate 2026-08-01 et cbc:EndDate 2026-08-31. Le document en échec signale aussi UBL-CR-015, un avertissement indiquant que cbc:Description dans cac:InvoicePeriod ne fait pas partie du modèle EN 16931. Lors d'un essai, cet avertissement est resté même avec les deux dates ajoutées à côté de la description : c'est donc le retrait de la description qui le lève.

Ce que le validateur a signalé

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 à Invoice et à CreditNote : un avoir utilise le même élément cac:InvoicePeriod, et lors d'un essai, un avoir ne contenant qu'une description a lui aussi signalé BR-CO-19 et UBL-CR-015.
  • Signalée à l'étape EN 16931.
  • L'exception du code seul est étroite. Le code doit être 3, 35 ou 432, sinon BR-CL-06 et PEPPOL-EN16931-CL006 échouent, et le document ne doit pas porter en plus cbc:TaxPointDate, sinon BR-CO-03 échoue.
  • Une fois les deux dates présentes, BR-29 vérifie que la date de fin n'est pas antérieure à la date de début.

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 BR-CO-19 (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.