Official rule text
[PEPPOL-EN16931-R121] Base quantity MUST be a positive number above zero.
Why this error occurs
The item price base quantity (BT-149) is the divisor in the line calculation (quantity x price / base quantity), so it must be a positive number greater than zero. The rule checks cac:Price/cbc:BaseQuantity (UBL) or ram:BasisQuantity in ram:NetPriceProductTradePrice and ram:GrossPriceProductTradePrice (CII) when present. It nearly always comes from an ERP exporting a default of 0 for the price unit, or from a negative value on credit lines.
How to fix it
Set cbc:BaseQuantity / ram:BasisQuantity to the number of units the price refers to: 1 for a price per unit, 100 for a price per 100 units. If your system has no price unit concept, omit the element entirely; the standard then assumes 1. Never use 0 or a negative value, and give the attribute unitCode with the same code as the invoiced quantity.
Example (valid)
<cac:Price>
<cbc:PriceAmount currencyID="EUR">12.50</cbc:PriceAmount>
<cbc:BaseQuantity unitCode="C62">100</cbc:BaseQuantity>
</cac:Price>
What the validator checks
Checked element (context):
UBL
cac:InvoiceLine | cac:CreditNoteLineTest (XPath):
not(cac:Price/cbc:BaseQuantity) or xs:decimal(cac:Price/cbc:BaseQuantity) > 0CII
ram:NetPriceProductTradePrice | ram:GrossPriceProductTradePriceTest (XPath):
not(ram:BasisQuantity) or xs:decimal(ram:BasisQuantity) > 0
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-R121 mean?
PEPPOL-EN16931-R121 is a peppol bis billing 3.0 rule: Base quantity MUST be a positive number above zero.
Will my invoice be rejected because of PEPPOL-EN16931-R121?
Yes. PEPPOL-EN16931-R121 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-R121 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.