Back to the error catalogue
BR-CO-16BT-115
blocked

The amount due does not follow from the gross total, prepayments and rounding

The amount due for payment (BT-115) must equal the invoice total amount with VAT (BT-112), minus the paid amount (BT-113), plus the rounding amount (BT-114).

A financial field: the expected value is computed and offered, never written into the document — the correction is the issuer's to make. Test your invoice to find out whether it is affected.

The message your validator prints

Copied verbatim from the sealed artefact: this is the exact sentence the check prints when this rule fails.

[BR-CO-16]-Amount due for payment (BT-115) = Invoice total amount with VAT (BT-112) -Paid amount (BT-113) +Rounding amount (BT-114).

Quoted from schematron-cen 1.3.16, licensed under EUPL-1.2.

Common searches around this code

These phrases mirror what an integrator searches for: code, syntax, rule, business field and correction.

BR-CO-16 The amount due does not follow from the gross total, prepayments and roundingBR-CO-16 CEN EN 16931 SchematronBR-CO-16 BT-115[BR-CO-16]-Amount due for payment (BT-115) = Invoice total amount with VAT (BT-112) -Paid amount (BT-113) +Rounding amount (BT-114).BR-CO-16 correction

Test your file with this error in mind

Upload the invoice involved: the report will say whether this code appears, where it appears in the document, and whether Factlint can only report it or also fix it.

To automate this check in an ERP flow, call the validation API and link every returned code to its public page.

Why this error happens

The prepayment is the main trap: many systems deduct it from the amount due without ever filling BT-113, which makes the gap invisible internally and fatal at validation. Rounding BT-114 is often absent when it would have explained the missing cent.

How to fix it

Fix the calculation in the system that produced the invoice, not in the file. Factlint computes the expected value and returns it in `suggested_value`, but never writes the field.

Reason it is blocked:

financial_field_policy

XML correction example

BEFORE (invalid)
<ram:DuePayableAmount>1000.00</ram:DuePayableAmount>  <!-- TTC 1239.01, acompte non déclaré -->
AFTER (compliant)
<ram:TotalPrepaidAmount>239.01</ram:TotalPrepaidAmount>
<ram:DuePayableAmount>1000.00</ram:DuePayableAmount>