PEPPOL-EN16931-R130: Unit of the base quantity (BT-150) differs from the unit of the quantity (BT-130)
Official message
[PEPPOL-EN16931-R130] Unit code of price base quantity MUST be same as invoiced quantity.
[PEPPOL-EN16931-R130] Unit code of price base quantity MUST be same as invoiced quantity.
- Severity
- Error The invoice is invalid and may be rejected by the recipient.
- Applies to
- XRechnung (CII), XRechnung (UBL)
What does this mean?
Unit code of price base quantity MUST be same as invoiced quantity: the item price base quantity unit of measure code (BT-150) must equal the invoiced quantity unit of measure code (BT-130). The units differ.
The rule originates from Peppol BIS Billing 3.0 and is applied in the XRechnung validation. CII: unitCode of ram:BasisQuantity in net and gross price against ram:BilledQuantity/@unitCode. UBL: cac:Price/cbc:BaseQuantity/@unitCode against cbc:InvoicedQuantity or cbc:CreditedQuantity.
Typical causes
The price was given per kilogram, the quantity in pieces (or vice versa).
Different codes for the same kind of unit were used for quantity and base quantity, e.g. C62 and H87.
How to fix the error
Use the same unit for the base quantity as for the quantity and convert price or quantity if necessary.
Generate and validate the invoice again.
In E-Rechnungsfreund
In the invoice form, "Experte" view, section "Rechnungspositionen (BG-25)" (invoice lines), leave the fields "ME Nettopreis (BT-150)" (net price unit) and "ME Bruttopreis (BT-150-1)" (gross price unit) of the line empty or select the same unit as in "ME (BT-130)" (unit). If left empty, the application writes the unit from "ME (BT-130)".
Example
Wrong
<ram:NetPriceProductTradePrice>
<ram:ChargeAmount>4.80</ram:ChargeAmount>
<ram:BasisQuantity unitCode="KGM">1</ram:BasisQuantity>
</ram:NetPriceProductTradePrice>
...
<ram:BilledQuantity unitCode="H87">10</ram:BilledQuantity>
Correct
<ram:NetPriceProductTradePrice>
<ram:ChargeAmount>4.80</ram:ChargeAmount>
<ram:BasisQuantity unitCode="KGM">1</ram:BasisQuantity>
</ram:NetPriceProductTradePrice>
...
<ram:BilledQuantity unitCode="KGM">10</ram:BilledQuantity>
For developers: test expression per syntax
XRechnung (CII) (CII)
Context: ram:NetPriceProductTradePrice/ram:BasisQuantity[@unitCode] | ram:GrossPriceProductTradePrice/ram:BasisQuantity[@unitCode]
@unitCode = ../../../ram:SpecifiedLineTradeDelivery/ram:BilledQuantity/@unitCode
XRechnung (UBL) (UBL)
Context: cac:Price/cbc:BaseQuantity[@unitCode]
not($hasQuantity) or @unitCode = $quantity/@unitCode
Related validation rules
- PEPPOL-EN16931-R001: Business process type (BT-23) is missing
- PEPPOL-EN16931-R005: VAT accounting currency (BT-6) equals the invoice currency (BT-5)
- PEPPOL-EN16931-R008: The invoice contains empty elements
- PEPPOL-EN16931-R010: Buyer electronic address (BT-49) is missing
- PEPPOL-EN16931-R020: Seller electronic address (BT-34) is missing
- PEPPOL-EN16931-R040: Allowance or charge amount does not match base amount and percentage
Last updated:
Explanation of the validation rule, not legal or tax advice.