What does BR-15 mean?
The invoice must state the outstanding amount. It tells the Buyer what he actually has to pay.
Common causes of BR-15
- The element 'ram:DuePayableAmount' is missing from the document totals.
- The issuing system does not write the amount due separately from the gross amount.
- On already paid invoices the field was left out instead of set to '0.00'.
How to fix BR-15
- Find the faulty spot in the XML. Open the XML of the invoice and go to field BT-115 along this XPath:
//ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:DuePayableAmount - Apply the fix. Add the Amount due for payment (BT-115) in the element 'ram:DuePayableAmount' of the document totals. The value is the gross total (BT-112) plus the rounding amount (BT-114) minus the paid amount (BT-113).
- Validate again. Save the file and validate it again to check that BR-15 is no longer reported.
Add the Amount due for payment (BT-115) in the element 'ram:DuePayableAmount' of the document totals. The value is the gross total (BT-112) plus the rounding amount (BT-114) minus the paid amount (BT-113).
//ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:DuePayableAmountBefore / after: the XML example
This is the spot in question before and after the fix (Cross Industry Invoice, ZUGFeRD/Factur-X).
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
<ram:GrandTotalAmount>119.00</ram:GrandTotalAmount>
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
<ram:GrandTotalAmount>119.00</ram:GrandTotalAmount>
<ram:DuePayableAmount>119.00</ram:DuePayableAmount>
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
Frequent questions about BR-15
How is BT-115 calculated?
What do I state on an invoice that is already paid?
Related error codes
Check BR-15 automatically
Instead of digging through the XML by hand you can validate your ZUGFeRD or XRechnung file online – upload the PDF or the XML and you get every error with rule ID, affected field, fix and XPath, as a readable report or as JSON through the API.