Aller au contenu

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

BR-CO-03 : Envoyer soit la date d'exigibilité de la TVA, soit son code, mais pas les deux

cbc:TaxPointDate et le code de date d'exigibilité de la TVA dans cac:InvoicePeriod/cbc:DescriptionCode ne doivent pas figurer ensemble. Envoyez l'un des deux, ou aucun.

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

Sur cette page

La réponse courte

BR-CO-03 échoue lorsque le document a un cbc:TaxPointDate et que son cac:InvoicePeriod porte aussi un cbc:DescriptionCode. Conservez la date d'exigibilité si vous connaissez la date réelle à laquelle la TVA est devenue exigible ; sinon, conservez le code et supprimez cbc:TaxPointDate.

Les deux éléments indiquent l'exigibilité de la TVA : la date la donne directement, tandis que le code nomme l'événement qui la fixe. Les codes autorisés sont 3 (date d'émission de la facture), 35 (date de livraison effective) et 432 (date de paiement).

Ce que la règle vérifie

La règle est évaluée une fois pour tout le document. Elle cherche cbc:TaxPointDate sous la racine et cbc:DescriptionCode dans le cac:InvoicePeriod au niveau du document, et n'échoue que si elle trouve les deux.

N'avoir aucun des deux passe, de même que n'en avoir qu'un seul. Lors d'un essai, la facture enregistrée, avec sa date d'exigibilité conservée et une période de facturation ajoutée contenant une date de début et une date de fin, a été acceptée : les dates de période n'entrent pas en conflit avec la date d'exigibilité, seul le code le fait.

Ajouter des dates à la période n'aide pas. Lors d'un essai, une période avec une date de début, une date de fin et le code 35, à côté d'un cbc:TaxPointDate, a toujours signalé BR-CO-03.

Un code sur une période de ligne n'est pas pris en compte. Lors d'un essai, cbc:DescriptionCode dans le cac:InvoicePeriod d'une ligne, à côté d'une date d'exigibilité, n'a pas signalé cette règle ; il a signalé BR-CO-20 et l'avertissement UBL-CR-523, car une période de ligne a besoin de dates et n'a pas de place pour le code.

La valeur du code est contrôlée par d'autres règles. Un code autre que 3, 35 et 432, comme 99, signale BR-CL-06 et PEPPOL-EN16931-CL006.

TermeSignificationÉlément UBL
BT-7Date d'exigibilité de la TVAcbc:TaxPointDate
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 modèle écrit un code de date d'exigibilité par défaut, par exemple 35 pour des marchandises, tandis qu'un champ distinct remplit cbc:TaxPointDate chaque fois que la source a une date d'exigibilité.
  • Une période de facturation est créée uniquement pour porter le code, et le code est ajouté même sur les factures dont la date d'exigibilité est déjà connue.
  • Les deux valeurs sont tirées de l'enregistrement de livraison : la date de livraison effective va dans cbc:TaxPointDate, et le fait qu'il s'agisse d'une date de livraison est aussi envoyé sous la forme du code 35.

Comment corriger le document

  1. Déterminez lequel des deux éléments la facture requiert. Si la date à laquelle la TVA est devenue exigible est connue et diffère de la date d'émission, envoyez-la dans cbc:TaxPointDate et supprimez cbc:DescriptionCode de la période.
  2. Si seul l'événement est connu au moment de l'émission de la facture, envoyez le code dans cac:InvoicePeriod/cbc:DescriptionCode et supprimez cbc:TaxPointDate.
  3. Si la suppression du code laisse cac:InvoicePeriod sans enfants, supprimez aussi la période, sinon BR-CO-19 et PEPPOL-EN16931-R008 suivent.
  4. Si l'exigibilité de la TVA correspond simplement à la date d'émission, aucun des deux éléments n'est nécessaire : la description Peppol de cbc:TaxPointDate le prévoit pour le cas où l'exigibilité diffère de la date d'émission.

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 : une date d'exigibilité de la TVA et le code de date d'exigibilité 35 côte à côte

<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<!-- note omitted from this fragment -->
<cbc:TaxPointDate>2026-09-07</cbc:TaxPointDate>
<cbc:DocumentCurrencyCode>GBP</cbc:DocumentCurrencyCode>
<cbc:AccountingCost>COST-123</cbc:AccountingCost>
<cbc:BuyerReference>BUYER-REF-001</cbc:BuyerReference>
<cac:InvoicePeriod>
  <cbc:DescriptionCode>35</cbc:DescriptionCode>
</cac:InvoicePeriod>
<!-- references and parties omitted from this fragment -->
<cac:Delivery>
  <cbc:ActualDeliveryDate>2026-09-07</cbc:ActualDeliveryDate>
  <!-- delivery location omitted from this fragment -->
</cac:Delivery>

Fragment de la facture corrigée : seule la date d'exigibilité de la TVA reste

<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<!-- note omitted from this fragment -->
<cbc:TaxPointDate>2026-09-07</cbc:TaxPointDate>
<cbc:DocumentCurrencyCode>GBP</cbc:DocumentCurrencyCode>
<cbc:AccountingCost>COST-123</cbc:AccountingCost>
<cbc:BuyerReference>BUYER-REF-001</cbc:BuyerReference>
<!-- references and parties omitted from this fragment -->
<cac:Delivery>
  <cbc:ActualDeliveryDate>2026-09-07</cbc:ActualDeliveryDate>
  <!-- delivery location omitted from this fragment -->
</cac:Delivery>

La facture corrigée n'a pas de cac:InvoicePeriod ; la facture en échec ajoute une période dont le seul contenu est le code 35. BR-CO-03 est le seul constat. Le code indiquait que l'exigibilité de la TVA correspond à la date de livraison effective, et la facture indique déjà cette date, 2026-09-07, à la fois comme cbc:ActualDeliveryDate et comme cbc:TaxPointDate : supprimer le code ne fait donc rien perdre.

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 aussi bien à Invoice qu'à CreditNote ; lors d'un essai, un avoir avec les deux éléments a signalé BR-CO-03 à la racine du document.
  • Une règle EN 16931, signalée à l'étape EN 16931.
  • Une période qui ne contient que le code satisfait BR-CO-19, qui exige sinon des dates ; lors d'un essai, supprimer la date d'exigibilité de la facture en échec a laissé un document valide.
  • Une date d'exigibilité écrite avec un suffixe de fuseau horaire, comme 2026-09-07Z, passe le XSD mais est rejetée à l'étape Peppol par PEPPOL-EN16931-F001.

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-03 (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.