ErrorEN 16931Input required

BR-33

Each Document level allowance (BG-20) shall have a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98).

What does this rule mean?

A document-level allowance (BG-20) is missing its reason (BT-97 or BT-98).

An allowance must state a reason — as text or a reason code.

BG-20
Document level allowances (group)
BT-97
Document level allowance reason
BT-98
Document level allowance reason code
Official rule message (standard)

Each Document level allowance (BG-20) shall have a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98).

Where the rule applies

Syntax: CII · UBL

The same rule, expressed twice: UBL and CII name the same fields with different paths. Running a CII file against the UBL rules is why you get errors that mean nothing.

UBL

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

CII

  • //ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='false']

Technical test

The rule passes when this Schematron expression holds true:

(../ram:Reason) or (../ram:ReasonCode)

How to fix it

A missing or incorrect business entry only you can supply. Add or correct it, then re-check.

Add an allowance reason (text or code).

Correct the affected entry in your XML, then re-check the invoice. Validation runs locally in your browser — your file never leaves your machine.

Check an e-invoice here

Drop an XML or ZUGFeRD PDF file here. Validation runs locally in your browser against EN 16931 — your file never leaves your machine.

100% local — no upload, no account.

Related rules

← Back to the error library