UBL-SR-30
EN 16931-1 layer: en16931
Checked against Peppol BIS Billing 3.0 2026.5
What does UBL-SR-30 mean? Document level allowance reason shall occur maximum once
Why did my invoice fail UBL-SR-30?
A document-level allowance (BG-20) may state one Allowance reason text (BT-97), explaining why the deduction is applied. EN 16931 permits at most one reason text per allowance, so this rule blocks repeating cbc:AllowanceChargeReason within a single document-level cac:AllowanceCharge. A coded reason (BT-98) can accompany it, but the free-text reason must be unique.
Official rule text
Document level allowance reason shall occur maximum once
Common causes
- Two cbc:AllowanceChargeReason elements placed in the same document-level allowance block.
- A merge template appends a second reason string instead of replacing the first.
- Reason text duplicated in multiple languages within one AllowanceCharge.
How do I fix it?
Within each document-level allowance (cbc:ChargeIndicator = false) keep one reason: <cbc:AllowanceChargeReason>Loyalty discount</cbc:AllowanceChargeReason> and delete the extra one.
Related rules
UBL-SR-01 · UBL-SR-02 · UBL-SR-03 · UBL-SR-04 · UBL-SR-05 · UBL-SR-06 · UBL-SR-07 · UBL-SR-08
Check your invoice against this rule
Paste it into the live demo, or call POST /v1/validate. See the quickstart.