Account
English

PEPPOL-EN16931-R121: Price base quantity is zero or negative

Peppol BIS Billing 3.0 rule · Error · UBL / CII

StandardPeppol BIS Billing 3.0 (OpenPeppol)SeverityError: the invoice is rejectedSyntaxUBL, CIIApplies toInvoices and credit notes sent over the Peppol network (UBL) and, because XRechnung embeds the Peppol rule set, every XRechnung as well.

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:CreditNoteLine

Test (XPath):

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

CII

ram:NetPriceProductTradePrice | ram:GrossPriceProductTradePrice

Test (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.

Check your invoice →

Same check via API:

curl -F file=@invoice.xml https://einvoicechecker.com/v1/validate

Related rules

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.