Skip to content

BR-CO-06: Document level charge reason code (BT-105) and charge reason (BT-104) must indicate the same type

Official message

[BR-CO-06] Document level charge reason code (BT-105) and Document level charge reason (BT-104) shall indicate the same type of charge.

EN 16931 (CII) · Error · Message language: English · Version: xrechnung-3.0.2-validator-configuration-2026-08-31

[BR-CO-06] Document level charge reason code (BT-105) and Document level charge reason (BT-104) shall indicate the same type of charge.

EN 16931 (UBL) · Error · Message language: English · Version: xrechnung-3.0.2-validator-configuration-2026-08-31

[BR-CO-06] Document level charge reason code (BT-105) and Document level charge reason (BT-104) shall indicate the same type of charge.

Factur-X / ZUGFeRD EN 16931 · Error · Message language: English · Version: Factur-X 1.08 / ZUGFeRD 2.4
Severity
Error The invoice is invalid and may be rejected by the recipient.
Applies to
EN 16931 (CII), EN 16931 (UBL), Factur-X / ZUGFeRD EN 16931
Affected fields
BT-105, BT-104

What does this mean?

For a document level charge (BG-21) the code (BT-105) and the text (BT-104) shall indicate the same type, i.e. the code must not stand for a different type than the text. The official validation artefacts do not check this automatically: the test is always fulfilled, so the rule is not reported as an error during validation. The requirement still applies.

Typical causes

A code from code list UNTDID 7161 was chosen that does not match the explanatory text.
The text was changed without adjusting the code, or vice versa.

How to fix the error

Choose the code from code list UNTDID 7161 that describes the type of the charge and word the text (BT-104) accordingly.
Alternatively state only the text; according to BR-CO-22 one of the two values is sufficient.
CII: ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ReasonCode and ram:Reason (ram:ChargeIndicator = true), UBL: cac:AllowanceCharge/cbc:AllowanceChargeReasonCode and cbc:AllowanceChargeReason (cbc:ChargeIndicator = true).

In E-Rechnungsfreund

In the invoice form, expert view ("Experte"), section "Zu-/Abschläge auf Dokumentenebene (BG-20/BG-21)" (document level allowances and charges), make the fields "Begründung" (reason) and "Code" of the entry of type "Zuschlag (BG-21)" (charge) consistent.

For developers: test expression per syntax

EN 16931 (CII) (CII)

Context: //ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='true']

true()

EN 16931 (UBL) (UBL)

Context: /ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = true()] | /cn:CreditNote/cac:AllowanceCharge[cbc:ChargeIndicator = true()]

true()

Factur-X / ZUGFeRD EN 16931 (CII)

Technical ID in the source: FX-SCH-A-000071

Context: //ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='true']

true()

Related validation rules

  • BR-CO-03: Value added tax point date (BT-7) and tax point date code (BT-8) are mutually exclusive
  • BR-CO-04: Invoiced item VAT category code (BT-151) is missing
  • BR-CO-05: Document level allowance reason code (BT-98) and allowance reason (BT-97) must indicate the same type
  • BR-CO-07: Invoice line allowance reason code (BT-140) and allowance reason (BT-139) must indicate the same type
  • BR-CO-08: Invoice line charge reason code (BT-145) and charge reason (BT-144) must indicate the same type
  • BR-CO-09: VAT identifier without valid country prefix (BT-31, BT-48, BT-63)

Frequently asked questions

Why is this rule never reported as an error?

Whether code and text match in content cannot be checked by machine. The official validation artefacts therefore contain BR-CO-06 only with a test that is always fulfilled. What is checked automatically is that at least one of the two is present (BR-CO-22).

Last updated:
Explanation of the validation rule, not legal or tax advice.