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. - Corriger le montant depuis les données comptables, puis revalider :
/repairne recalcule pas les totaux métier.
Ce que l’erreur veut dire
BR-15 exige la présence du montant restant à régler (BT-115, DuePayableAmount en CII), après application des acomptes et de l’arrondi. Cette règle contrôle la présence du champ, pas sa valeur ni son signe. Le seul type « avoir » n’impose pas un montant négatif : la convention du document et les données comptables doivent rester cohérentes.
Quand cette erreur arrive
Cette erreur apparaît lorsqu’un export omet le montant à payer, notamment pour un avoir ou une facture déjà réglée. Un montant nul ne dispense pas de renseigner le champ. Elle peut aussi provenir d’un bloc de totaux partiellement exporté.
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
Renseigner <ram:DuePayableAmount> dans la summation, en respectant l’ordre du schéma XSD applicable. BR-CO-16 vérifie BT-115 = BT-112 − BT-113 + BT-114. Pour une facture sans acompte ni arrondi, le montant est égal à BT-112. Pour un avoir, conserver la convention de signes du format et du contrat d’entrée ; ne pas inverser les montants pour satisfaire une simple règle de présence.
Les fragments ci-dessus illustrent le champ manquant et son ajout dans un cas simple ; ils ne constituent pas une facture complète validée. Revalider le document entier, notamment les conditions de paiement si BT-115 > 0.
Réparable automatiquement par /repair ?
Non pour un montant absent ou incorrect. Le contrat de /repair prévoit des corrections de format déterministes : il ne recalcule pas les totaux métier et n’invente pas les données manquantes. Compléter le montant depuis les données comptables vérifiées, puis utiliser /validate pour contrôler le XML. Une validation documentaire ne garantit pas l’acceptation par une PA.
Et maintenant ?
Vérifier mon document →
curl -X POST https://api.facturxapi.com/api/v1/validate \
-H "Authorization: Bearer VOTRE_CLE" \
-F "file=@./facture.xml"