Skip to main content

BR-CO-23 Line allowance needs a reason or reason code

Each invoice line allowance (BG-27) shall contain an invoice line allowance reason (BT-139) or an invoice line allowance reason code (BT-140), or both.

Problem Description

ERROR

EN 16931 calculation and consistency rule (BR-CO)

Context and Significance

This rule is the line-level counterpart of BR-CO-21: every invoice line allowance (UBL: cac:InvoiceLine/cac:AllowanceCharge with cbc:ChargeIndicator = false) needs a reason or a reason code. It does not apply to the item price discount (cac:Price/cac:AllowanceCharge, BT-147), which needs no reason. The error often occurs when a percentage line discount is exported without a description.

Solution

For every invoice line allowance, add a reason (BT-139) and/or a reason code (BT-140): cbc:AllowanceChargeReason / cbc:AllowanceChargeReasonCode in cac:InvoiceLine/cac:AllowanceCharge in UBL, ram:Reason / ram:ReasonCode in ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge in CII.

Quick actions

Valid Examples

  • Line allowance with BT-140 = 95 and BT-139 = "Sample discount"

Invalid Examples

  • Line allowance amount 2.00 with neither BT-139 nor BT-140

Code Examples

Valid XML
<cac:InvoiceLine>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
    <cbc:AllowanceChargeReason>Sample discount</cbc:AllowanceChargeReason>
    <cbc:Amount currencyID="EUR">2.00</cbc:Amount>
  </cac:AllowanceCharge>
</cac:InvoiceLine>
Invalid XML
<cac:InvoiceLine>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:Amount currencyID="EUR">2.00</cbc:Amount>
  </cac:AllowanceCharge>
</cac:InvoiceLine>

Affected Fields

Validation Tools