En bref
- BR-15 (et non BR-12) impose la présence de
DuePayableAmount(BT-115) dansSpecifiedTradeSettlementHeaderMonetarySummation. BT-115peut être nul, positif ou négatif selon le cas (facture classique, avoir, rappel) — la règle de présence reste valable.- La formule arithmétique
BT-115 = BT-112 − BT-113 + BT-114relève deBR-CO-16, pas deBR-15. - Si
BT-115 > 0,BR-CO-25impose qu’une date d’échéance ou des conditions de paiement soient présentes. - Réparable automatiquement par
/repair(calcul depuisBT-112 − BT-113 + BT-114).
Ce que l’erreur veut dire
BR-15 (règle cœur EN16931) exige que toute facture déclare DuePayableAmount (BT-115), soit le montant net à régler par le client après application des acomptes et de l’arrondi. Cette règle contrôle la PRÉSENCE du champ, pas sa valeur. La valeur peut être négative (avoir à rembourser), nulle (facture entièrement acompté) ou positive (cas courant).
Quand cette erreur arrive
Apparaît avec : (a) export ERP qui omet la balise pour les avoirs (croyant qu’elle ne s’applique pas — elle s’applique, en négatif) ; (b) facture pro forma générée sans summation complète ; (c) facture purement informative qui omet le bloc paiement ; (d) bug d’export où la summation header est partiellement remplie.
Exemple XML qui déclenche l’erreur
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
<ram:LineTotalAmount>1000.00</ram:LineTotalAmount>
<ram:TaxBasisTotalAmount>1000.00</ram:TaxBasisTotalAmount>
<ram:TaxTotalAmount currencyID="EUR">200.00</ram:TaxTotalAmount>
<ram:GrandTotalAmount>1200.00</ram:GrandTotalAmount>
<!-- ❌ pas de DuePayableAmount -->
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
Exemple XML corrigé
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
<ram:LineTotalAmount>1000.00</ram:LineTotalAmount>
<ram:TaxBasisTotalAmount>1000.00</ram:TaxBasisTotalAmount>
<ram:TaxTotalAmount currencyID="EUR">200.00</ram:TaxTotalAmount>
<ram:GrandTotalAmount>1200.00</ram:GrandTotalAmount>
<ram:DuePayableAmount>1200.00</ram:DuePayableAmount>
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
Correction manuelle
Toujours exposer <ram:DuePayableAmount> en dernier dans la summation. Calcul : BT-115 = BT-112 − BT-113 + BT-114. Pour un avoir, valeur négative (ex. -500.00). Pour une facture sans acompte ni arrondi, égale à BT-112.
Réparable automatiquement par /repair ?
Oui — l’endpoint /repair corrige automatiquement cette erreur dans la majorité des cas.
Et maintenant ?
Réparer mon Factur-X →
curl -X POST https://api.facturxapi.com/api/v1/repair \
-H "Authorization: Bearer VOTRE_CLE" \
-F "[email protected]"