# BT-150 Item Price Base Quantity Unit Code

The unit code for the item price base quantity.

> BT-150 (Item price base quantity unit of measure code) states the unit for the price base quantity (BT-149), using a UN/ECE Recommendation 20 code inside BG-29. Conditional under EN 16931 and, when present, it must be the same as the invoiced quantity unit of measure (BT-130). Example: C62.
>
> BT-150 · EN 16931 / XRechnung 3.x

## BT Reference Card

Key EN 16931 and XRechnung facts for this business term.

- **BT code**: BT-150
- **Name**: Item Price Base Quantity Unit Code
- **Cardinality**: Conditional (C)
- **Business group**: BG-29 PRICE DETAILS
- **Data type**: Code
- **Example value**: C62

## Line items

The goods or services on each invoice line, including quantities, prices, and VAT.

- [Validate XML](/en/xrechnung-validator?source=resource&bt=BT-150)
- [Convert invoice](/en/pdf-to-xrechnung?source=resource&bt=BT-150)

## In plain language

The unit code for the item price base quantity.

Describes how the invoice line price is derived, including base quantity and any price-level discount, so automated checks can recalculate line totals.

## What you usually enter here

UNECE Recommendation 20/21 unit code

Typical valid values include: EA, HUR, KGM

Defined by EN 16931 for line price calculation data; required fields must satisfy the listed BR and Peppol calculation constraints.

## Where the field sits

BT-150 belongs to the Lines part of the invoice. UBL 2.1 Syntax: Invoice › cac:InvoiceLine › cac:Price › cbc:BaseQuantity @unitCode. CII (UN/CEFACT) Syntax: rsm:CrossIndustryInvoice › rsm:SupplyChainTradeTransaction › ram:IncludedSupplyChainTradeLineItem › ram:SpecifiedLineTradeAgreement › ram:NetPriceProductTradePrice › ram:BasisQuantity @unitCode or rsm:CrossIndustryInvoice › rsm:SupplyChainTradeTransaction › ram:IncludedSupplyChainTradeLineItem › ram:SpecifiedLineTradeAgreement › ram:GrossPriceProductTradePrice › ram:BasisQuantity @unitCode. If BT-149 is present in both price locations, the quantities must match. If BT-150 is present on NetPriceProductTradePrice, it must also be present on GrossPriceProductTradePrice with the same unit code (BR-TMP-3).

## What goes wrong often

Avoid values like: each, kg

Relevant rule codes: BR-CL-23, PEPPOL-EN16931-R130

## Valid Examples

- EA
- HUR
- KGM

## Invalid Examples

- each
- kg

## Related Fields

- [BT-130 Invoice line quantity unit of measure code](/resources/xrechnung/bt-130-invoice-line-quantity-unit-of-measure-code)
- [BT-149 Item Price Base Quantity](/resources/xrechnung/bt-149-item-price-base-quantity)

## XML mapping and field facts

Open the technical reference if you need XML paths, validator rule codes, legal wording, or schema-specific mapping details.

### Field ID:
BT-150

### Data Type:
code

### Cardinality:
0..1

### Requirement:
Optional

## XML Implementation

### UBL 2.1 Syntax
```
/Invoice/cac:InvoiceLine/cac:Price/cbc:BaseQuantity/@unitCode
```

### CII (UN/CEFACT) Syntax
```
/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:BasisQuantity/@unitCode
```

## Validation Rules

### BR-CL-23
BR-CL-23

### PEPPOL-EN16931-R130
PEPPOL-EN16931-R130

## Check whether your XRechnung sets BT-150 correctly

Upload the XML file to the free validator. It applies the KoSIT rules for XRechnung 3.0 and names each finding with its rule ID, for this field for example BR-CL-23, PEPPOL-EN16931-R130. Creating a new invoice instead? The converter checks the invoice against the same rules and shows the findings before download.

- [Validate XML](/en/xrechnung-validator)
- [Convert invoice](/en/pdf-to-xrechnung)

Free, no account needed. XML file up to 2 MB.

## Official sources and tools

- [KoSIT Validator](https://erechnungsvalidator.service-bw.de/)
- [XRechnung Standard](https://xeinkauf.de/xrechnung/)
- [Test Suite](https://github.com/itplr-kosit/xrechnung-testsuite)
