Skip to content

PEPPOL-EN16931-R121: Price base quantity (BT-149) is not greater than 0

Official message

[PEPPOL-EN16931-R121] Base quantity MUST be a positive number above zero.

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

[PEPPOL-EN16931-R121] Base quantity MUST be a positive number above zero.

XRechnung (UBL) · Error · Message language: English · Version: xrechnung-3.0.2-validator-configuration-2026-08-31
Severity
Error The invoice is invalid and may be rejected by the recipient.
Applies to
XRechnung (CII), XRechnung (UBL)

What does this mean?

Base quantity MUST be a positive number above zero: if an item price base quantity (BT-149) is given, it must be greater than 0. The value given is 0 or negative.
The rule originates from Peppol BIS Billing 3.0 and is applied in the XRechnung validation. CII: ram:BasisQuantity in ram:NetPriceProductTradePrice and ram:GrossPriceProductTradePrice. UBL: cac:Price/cbc:BaseQuantity.

Typical causes

The base quantity was passed as 0 instead of being left empty.
For a credit note the base quantity was given negative; the sign belongs to the quantity (BT-129), not to the base quantity.

How to fix the error

State the base quantity as the quantity the price refers to (e.g. 1 or 100), or omit it; without it the price applies to one unit.
Generate and validate the invoice again.

In E-Rechnungsfreund

In the invoice form, "Experte" view, section "Rechnungspositionen (BG-25)" (invoice lines), fill the field "Basis-Menge Netto (BT-149)" (net base quantity) of the line with a value greater than 0; if it is left empty, 1 is used.

Example

Wrong

<ram:NetPriceProductTradePrice>
  <ram:ChargeAmount>12.50</ram:ChargeAmount>
  <ram:BasisQuantity unitCode="H87">0</ram:BasisQuantity>
</ram:NetPriceProductTradePrice>

Correct

<ram:NetPriceProductTradePrice>
  <ram:ChargeAmount>12.50</ram:ChargeAmount>
  <ram:BasisQuantity unitCode="H87">1</ram:BasisQuantity>
</ram:NetPriceProductTradePrice>
For developers: test expression per syntax

XRechnung (CII) (CII)

Context: ram:NetPriceProductTradePrice | ram:GrossPriceProductTradePrice

not(ram:BasisQuantity) or xs:decimal(ram:BasisQuantity) > 0

XRechnung (UBL) (UBL)

Context: cac:InvoiceLine | cac:CreditNoteLine

not(cac:Price/cbc:BaseQuantity) or xs:decimal(cac:Price/cbc:BaseQuantity) > 0

Related validation rules

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