Official rule text
[PEPPOL-EN16931-R044] Charge on price level is NOT allowed. Only value 'false' allowed.
Why this error occurs
On the price of an invoice line only a discount is permitted (item price discount, BT-147), which turns the gross price into the net price; a charge at price level has no semantic in EN 16931. The rule checks cac:Price/cac:AllowanceCharge/cbc:ChargeIndicator for the value false (UBL), or ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge/ram:ChargeIndicator/udt:Indicator (CII). It fails when software maps surcharges (metal surcharge, energy surcharge) into the price block or copies the line allowance structure with the indicator set to true.
How to fix it
Keep cbc:ChargeIndicator in cac:Price/cac:AllowanceCharge at false and use it only for a discount from the gross price. Move any surcharge either into the unit price itself (cbc:PriceAmount already including it) or into a line-level cac:AllowanceCharge with ChargeIndicator true, placed under cac:InvoiceLine, where charges are allowed. In CII the same applies to ram:AppliedTradeAllowanceCharge under GrossPriceProductTradePrice versus ram:SpecifiedTradeAllowanceCharge under ram:SpecifiedLineTradeSettlement.
Example (valid)
<cac:Price>
<cbc:PriceAmount currencyID="EUR">90.00</cbc:PriceAmount>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:Amount currencyID="EUR">10.00</cbc:Amount>
<cbc:BaseAmount currencyID="EUR">100.00</cbc:BaseAmount>
</cac:AllowanceCharge>
</cac:Price>
What the validator checks
Checked element (context):
UBL
cac:Price/cac:AllowanceChargeTest (XPath):
normalize-space(cbc:ChargeIndicator) = 'false'CII
rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePriceTest (XPath):
not(ram:AppliedTradeAllowanceCharge/ram:ActualAmount) or ram:AppliedTradeAllowanceCharge/ram:ChargeIndicator/udt:Indicator = 'false'
Check your invoice
Drop your XML or PDF on the validator and every failed rule is linked to its page here. Free, no account, the file is not stored.
Same check via API:
curl -F file=@invoice.xml https://einvoicechecker.com/v1/validateRelated rules
PEPPOL-EN16931-R001Business process identifier (BT-23) is missingPEPPOL-EN16931-R002No more than one note is allowed on document level, unless both the buyer and seller…PEPPOL-EN16931-R003Neither buyer reference nor purchase order reference givenPEPPOL-EN16931-R004Specification identifier is not the Peppol BIS Billing 3.0 identifierPEPPOL-EN16931-R005VAT accounting currency equals the invoice currencyPEPPOL-EN16931-R006Only one invoiced object is allowed on document levelPEPPOL-EN16931-R007Business process identifier has the wrong formatPEPPOL-EN16931-R008Document contains empty elements
Frequently asked questions
What does PEPPOL-EN16931-R044 mean?
PEPPOL-EN16931-R044 is a peppol bis billing 3.0 rule: Charge on price level is NOT allowed. Only value 'false' allowed.
Will my invoice be rejected because of PEPPOL-EN16931-R044?
Yes. PEPPOL-EN16931-R044 is flagged "fatal"; validators (KoSIT, Peppol access points, the German ZRE/OZG-RE portals) reject the invoice until it is fixed.
Which formats does PEPPOL-EN16931-R044 apply to?
Invoices and credit notes sent over the Peppol network (UBL) and, because XRechnung embeds the Peppol rule set, every XRechnung as well. Syntax: UBL and CII.
Source: Peppol BIS Billing 3.0.20 (November 2025). Catalogue generated from the official schematron on 2026-10-14.