Que signifie BR-30 ?
Si une ligne de facture indique à la fois une date de début (BT-134) et une date de fin (BT-135) de la période de prestation, la date de fin doit être égale ou postérieure à la date de début. La règle ne s'applique que si les deux dates sont présentes. S'il en manque une, BR-30 ne vérifie rien. Une période dont la fin précède le début est impossible et se voit rejetée.
Causes fréquentes de BR-30
- Les dates de début et de fin ont été inversées.
- Faute de frappe dans le jour, le mois ou l'année de l'une des deux dates.
- Format de date incorrect, si bien que les valeurs ne sont pas comparables comme dates.
- Fin fixée à la veille au lieu de la fin de la période.
Comment corriger BR-30
- Repérer l'endroit fautif dans le XML. Ouvrez le XML de la facture et allez au champ BT-135 par le XPath suivant :
//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString - Appliquer la correction. Mettez dans ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString (format="102", AAAAMMJJ) une date égale ou postérieure à la date de début figurant dans ram:StartDateTime. Vérifiez si le début et la fin ont été inversés.
- Valider à nouveau. Enregistrez le fichier et validez-le à nouveau pour vérifier que BR-30 n'est plus signalé.
Mettez dans ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString (format="102", AAAAMMJJ) une date égale ou postérieure à la date de début figurant dans ram:StartDateTime. Vérifiez si le début et la fin ont été inversés.
//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeStringAvant / après : l'exemple XML
Voici l'endroit concerné avant et après la correction (Cross Industry Invoice, Factur-X/ZUGFeRD).
<ram:SpecifiedLineTradeSettlement>
<ram:BillingSpecifiedPeriod>
<ram:StartDateTime>
<udt:DateTimeString format="102">20260401</udt:DateTimeString>
</ram:StartDateTime>
<ram:EndDateTime>
<udt:DateTimeString format="102">20260331</udt:DateTimeString>
</ram:EndDateTime>
</ram:BillingSpecifiedPeriod>
</ram:SpecifiedLineTradeSettlement>
<ram:SpecifiedLineTradeSettlement>
<ram:BillingSpecifiedPeriod>
<ram:StartDateTime>
<udt:DateTimeString format="102">20260401</udt:DateTimeString>
</ram:StartDateTime>
<ram:EndDateTime>
<udt:DateTimeString format="102">20260430</udt:DateTimeString>
</ram:EndDateTime>
</ram:BillingSpecifiedPeriod>
</ram:SpecifiedLineTradeSettlement>
Questions fréquentes sur BR-30
La date de fin peut-elle être égale à la date de début ?
Faut-il indiquer une période pour chaque ligne ?
Quel format faut-il pour les dates ?
Codes d'erreur voisins
Vérifier BR-30 automatiquement
Plutôt que de fouiller le XML à la main, vous pouvez valider votre fichier Factur-X ou XRechnung en ligne – déposez le PDF ou le XML et vous recevez chaque erreur avec l'identifiant de la règle, le champ concerné, la proposition de correction et le XPath, sous forme de rapport lisible ou de JSON par l'API.